summaryrefslogtreecommitdiff
path: root/modules/desktops/sway/binds.nix
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-06-28 16:08:10 -0400
committerFreya Murphy <freya@freyacat.org>2025-06-28 16:08:10 -0400
commit49aea0dbed7cc4a3f26c7beff624c35aaf48a470 (patch)
tree255ede903ce278dc56c480de4df66966cdc95dd9 /modules/desktops/sway/binds.nix
parentmake hyprlock input not change bg color (diff)
downloaddotfiles-nix-49aea0dbed7cc4a3f26c7beff624c35aaf48a470.tar.gz
dotfiles-nix-49aea0dbed7cc4a3f26c7beff624c35aaf48a470.tar.bz2
dotfiles-nix-49aea0dbed7cc4a3f26c7beff624c35aaf48a470.zip
add swaywm
Diffstat (limited to 'modules/desktops/sway/binds.nix')
-rw-r--r--modules/desktops/sway/binds.nix91
1 files changed, 91 insertions, 0 deletions
diff --git a/modules/desktops/sway/binds.nix b/modules/desktops/sway/binds.nix
new file mode 100644
index 0000000..812d446
--- /dev/null
+++ b/modules/desktops/sway/binds.nix
@@ -0,0 +1,91 @@
+{config, ...}: let
+ mod = "Mod4";
+in {
+ home-manager.users.${config.user} = {
+ wayland.windowManager.sway = {
+ config = {
+ keybindings = {
+ # apps
+ "${mod}+Return" = "exec ${config.default.terminal}";
+ "${mod}+l" = "exec ${config.default.lockScreen}";
+ "${mod}+d" = "exec ${config.default.appLauncher}";
+ "${mod}+w" = "exec ${config.default.browser}";
+
+ # exit
+ "${mod}+Shift+l" = "exit";
+ # kill focused window
+ "${mod}+Shift+q" = "kill";
+ # reload sway
+ "${mod}+F5" = "reload";
+
+ # audio
+ "XF86AudioRaiseVolume" = "exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+";
+ "XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-";
+ "XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
+ "XF86AudioMicMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
+
+ # media
+ "XF86AudioPlay" = "exec playerctl play-pause";
+ "XF86AudioNext" = "exec playerctl next";
+ "XF86AudioPrev" = "exec playerctl previous";
+
+ # backlight
+ "XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
+ "XF86MonBrightnessUp" = "exec brightnessctl set 5%+";
+
+ # screenshot
+ "Print" = "exec grimblast copy area";
+
+ # move focus
+ "${mod}+Left" = "focus left";
+ "${mod}+Down" = "focus down";
+ "${mod}+Up" = "focus up";
+ "${mod}+Right" = "focus right";
+
+ # move focused window
+ "${mod}+Shift+Left" = "move left";
+ "${mod}+Shift+Down" = "move down";
+ "${mod}+Shift+Up" = "move up";
+ "${mod}+Shift+Right" = "move right";
+
+ # switch 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";
+
+ # 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";
+
+ # layout
+ "${mod}+Shift+d" = "layout default";
+ "${mod}+Shift+b" = "layout splith";
+ "${mod}+Shift+v" = "layout splitv";
+ "${mod}+Shift+c" = "layout tabbed";
+
+ # fullscreen
+ "${mod}+f" = "fullscreen";
+ # float
+ "${mod}+Shift+space" = "floating toggle";
+ # focus
+ "${mod}+space" = "focus mode_toggle";
+ # parent
+ "${mod}+a" = "focus parent";
+ };
+ };
+ };
+ };
+}