151 lines
5.8 KiB
Plaintext
151 lines
5.8 KiB
Plaintext
// ~/.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 it’s 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 niri’s 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}
|
||
}
|
||
|