191 lines
5.8 KiB
Nix
191 lines
5.8 KiB
Nix
|
{ inputs, system, pkgs, config, lib, ... }: let
|
||
|
cfg = config.grimmShared;
|
||
|
swaymux_pkg = inputs.swaymux.packages."${system}".default;
|
||
|
in {
|
||
|
config = with cfg; lib.mkIf (enable && sway.enable && sway.populateDefaultConfig ) {
|
||
|
environment.systemPackages = (with pkgs; [
|
||
|
alacritty
|
||
|
wmenu
|
||
|
grim
|
||
|
slurp
|
||
|
wl-clipboard
|
||
|
])
|
||
|
++ [ swaymux_pkg ];
|
||
|
|
||
|
grimmShared.sway = {
|
||
|
definitions = {
|
||
|
mod = "Mod4";
|
||
|
left = "h";
|
||
|
down = "j";
|
||
|
up = "k";
|
||
|
right = "l";
|
||
|
term = "alacritty";
|
||
|
menu = "dmenu_path | wmenu | xargs swaymsg exec --";
|
||
|
|
||
|
primecol = "#8800FF";
|
||
|
accentcol = "#5700a0";
|
||
|
splitcol = "#69507f";
|
||
|
actsplitcol = "#cd97fc";
|
||
|
darkcol = "#202020";
|
||
|
urgentcol = "#9e3c3c";
|
||
|
realwhite = "#C7D3E3";
|
||
|
};
|
||
|
keybinds = {
|
||
|
"$mod+d" = "exec $menu";
|
||
|
"$mod+Shift+s" = ''exec grim -g "$(slurp -d)" - | wl-copy'';
|
||
|
"$mod+Return" = "exec $term";
|
||
|
"$mod+Shift+q" = "kill";
|
||
|
"$mod+Shift+c" = "reload";
|
||
|
"$mod+Shift+e" = "exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'";
|
||
|
|
||
|
# Move your focus around
|
||
|
"$mod+$left" = "focus left";
|
||
|
"$mod+$down" = "focus down";
|
||
|
"$mod+$up" = "focus up";
|
||
|
"$mod+$right" = "focus right";
|
||
|
# Or use $mod+[up|down|left|right]
|
||
|
"$mod+Left" = "focus left";
|
||
|
"$mod+Down" = "focus down";
|
||
|
"$mod+Up" = "focus up";
|
||
|
"$mod+Right" = "focus right";
|
||
|
|
||
|
# Move the focused window with the same, but add Shift
|
||
|
"$mod+Shift+$left" = "move left";
|
||
|
"$mod+Shift+$down" = "move down";
|
||
|
"$mod+Shift+$up" = "move up";
|
||
|
"$mod+Shift+$right" = "move right";
|
||
|
# Ditto, with arrow keys
|
||
|
"$mod+Shift+Left" = "move left";
|
||
|
"$mod+Shift+Down" = "move down";
|
||
|
"$mod+Shift+Up" = "move up";
|
||
|
"$mod+Shift+Right" = "move right";
|
||
|
#
|
||
|
# Workspaces:
|
||
|
#
|
||
|
# Switch to workspace
|
||
|
"$mod+1" = "workspace number 1";
|
||
|
"$mod+2" = "workspace number 2";
|
||
|
"$mod+3" = "workspace number 3";
|
||
|
"$mod+4" = "workspace number 4";
|
||
|
"$mod+5" = "workspace number 5";
|
||
|
"$mod+6" = "workspace number 6";
|
||
|
"$mod+7" = "workspace number 7";
|
||
|
"$mod+8" = "workspace number 8";
|
||
|
"$mod+9" = "workspace number 9";
|
||
|
"$mod+0" = "workspace number 10";
|
||
|
# Move focused container to workspace
|
||
|
"$mod+Shift+1" = "move container to workspace number 1";
|
||
|
"$mod+Shift+2" = "move container to workspace number 2";
|
||
|
"$mod+Shift+3" = "move container to workspace number 3";
|
||
|
"$mod+Shift+4" = "move container to workspace number 4";
|
||
|
"$mod+Shift+5" = "move container to workspace number 5";
|
||
|
"$mod+Shift+6" = "move container to workspace number 6";
|
||
|
"$mod+Shift+7" = "move container to workspace number 7";
|
||
|
"$mod+Shift+8" = "move container to workspace number 8";
|
||
|
"$mod+Shift+9" = "move container to workspace number 9";
|
||
|
"$mod+Shift+0" = "move container to workspace number 10";
|
||
|
# Note: workspaces can have any name you want, not just numbers.
|
||
|
# We just use 1-10 as the default.
|
||
|
#
|
||
|
# Layout stuff:
|
||
|
#
|
||
|
# You can "split" the current object of your focus with
|
||
|
# $mod+b or $mod+v, for horizontal and vertical splits
|
||
|
# respectively.
|
||
|
"$mod+b" = "splith";
|
||
|
"$mod+v" = "splitv";
|
||
|
|
||
|
# Switch the current container between different layout styles
|
||
|
"$mod+s" = "layout stacking";
|
||
|
"$mod+w" = "layout tabbed";
|
||
|
"$mod+e" = "layout toggle split";
|
||
|
|
||
|
# Make the current focus fullscreen
|
||
|
"$mod+f" = "fullscreen";
|
||
|
|
||
|
# Toggle the current focus between tiling and floating mode
|
||
|
"$mod+Shift+space" = "floating toggle";
|
||
|
|
||
|
# Swap focus between the tiling area and the floating area
|
||
|
"$mod+space" = "focus mode_toggle";
|
||
|
|
||
|
# Move focus to the parent container
|
||
|
"$mod+a" = "focus parent";
|
||
|
|
||
|
"$mod+Shift+minus" = "move scratchpad";
|
||
|
"$mod+minus" = "scratchpad show";
|
||
|
|
||
|
"$mod+r" = ''mode "resize"'';
|
||
|
|
||
|
"XF86AudioRaiseVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ +5%";
|
||
|
"XF86AudioLowerVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ -5%";
|
||
|
"XF86AudioMute" = "exec pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||
|
"XF86AudioPlay" = "exec playerctl play-pause";
|
||
|
"XF86AudioNext" = "exec playerctl next";
|
||
|
"XF86AudioPrev" = "exec playerctl previous";
|
||
|
"$mod+c" = "exec swaymux";
|
||
|
};
|
||
|
autolaunch = [ # fixme: absolute paths
|
||
|
"blueman-applet"
|
||
|
"lxqt-policykit-agent"
|
||
|
"otd-daemon"
|
||
|
"dunst"
|
||
|
"systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP"
|
||
|
];
|
||
|
extraConfig = ''
|
||
|
# fixme: wallpaper
|
||
|
output * bg ${./wallpapers/spain.jpg} fill
|
||
|
output HDMI-A-1 mode 1920x1080@60Hz position 0,0
|
||
|
for_window [app_id="lxqt-policykit-agent"] floating enable;
|
||
|
floating_modifier $mod normal
|
||
|
|
||
|
bar {
|
||
|
swaybar_command waybar
|
||
|
}
|
||
|
input type:keyboard xkb_numlock enabled
|
||
|
include /etc/sway/config.d/*
|
||
|
|
||
|
# Borders, gaps, titlebars, behavior
|
||
|
default_border pixel 3
|
||
|
default_floating_border pixel 3
|
||
|
gaps inner 5
|
||
|
titlebar_padding 5 5
|
||
|
|
||
|
#5Smart things
|
||
|
smart_gaps on
|
||
|
hide_edge_borders --i3 smart
|
||
|
|
||
|
|
||
|
input * {
|
||
|
xkb_layout "de"
|
||
|
}
|
||
|
|
||
|
for_window [app_id="swaymux"] floating enable
|
||
|
|
||
|
mode "resize" {
|
||
|
# left will shrink the containers width
|
||
|
# right will grow the containers width
|
||
|
# up will shrink the containers height
|
||
|
# down will grow the containers height
|
||
|
bindsym $left resize shrrnk width 10px
|
||
|
bindsym $down resize grow height 10px
|
||
|
bindsym $up resize shrink height 10px
|
||
|
bindsym $right resize grow width 10px
|
||
|
|
||
|
# Ditto, with arrow keys
|
||
|
bindsym Left resize shrink width 10px
|
||
|
bindsym Down resize grow height 10px
|
||
|
bindsym Up resize shrink height 10px
|
||
|
bindsym Right resize grow width 10px
|
||
|
|
||
|
# Return to default mode
|
||
|
bindsym Return mode "default"
|
||
|
bindsym Escape mode "default"
|
||
|
}
|
||
|
# test
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
}
|
||
|
|