diff options
Diffstat (limited to 'features/user/gui/desktops/niri/keybinds.nix')
| -rw-r--r-- | features/user/gui/desktops/niri/keybinds.nix | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/features/user/gui/desktops/niri/keybinds.nix b/features/user/gui/desktops/niri/keybinds.nix new file mode 100644 index 0000000..5426ee6 --- /dev/null +++ b/features/user/gui/desktops/niri/keybinds.nix @@ -0,0 +1,165 @@ +{ + config, + pkgs, + lib, + ... +}: { + config = lib.mkIf config.features.gui.desktops.niri.enable { + programs.niri.settings.binds = let + left = "h"; + down = "j"; + up = "k"; + right = "l"; + in { + # App Launching Keys + "Mod+Q".action.spawn = ["footclient"]; + "Mod+W".action.spawn = ["qutebrowser"]; + "Mod+Shift+W".action.spawn = ["librewolf"]; + "Mod+E".action.spawn = ["neovide"]; + + # Clear Notifications + "Mod+B".action.spawn = ["makoctl" "dismiss" "-a"]; + + # Selectors + "Mod+R".action.spawn = ["fuzzel"]; + "Mod+T".action.spawn = ["tool-selector"]; + "Mod+Y".action.spawn = ["clipboard-selector"]; + "Mod+U".action.spawn = ["wallpaper-selector" "--all-outputs"]; + "Mod+Shift+U".action.spawn = ["wallpaper-selector"]; + "Mod+Control+U".action.spawn = ["wallpaper-selector" "--randomize" "--all-outputs"]; + "Mod+Control+Shift+U".action.spawn = ["wallpaper-selector" "--randomize"]; + + # Screenshot Keys + "Mod+P".action.screenshot = []; + "Shift+Mod+P".action.screenshot-screen = []; + "Control+Mod+P".action.screenshot-window = []; + + # Power Keys + "Mod+comma".action.spawn = ["${lib.getExe (pkgs.writers.writeNuBin "nirilock" "systemctl suspend ; hyprlock")}"]; + + # Horizontal Tiling Keys + "Mod+A".action.maximize-column = []; + "Mod+S".action.switch-preset-column-width = []; + + # Vertical Tiling Keys + "Mod+Shift+A".action.reset-window-height = []; + "Mod+Shift+S".action.switch-preset-window-height = []; + "Mod+D".action.consume-or-expel-window-right = []; + + # Floating Window Management Keys + "Mod+Z".action.switch-focus-between-floating-and-tiling = []; + "Mod+X".action.toggle-window-floating = []; + + # Other Window Management Keys + "Mod+C".action.close-window = []; + "Mod+V".action.fullscreen-window = []; + + # Overlay Keys + "Mod+F".action.toggle-overview = []; + + # +---------------------+ + # | Arrow Movement Keys | + # +---------------------+ + + # Window Focus Keys + "Mod+Left".action.focus-column-left = []; + "Mod+Right".action.focus-column-right = []; + "Mod+Up".action.focus-window-up = []; + "Mod+Down".action.focus-window-down = []; + + # Monitor Focus Keys + "Mod+Shift+Left".action.focus-monitor-left = []; + "Mod+Shift+Right".action.focus-monitor-right = []; + + # Workspace Focus Keys + "Mod+Shift+Up".action.focus-workspace-up = []; + "Mod+Shift+Down".action.focus-workspace-down = []; + + # Window Motion Keys + "Mod+Control+Left".action.move-column-left = []; + "Mod+Control+Right".action.move-column-right = []; + "Mod+Control+Up".action.move-window-up = []; + "Mod+Control+Down".action.move-window-down = []; + + # Window - Monitor Motion Keys + "Mod+Control+Shift+Left".action.move-column-to-monitor-left = []; + "Mod+Control+Shift+Right".action.move-column-to-monitor-right = []; + + # Window - Workspace Motion Keys + "Mod+Control+Shift+Up".action.move-window-to-workspace-up = []; + "Mod+Control+Shift+Down".action.move-window-to-workspace-down = []; + + # Workspace Motion Keys + "Mod+Alt+Shift+Up".action.move-workspace-up = []; + "Mod+Alt+Shift+Down".action.move-workspace-down = []; + + # Workspace - Monitor Motion Keys + "Mod+Alt+Shift+Left".action.move-workspace-to-monitor-left = []; + "Mod+Alt+Shift+Right".action.move-workspace-to-monitor-right = []; + + # +-------------------+ + # | Vim Movement Keys | + # +-------------------+ + + # Window Focus Keys + "Mod+${left}".action.focus-column-left = []; + "Mod+${right}".action.focus-column-right = []; + "Mod+${up}".action.focus-window-up = []; + "Mod+${down}".action.focus-window-down = []; + + # Monitor Focus Keys + "Mod+Shift+${left}".action.focus-monitor-left = []; + "Mod+Shift+${right}".action.focus-monitor-right = []; + + # Workspace Focus Keys + "Mod+Shift+${up}".action.focus-workspace-up = []; + "Mod+Shift+${down}".action.focus-workspace-down = []; + + # Monitor Motion Keys + "Mod+Control+Shift+${left}".action.move-column-to-monitor-left = []; + "Mod+Control+Shift+${right}".action.move-column-to-monitor-right = []; + + # Workspace Motion Keys + "Mod+Control+Shift+${up}".action.move-window-to-workspace-up = []; + "Mod+Control+Shift+${down}".action.move-window-to-workspace-down = []; + + # Window Motion Keys + "Mod+Control+${left}".action.move-column-left = []; + "Mod+Control+${right}".action.move-column-right = []; + "Mod+Control+${up}".action.move-window-up = []; + "Mod+Control+${down}".action.move-window-down = []; + + # Workspace Motion Keys + "Mod+Alt+Shift+${up}".action.move-workspace-up = []; + "Mod+Alt+Shift+${down}".action.move-workspace-down = []; + + # Workspace - Monitor Motion Keys + "Mod+Alt+Shift+${left}".action.move-workspace-to-monitor-left = []; + "Mod+Alt+Shift+${right}".action.move-workspace-to-monitor-right = []; + + # +-------------------+ + + # Numbered Workspace Movement Keys + "Mod+1".action.focus-workspace = 1; + "Mod+2".action.focus-workspace = 2; + "Mod+3".action.focus-workspace = 3; + "Mod+4".action.focus-workspace = 4; + "Mod+5".action.focus-workspace = 5; + "Mod+6".action.focus-workspace = 6; + "Mod+7".action.focus-workspace = 7; + "Mod+8".action.focus-workspace = 8; + "Mod+9".action.focus-workspace = 9; + "Mod+0".action.focus-workspace = 0; + + # XF86 Keys + "XF86AudioRaiseVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%+"]; + "XF86AudioLowerVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%-"]; + "XF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"]; + + "XF86MonBrightnessUp".action.spawn = ["${lib.getExe pkgs.brightnessctl}" "s" "+5%"]; + "XF86MonBrightnessDown".action.spawn = ["${lib.getExe pkgs.brightnessctl}" "s" "5%-"]; + + "XF86LaunchB".action.spawn = ["fuzzel"]; + }; + }; +} |
