diff --git a/.config/niri/niri.d/keybinds.kdl b/.config/niri/niri.d/keybinds.kdl new file mode 100644 index 0000000..4c1baa0 --- /dev/null +++ b/.config/niri/niri.d/keybinds.kdl @@ -0,0 +1,117 @@ +// ────────────── Keybindings ────────────── + +binds { + + // ─── System ─── + MOD+SPACE { spawn "dms" "ipc" "call" "spotlight" "toggle"; } + MOD+C { spawn "dms" "ipc" "call" "clipboard" "toggle"; } + MOD+L { spawn "dms" "ipc" "lock" "lock";} + + // ─── Screenshots ─── + PRINT { spawn-sh "f=~/Bilder/Screenshots/PC/screenshot_$(date +%Y-%m-%d_%H%M%S).png; dms screenshot --stdout > $f && ([ -s $f ] && satty -f $f || rm $f)"; } +// PRINT { spawn-sh "dms screenshot --stdout | tee ~/Bilder/Screenshots/PC/screenshot_$(date +%Y-%m-%d_%H%M%S).png | satty -f - --early-exit"; } + SHIFT+PRINT { spawn-sh "dms screenshot full --stdout | tee ~/Bilder/Screenshots/PC/screenshot_$(date +%Y-%m-%d_%H%M%S).png | satty -f - --early-exit"; } + + // ─── Applications ─── + MOD+RETURN { spawn "alacritty"; } + MOD+B { spawn "vivaldi"; } + MOD+E { spawn "thunar"; } + MOD+T { spawn "gnome-text-editor"; } + + // ─── Audio Controls ─── + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"; } + XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; } + XF86AudioPause allow-when-locked=true { spawn-sh "playerctl play-pause"; } + XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; } + XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; } + + // ─── Window Movement and Focus ─── + MOD+Q { close-window; } + + MOD+LEFT { focus-column-left; } + MOD+RIGHT { focus-column-right; } + MOD+DOWN { focus-window-or-workspace-down; } + MOD+UP { focus-window-or-workspace-up; } + + MOD+CTRL+LEFT { move-column-left; } + MOD+CTRL+RIGHT { move-column-right; } + MOD+CTRL+UP { move-column-to-workspace-up; } + MOD+CTRL+DOWN { move-column-to-workspace-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 { focus-workspace-down; } + MOD+WHEELSCROLLUP { focus-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+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + // MOD+T { toggle-window-floating; } + // MOD+W { toggle-column-tabbed-display; } + + + 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; } +} \ No newline at end of file