neodot/.config/niri/config.kdl
2025-10-03 18:38:03 -04:00

151 lines
5.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ~/.config/niri/config.kdl
// Validate with: niri validate
// Docs: https://yalter.github.io/niri/Configuration:-Introduction // :contentReference[oaicite:0]{index=0}
// --------- OUTPUTS (rotate the GPD Pocket 4 panel) ---------
output "eDP-1" {
// Uncomment the next line to disable this output:
// off
transform "270" // rotate 90°; use "270" if its the other way. :contentReference[oaicite:1]{index=1}
scale 1.6 // optional UI scaling
}
input {
touch {
map-to-output "eDP-1"
}
}
switch-events {
tablet-mode-on { spawn "bash" "-c" "gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true"; }
tablet-mode-off { spawn "bash" "-c" "gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false"; }
}
// --------- LAYOUT / LOOK ---------
layout {
gaps 7
default-column-width { proportion 0.8; }
focus-ring {
width 4
}
shadow {
softness 30
spread 5
offset x=0 y=5
}
}
// --------- STARTUP DAEMONS ---------
spawn-at-startup "waybar" // bar
spawn-at-startup "mako" // notifications
spawn-at-startup "blueman-applet" // bluetooth tray
spawn-at-startup "nm-applet" // network tray
spawn-at-startup "swaybg" "-i" "/home/tyler/.desktop/wallpaper/main.jpg" "-m" "fill"
// Screenshots path used by niris built-in screenshot actions.
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
prefer-no-csd
environment {
ELECTRON_OZONE_PLATFORM_HINT "auto"
}
binds {
Mod+Shift+Return { spawn "kitty"; }
Mod+P { spawn "fuzzel"; }
// Move around in the same column
// Mod+J { focus-window-down; } // next client in column
// Mod+K { focus-window-up; } // prev client in column // :contentReference[oaicite:3]{index=3}
// // Move aroudn side by side
// Mod+H { focus-column-left; }
// Mod+L { focus-column-right; }
Mod+J { focus-window-down-or-column-right; } // next client in column
Mod+K { focus-window-up-or-column-left; } // prev client in column // :contentReference[oaicite:3]{index=3}
// Move aroudn side by side
// Mod+H { focus-column-left; }
// Mod+L { focus-column-right; }
// Monitors (focus/tag mon)
Mod+Shift+L { focus-monitor-right; }
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+I { move-column-to-monitor-previous; }
Mod+Shift+U { move-column-to-monitor-next; }
// “shiftview” between workspaces
Mod+Shift+K { focus-workspace-up; }
Mod+Shift+J { focus-workspace-down; } // :contentReference[oaicite:8]{index=8}
// Master-ish resizing
Mod+H { set-column-width "-10%"; }
Mod+L { set-column-width "+10%"; }
// Mod+I { set-window-height "+10%"; }
// Mod+D { set-window-height "-10%"; }
// “Zoom” feel (cycle preset column widths)
Mod+Return { switch-preset-column-width; } // builtin behavior in niri releases. :contentReference[oaicite:4]{index=4}
// DWM: Mod+Tab view previous
Mod+Tab { focus-workspace-previous; } // workspace nav semantics here. :contentReference[oaicite:5]{index=5}
// Close (killclient)
Mod+Shift+C { close-window; } // :contentReference[oaicite:6]{index=6}
// Layout-ish toggles
Mod+F { toggle-window-floating; } // float
Mod+M { fullscreen-window; } // monocle-like fullscreen
Mod+T { maximize-column; } // tile-ish column maximize
Mod+0 { toggle-overview; } // overview feature in new niri. :contentReference[oaicite:7]{index=7}
// View workspaces 1..9 (DWM TAGKEYS view)
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; }
// indices are dynamic per monitor. :contentReference[oaicite:9]{index=9}
// Tag (send) focused column to workspace N (closest to DWM tag)
Mod+Shift+1 { move-column-to-workspace 1; }
Mod+Shift+2 { move-column-to-workspace 2; }
Mod+Shift+3 { move-column-to-workspace 3; }
Mod+Shift+4 { move-column-to-workspace 4; }
Mod+Shift+5 { move-column-to-workspace 5; }
Mod+Shift+6 { move-column-to-workspace 6; }
Mod+Shift+7 { move-column-to-workspace 7; }
Mod+Shift+8 { move-column-to-workspace 8; }
Mod+Shift+9 { move-column-to-workspace 9; } // :contentReference[oaicite:10]{index=10}
// Quit (DWM Mod+Shift+Q)
Mod+Shift+Q { quit skip-confirmation=true; }
// Media / volume / brightness
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-"; }
XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
XF86AudioPlay { spawn "playerctl" "play-pause"; }
XF86AudioNext { spawn "playerctl" "next"; }
XF86AudioPrev { spawn "playerctl" "previous"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+5%"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "5%-"; }
// Screenshots (to screenshot-path)
Print { screenshot; }
Ctrl+Print { screenshot-screen; }
Alt+Print { screenshot-window; } // actions are available via niri msg action too. :contentReference[oaicite:11]{index=11}
}