dotfiles-mirror/nixos/home-configuration/apps/sway.nix

112 lines
3.6 KiB
Nix
Raw Normal View History

2025-10-31 22:14:15 +03:30
{
pkgs,
...
}: let
left = "h";
down = "j";
up = "k";
right = "l";
modifier = "Mod4";
terminal = "${pkgs.foot}/bin/footclient";
menu = "${pkgs.wmenu}/bin/wmenu-run";
in
{
wayland.windowManager.sway = {
enable = true;
wrapperFeatures.gtk = true;
extraConfig = ''
exec swaymsg workspace 1
default_border pixel 2
default_floating_border pixel 2
for_window [class=".*"] border pixel 2
client.focused #F5C2E7 #6C7086 #C6D0F5 #6C7086 #6C7086
client.focused_inactive #313244 #313244 #C6D0F5 #585B70 #313244
client.unfocused #313244 #313244 #A6ADC8 #313244 #313244
client.urgent #F38BA8 #6C7086 #FFFFFF #F38BA8 #6C7086
seat * xcursor_theme Adwaita 24
input * xkb_options caps:escape
2025-10-31 22:14:15 +03:30
'';
config = {
modifier = "Mod4";
gaps = {
inner = 5;
outer = 5;
};
bars = [];
# output.eDP-1.disable = "";
2025-10-31 22:14:15 +03:30
keybindings = {
"${modifier}+Return" = "exec ${terminal}";
"${modifier}+Shift+Return" = "exec ${menu} -l 10";
"${modifier}+r" = "exec rofi -show drun";
2025-10-31 22:14:15 +03:30
"${modifier}+s" = "kill";
"${modifier}+Print" = "exec /home/coast/.local/src/local/bin/screenie-wlr";
"${modifier}+1" = "workspace 1";
"${modifier}+2" = "workspace 2";
"${modifier}+3" = "workspace 3";
"${modifier}+4" = "workspace 4";
"${modifier}+5" = "workspace 5";
"${modifier}+6" = "workspace 6";
"${modifier}+7" = "workspace 7";
"${modifier}+8" = "workspace 8";
"${modifier}+9" = "workspace 9";
"${modifier}+Shift+1" = "move container to workspace 1";
"${modifier}+Shift+2" = "move container to workspace 2";
"${modifier}+Shift+3" = "move container to workspace 3";
"${modifier}+Shift+4" = "move container to workspace 4";
"${modifier}+Shift+5" = "move container to workspace 5";
"${modifier}+Shift+6" = "move container to workspace 6";
"${modifier}+Shift+7" = "move container to workspace 7";
"${modifier}+Shift+8" = "move container to workspace 8";
"${modifier}+Shift+9" = "move container to workspace 9";
"${modifier}+h" = "focus left";
"${modifier}+j" = "focus down";
"${modifier}+k" = "focus up";
"${modifier}+l" = "focus right";
"${modifier}+Shift+i" = "exec caja";
"${modifier}+Shift+r" = "reload";
"${modifier}+Shift+q" = "exit";
"${modifier}+Shift+v" = "exec vesktop --ozone-platform=wayland";
"${modifier}+Shift+p" = "exec /home/coast/.local/src/local/bin/setwall.py";
"${modifier}+Shift+d" = "mode 'resize'";
2025-10-31 22:12:27 +03:30
"${modifier}+space" = "floating toggle";
#lock the screen
"${modifier}+Shift+l" = "exec swaylock -c 000000";
#layouts
"${modifier}+Shift+u" = "layout tabbed";
"${modifier}+Shift+y" = "layout stacking";
"${modifier}+Shift+t" = "layout toggle split";
2025-10-31 22:14:15 +03:30
};
modes = {
resize = {
${right} = "resize shrink width 10 px";
${up} = "resize grow height 10 px";
${down} = "resize shrink height 10 px";
${left} = "resize grow width 10 px";
2025-10-31 22:14:15 +03:30
"Escape" = "mode default";
"Return" = "mode default";
};
};
startup = [
{ command = "swaybg -i /home/coast/Downloads/wall1.png -m fill"; always = true; }
2025-10-31 22:14:15 +03:30
{ command = "waybar"; }
{ command = "foot -s"; always = true; }
{ command = "autotiling"; }
2025-10-31 22:14:15 +03:30
];
};
};
services.swayidle = {
enable = true;
timeouts = [{
timeout = 300;
command = "${pkgs.swaylock}/bin/swaylock --daemonize --color 000000";
}];
};
2025-10-31 22:14:15 +03:30
}