summaryrefslogtreecommitdiff
path: root/.config/niri/cfg/keybinds.kdl
diff options
context:
space:
mode:
authorNate Cox <nate@natecox.dev>2026-05-13 11:25:07 -0700
committerNate Cox <nate@natecox.dev>2026-05-13 11:25:07 -0700
commitea73642a3c82b5e58f6f7f42878bc695e7189efe (patch)
tree96ec63b2995d15c8972a2c7d4be9a7c4089b62b6 /.config/niri/cfg/keybinds.kdl
downloaddotfiles-ea73642a3c82b5e58f6f7f42878bc695e7189efe.tar.bz2
dotfiles-ea73642a3c82b5e58f6f7f42878bc695e7189efe.zip
Initial commit
Diffstat (limited to '.config/niri/cfg/keybinds.kdl')
-rw-r--r--.config/niri/cfg/keybinds.kdl137
1 files changed, 137 insertions, 0 deletions
diff --git a/.config/niri/cfg/keybinds.kdl b/.config/niri/cfg/keybinds.kdl
new file mode 100644
index 0000000..21563cd
--- /dev/null
+++ b/.config/niri/cfg/keybinds.kdl
@@ -0,0 +1,137 @@
+binds {
+
+ // ────────────── Keybindings ──────────────
+ // https://github.com/YaLTeR/niri/wiki/Configuration:-Key-Bindings
+
+ // ─── noctalia-shell keybinds ───
+ // https://docs.noctalia.dev/getting-started/keybinds/
+
+ Mod+Shift+ESCAPE { show-hotkey-overlay; }
+
+ // ─── Applications ───
+ Mod+Return hotkey-overlay-title="Open Terminal: Foot" { spawn "foot"; }
+ Mod+CTRL+Return hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
+ Mod+B hotkey-overlay-title="Open Browser: Helium" { spawn "helium-browser"; }
+ Mod+ALT+L hotkey-overlay-title="Lock Screen: noctalia lock" { spawn-sh "qs -c noctalia-shell ipc call lockScreen lock"; }
+ Mod+Shift+Q hotkey-overlay-title="Session Menu: noctalia sessionMenu" { spawn-sh "qs -c noctalia-shell ipc call sessionMenu toggle"; }
+
+ // Please choose your own file manager.
+ Mod+E hotkey-overlay-title="File Manager: Nautilus" { spawn "nautilus"; }
+
+ // ─── Media Controls ───
+ XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume increase"; }
+ XF86AudioLowerVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume decrease"; }
+ XF86AudioMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteOutput"; }
+ XF86AudioMicMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteInput"; }
+ XF86AudioNext allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media next"; }
+ XF86AudioPrev allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media previous"; }
+ XF86AudioPlay allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }
+ XF86AudioPause allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }
+
+ // ─── Brightness Controls ───
+ XF86MonBrightnessUp allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness increase"; }
+ XF86MonBrightnessDown allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness decrease"; }
+
+ // ─── Window Movement and Focus ───
+ Mod+Q { close-window; }
+
+ Mod+Left { focus-column-left; }
+ Mod+H { focus-column-left; }
+ Mod+Right { focus-column-right; }
+ Mod+L { focus-column-right; }
+ Mod+Up { focus-window-up; }
+ Mod+K { focus-window-up; }
+ Mod+Down { focus-window-down; }
+ Mod+J { focus-window-down; }
+
+ Mod+CTRL+Left { move-column-left; }
+ Mod+CTRL+H { move-column-left; }
+ Mod+CTRL+Right { move-column-right; }
+ Mod+CTRL+L { move-column-right; }
+ Mod+CTRL+UP { move-window-up; }
+ Mod+CTRL+K { move-window-up; }
+ Mod+CTRL+Down { move-window-down; }
+ Mod+CTRL+J { move-window-down; }
+
+ Mod+Home { focus-column-first; }
+ Mod+End { focus-column-last; }
+ Mod+CTRL+Home { move-column-to-first; }
+ Mod+CTRL+End { move-column-to-last; }
+
+ Mod+Shift+Left { focus-monitor-left; }
+ Mod+Shift+Right { focus-monitor-right; }
+ Mod+Shift+UP { focus-monitor-up; }
+ Mod+Shift+Down { focus-monitor-down; }
+
+ Mod+Shift+CTRL+Left { move-column-to-monitor-left; }
+ Mod+Shift+CTRL+Right { move-column-to-monitor-right; }
+ Mod+Shift+CTRL+UP { move-column-to-monitor-up; }
+ Mod+Shift+CTRL+Down { move-column-to-monitor-down; }
+
+ // ─── Workspace Switching ───
+ Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
+ Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
+ Mod+CTRL+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
+ Mod+CTRL+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
+
+ Mod+WheelScrollRight { focus-column-right; }
+ Mod+WheelScrollLeft { focus-column-left; }
+ Mod+CTRL+WheelScrollRight { move-column-right; }
+ Mod+CTRL+WheelScrollLeft { move-column-left; }
+
+ Mod+Shift+WheelScrollDown { focus-column-right; }
+ Mod+Shift+WheelScrollUp { focus-column-left; }
+ Mod+CTRL+Shift+WheelScrollDown { move-column-right; }
+ Mod+CTRL+Shift+WheelScrollUp { move-column-left; }
+
+ Mod+1 { focus-workspace 1; }
+ Mod+2 { focus-workspace 2; }
+ Mod+3 { focus-workspace 3; }
+ Mod+4 { focus-workspace 4; }
+ Mod+5 { focus-workspace 5; }
+ Mod+6 { focus-workspace 6; }
+ Mod+7 { focus-workspace 7; }
+ Mod+8 { focus-workspace 8; }
+ Mod+9 { focus-workspace 9; }
+
+ Mod+CTRL+1 { move-column-to-workspace 1; }
+ Mod+CTRL+2 { move-column-to-workspace 2; }
+ Mod+CTRL+3 { move-column-to-workspace 3; }
+ Mod+CTRL+4 { move-column-to-workspace 4; }
+ Mod+CTRL+5 { move-column-to-workspace 5; }
+ Mod+CTRL+6 { move-column-to-workspace 6; }
+ Mod+CTRL+7 { move-column-to-workspace 7; }
+ Mod+CTRL+8 { move-column-to-workspace 8; }
+ Mod+CTRL+9 { move-column-to-workspace 9; }
+
+ Mod+TAB { focus-workspace-previous; }
+
+ // ─── Layout Controls ───
+ Mod+CTRL+F { expand-column-to-available-width; }
+ Mod+C { center-column; }
+ Mod+CTRL+C { center-visible-columns; }
+ Mod+Minus { set-column-width "-10%"; }
+ Mod+Equal { set-column-width "+10%"; }
+ Mod+Shift+Minus { set-window-height "-10%"; }
+ Mod+Shift+Equal { set-window-height "+10%"; }
+
+ // ─── Modes ───
+ Mod+T { toggle-window-floating; }
+ Mod+F { fullscreen-window; }
+ Mod+W { toggle-column-tabbed-display; }
+
+ // ─── Screenshots ───
+ CTRL+Shift+1 { screenshot; }
+ CTRL+Shift+2 { screenshot-screen; }
+ CTRL+Shift+3 { screenshot-window; }
+
+ // ─── Emergency Escape Key ───
+ // Use this when a fullscreen app blocks your keybinds.
+ // It disables any active keyboard shortcut inhibitor, restoring control.
+ Mod+ESCAPE allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
+
+ // ─── Exit / Power ───
+ CTRL+ALT+Delete { quit; } // Also quits Niri
+ Mod+Shift+P { power-off-monitors; } // Turn off screens (useful for OLED or privacy)
+ Mod+O repeat=false { toggle-overview; }
+}