diff options
Diffstat (limited to 'niri.nix')
-rw-r--r-- | niri.nix | 285 |
1 files changed, 285 insertions, 0 deletions
diff --git a/niri.nix b/niri.nix new file mode 100644 index 0000000..5c131da --- /dev/null +++ b/niri.nix @@ -0,0 +1,285 @@ +{ + pkgs, + inputs, + ... +}: { + xdg.configFile."niri/config.kdl".text = '' + gestures { + hot-corners { + off + } + } + + input { + keyboard { + xkb { + layout "us,de" + } + } + + touchpad { + tap + natural-scroll + } + } + + output "eDP-1" { + mode "3840x2160@60.000" + } + + output "LG Electronics LG HDR 4K 0x0001A8D9" { + mode "3840x2160@60.000" + } + + layout { + gaps 0 + center-focused-column "never" + preset-column-widths { + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + } + default-column-width { + proportion 0.5 + } + focus-ring { + off + } + struts { + right 10 + } + + border { + width 3 + active-color "#7fc8ff" + inactive-color "#DDDDDD" + } + } + + overview { + backdrop-color "#DDDDDD" + } + + spawn-at-startup "dbus-update-activation-environment" "WAYLAND_DISPLAY" "XDG_CURRENT_DESKTOP=sway" + //spawn-at-startup "/usr/libexec/pipewire-launcher" + //spawn-at-startup "openrc --user gui" + + spawn-at-startup "waybar" + spawn-at-startup "mako" + spawn-at-startup "nm-applet" + spawn-at-startup "blueman-applet" + spawn-at-startup "swaybg" "-c" "DDDDDD" + + spawn-at-startup "xwayland-satellite" ":12" + environment { + DISPLAY ":12" + } + + spawn-at-startup "flatpak" "run" "com.slack.Slack" + spawn-at-startup "telegram-desktop" + + prefer-no-csd + + screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" + + + binds { + Mod+Shift+Slash { show-hotkey-overlay; } + + Mod+T { spawn "ghostty"; } + Mod+D { spawn "wofi" "--show" "run"; } + Mod+O repeat=false { toggle-overview; } + Mod+Shift+D { spawn "wofi" "--show" "drun"; } + Super+Alt+L { spawn "swaylock"; } + + Mod+Shift+Q { close-window; } + + Mod+H { focus-column-left; } + Mod+J { focus-window-or-workspace-down; } + Mod+K { focus-window-or-workspace-up; } + Mod+L { focus-column-right; } + + Mod+Ctrl+H { move-column-left; } + Mod+Ctrl+J { move-workspace-down; } + Mod+Ctrl+K { move-workspace-up; } + Mod+Ctrl+L { move-column-right; } + + 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+H { focus-monitor-left; } + Mod+Shift+J { focus-monitor-down; } + Mod+Shift+K { focus-monitor-up; } + Mod+Shift+L { focus-monitor-right; } + + Mod+Shift+Ctrl+H { move-column-to-monitor-left; } + Mod+Shift+Ctrl+J { move-column-to-monitor-down; } + Mod+Shift+Ctrl+K { move-column-to-monitor-up; } + Mod+Shift+Ctrl+L { move-column-to-monitor-right; } + + // Alternatively, there are commands to move just a single window: + // Mod+Shift+Ctrl+Left { move-window-to-monitor-left; } + // ... + + // And you can also move a whole workspace to another monitor: + Mod+Shift+Ctrl+U { move-workspace-to-monitor-left; } + Mod+Shift+Ctrl+I { move-workspace-to-monitor-right; } + // ... + + Mod+Page_Down { focus-workspace-down; } + Mod+Page_Up { focus-workspace-up; } + Mod+Ctrl+Page_Down { move-column-to-workspace-down; } + Mod+Ctrl+Page_Up { move-column-to-workspace-up; } + Mod+Ctrl+U { move-column-to-workspace-down; } + Mod+Ctrl+I { move-column-to-workspace-up; } + + Mod+Shift+Page_Down { move-workspace-down; } + Mod+Shift+Page_Up { move-workspace-up; } + Mod+Shift+U { move-workspace-down; } + Mod+Shift+I { move-workspace-up; } + + 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 "α"; } + Mod+2 { focus-workspace "γ"; } + Mod+3 { focus-workspace "δ"; } + Mod+4 { focus-workspace "ε"; } + Mod+5 { focus-workspace "ζ"; } + Mod+6 { focus-workspace "6"; } + Mod+7 { focus-workspace "7"; } + Mod+8 { focus-workspace "8"; } + Mod+9 { focus-workspace "9"; } + Mod+Minus { focus-workspace "-"; } + Mod+Ctrl+1 { move-column-to-workspace "α"; } + Mod+Ctrl+2 { move-column-to-workspace "γ"; } + Mod+Ctrl+3 { move-column-to-workspace "δ"; } + Mod+Ctrl+4 { move-column-to-workspace "ε"; } + Mod+Ctrl+5 { move-column-to-workspace "ζ"; } + 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+Ctrl+Minus { move-column-to-workspace "-"; } + + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + + Mod+Comma { consume-window-into-column; } + Mod+Period { expel-window-from-column; } + + Mod+R { switch-preset-column-width; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + + Mod+Ctrl+F { expand-column-to-available-width; } + + Mod+C { center-column; } + + Mod+U { set-column-width "-10%"; } + Mod+I { set-column-width "+10%"; } + + // Finer height adjustments when in column with other windows. + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+Equal { set-window-height "+10%"; } + + Mod+V { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + Mod+W { toggle-column-tabbed-display; } + + Mod+p { screenshot; } + + Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + Mod+Shift+E { quit; } + + Mod+Shift+P { power-off-monitors; } + } + + workspace "α" { + } + + workspace "γ" { + } + + workspace "δ" { + } + + workspace "ε" { + } + + workspace "ζ" { + } + + workspace "6" { + } + + workspace "7" { + } + + workspace "8" { + } + + workspace "9" { + } + + workspace "-" { + } + + window-rule { + match app-id=r#"^com\.slack\.Slack$"# + + open-on-workspace "chat" + block-out-from "screencast" + } + + window-rule { + match app-id=r#"^org\.telegram\.desktop$"# + + open-on-workspace "ζ" + block-out-from "screencast" + } + + window-rule { + match app-id=r#"^Bitwarden$"# + + open-on-workspace "res" + block-out-from "screencast" + } + + + window-rule { + match app-id=r#"^org\.pulseaudio\.pavucontrol$"# + match app-id=r#"^blueman\-manager$"# + + open-floating true + } + + + layer-rule { + exclude namespace="^notifications$" + + block-out-from "screencast" + } + + // user private to hide private browser + // altgr-intl + ''; +} |