dotfiles-mirror/nixos/home-configuration/apps/sway.nix
coast 3c3f332f83 remove some things from the Nvim config, change up the waybar config,
switch to Niri WM and update my Niri config, change up some stuff in
    nixos configuration
2025-11-02 13:53:18 +03:30

111 lines
3.6 KiB
Nix

{
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 = false;
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
'';
config = {
modifier = "Mod4";
gaps = {
inner = 8;
outer = 10;
};
bars = [];
output.eDP-1.disable = "";
keybindings = {
"${modifier}+Return" = "exec ${terminal}";
"${modifier}+Shift+Return" = "exec ${menu} -l 10";
"${modifier}+r" = "exec rofi -show drun";
"${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'";
"${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";
};
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";
"Escape" = "mode default";
"Return" = "mode default";
};
};
startup = [
{ command = "swaybg -i /home/coast/Downloads/wall1.png -m fill"; always = true; }
{ command = "waybar"; }
{ command = "foot -s"; always = true; }
{ command = "autotiling"; }
];
};
};
services.swayidle = {
enable = true;
timeouts = [{
timeout = 300;
command = "${pkgs.swaylock}/bin/swaylock --daemonize --color 000000";
}];
};
}