diff --git a/homeManagerModules/desktopEnv/sway/default.nix b/homeManagerModules/desktopEnv/sway/default.nix index 09a2755e..a45d1b39 100644 --- a/homeManagerModules/desktopEnv/sway/default.nix +++ b/homeManagerModules/desktopEnv/sway/default.nix @@ -48,31 +48,76 @@ services.cliphist.enable = lib.mkDefault true; wayland.windowManager.sway.enable = true; - wayland.windowManager.sway.config = { - bars = [{command = "${pkgs.waybar}/bin/waybar";}]; - # bars.waybar.command = "${pkgs.waybar}/bin/waybar"; - terminal = "${pkgs.alacritty}/bin/alacritty"; - menu = "${pkgs.fuzzel}/bin/fuzzel"; + wayland.windowManager.sway.config = let modifier = "Mod4"; + + # Default apps + browser = pkgs.firefox + "/bin/firefox"; + fileManager = pkgs.xfce.thunar + "/bin/thunar"; + editor = pkgs.vscodium + "/bin/codium"; + terminal = pkgs.alacritty + "/bin/alacritty"; + + # River desktop utilities + bar = pkgs.waybar + "/bin/waybar"; + launcher = pkgs.fuzzel + "/bin/fuzzel"; + notifyd = pkgs.mako + "/bin/mako"; + wallpaperd = pkgs.swaybg + "/bin/swaybg"; + idle = pkgs.swayidle + "/bin/swayidle"; + logout = pkgs.wlogout + "/bin/wlogout"; + lock = pkgs.swaylock + "/bin/swaylock -f -c 000000"; + + brightness = "${pkgs.swayosd}/bin/swayosd-client"; + brightness_up = "${brightness} --brightness=raise"; + brightness_down = "${brightness} --brightness=lower"; + volume = "${pkgs.swayosd}/bin/swayosd-client"; + volume_up = "${volume} --output-volume=raise"; + volume_down = "${volume} --output-volume=lower"; + volume_mute = "${volume} --output-volume=mute-toggle"; + mic_mute = "${volume} --input-volume=mute-toggle"; + media = "${pkgs.playerctl}/bin/playerctl"; + media_play = "${media} play-pause"; + media_next = "${media} next"; + media_previous = "${media} previous"; + + # screenshot = "${pkgs.hyprshot}/bin/hyprshot"; + # screenshot_folder = "~/pics/screenshots"; + # screenshot_screen = "${screenshot} -m output -o ${screenshot_folder}"; + # screenshot_region = "${screenshot} -m region -o ${screenshot_folder}"; + + # Color, themes, scaling + colorPrimary = "ca9ee6ee"; + colorSecondary = "99d1dbee"; + border_inactive = "303446aa"; + drop_shadow = "1a1a1aee"; + cursor_size = "24"; + qt_platform_theme = "gtk2"; + gdk_scale = "1.5"; + in { + bars = [{command = "${bar}";}]; + # bars.waybar.command = "${pkgs.waybar}/bin/waybar"; + terminal = "${terminal}"; + menu = "${launcher}"; + modifier = "${modifier}"; + colors.background = "${colorPrimary}"; colors.focused = { - background = "#ca9ee6"; - border = "#ca9ee6"; - childBorder = "#ca9ee6"; - indicator = "#ca9ee6"; + background = "${colorPrimary}"; + border = "${colorPrimary}"; + childBorder = "${colorPrimary}"; + indicator = "${colorPrimary}"; text = "#ffffff"; }; colors.focusedInactive = { - background = "#99d1db"; - border = "#99d1db"; - childBorder = "#99d1db"; - indicator = "#99d1db"; + background = "${colorSecondary}"; + border = "${colorSecondary}"; + childBorder = "${colorSecondary}"; + indicator = "${colorSecondary}"; text = "#ffffff"; }; colors.unfocused = { - background = "#99d1db"; - border = "#99d1db"; - childBorder = "#99d1db"; - indicator = "#99d1db"; + background = "${colorSecondary}"; + border = "${colorSecondary}"; + childBorder = "${colorSecondary}"; + indicator = "${colorSecondary}"; text = "#ffffff"; }; gaps.inner = 5; @@ -105,6 +150,62 @@ tap_button_map = "lrm"; }; }; + keybindings = lib.mkOptionDefault { + "${modifier}+r" = "exec ${launcher}"; + "${modifier}+t" = "exec ${terminal}"; + "${modifier}+b" = "exec ${browser}"; + "${modifier}+e" = "exec ${editor}"; + "${modifier}+f" = "exec ${fileManager}"; + + "${modifier}+c" = "kill"; + + "${modifier}+l" = "exec ${lock}"; + "${modifier}+m" = "exec ${logout}"; + + "${modifier}+w" = "fullscreen toggle"; + "${modifier}+v" = "floating toggle"; + + "${modifier}+s" = "scratchpad show"; + "${modifier}+Shift+s" = "move scratchpad"; + + "${modifier}+period" = "workspace next"; + "${modifier}+comma" = "workspace prev"; + + "${modifier}+1" = "workspace number 1"; + "${modifier}+2" = "workspace number 2"; + "${modifier}+3" = "workspace number 3"; + "${modifier}+4" = "workspace number 4"; + "${modifier}+5" = "workspace number 5"; + "${modifier}+6" = "workspace number 6"; + "${modifier}+7" = "workspace number 7"; + "${modifier}+8" = "workspace number 8"; + "${modifier}+9" = "workspace number 9"; + + "${modifier}+Shift+period" = "move container to workspace next; workspace next"; + "${modifier}+Shift+comma" = "move container to workspace prev; workspace prev"; + + "${modifier}+Shift+1" = "move container to workspace number 1"; + "${modifier}+Shift+2" = "move container to workspace number 2"; + "${modifier}+Shift+3" = "move container to workspace number 3"; + "${modifier}+Shift+4" = "move container to workspace number 4"; + "${modifier}+Shift+5" = "move container to workspace number 5"; + "${modifier}+Shift+6" = "move container to workspace number 6"; + "${modifier}+Shift+7" = "move container to workspace number 7"; + "${modifier}+Shift+8" = "move container to workspace number 8"; + "${modifier}+Shift+9" = "move container to workspace number 9"; + + # audio control + "XF86AudioRaiseVolume" = "exec ${volume_up}"; + "XF86AudioLowerVolume" = "exec ${volume_down}"; + "XF86AudioMute" = "exec ${volume_mute}"; + + # mic control + "XF86AudioMicMute" = "exec ${mic_mute}"; + + # brightness + "XF86MonBrightnessUp" = "exec ${brightness_up}"; + "XF86MonBrightnessDown" = "exec ${brightness_down}"; + }; }; wayland.windowManager.sway.extraConfig = ''