All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 4s
Waybar's include directive cannot merge arrays, making per-machine module customization impossible without duplicating the entire config. moonarch-waybar merges an optional ~/.config/waybar/userconfig with the system config, supporting prepend/append on module arrays and object merge for module definitions. Generates user style.css with @import of system styles on first run. System waybar config converted from JSONC to valid JSON for jq compatibility. Niri startup and hotkey updated to use the wrapper.
283 lines
8.3 KiB
Plaintext
283 lines
8.3 KiB
Plaintext
// ABOUTME: Moonarch default Niri compositor configuration.
|
|
// ABOUTME: User overrides go in ~/.config/niri/config.kdl
|
|
|
|
cursor {
|
|
xcursor-theme "Sweet-cursors"
|
|
hide-when-typing
|
|
hide-after-inactive-ms 1000
|
|
}
|
|
|
|
input {
|
|
mod-key "Super"
|
|
keyboard {
|
|
xkb {
|
|
layout "de"
|
|
}
|
|
numlock
|
|
}
|
|
|
|
touchpad {
|
|
tap
|
|
natural-scroll
|
|
}
|
|
|
|
mouse {
|
|
accel-profile "flat"
|
|
}
|
|
|
|
trackpoint {
|
|
}
|
|
|
|
warp-mouse-to-focus
|
|
focus-follows-mouse max-scroll-amount="0%"
|
|
}
|
|
|
|
gestures {
|
|
hot-corners {
|
|
off
|
|
}
|
|
}
|
|
|
|
layout {
|
|
gaps 8
|
|
center-focused-column "never"
|
|
always-center-single-column
|
|
|
|
preset-column-widths {
|
|
proportion 0.33333
|
|
proportion 0.5
|
|
proportion 0.66667
|
|
}
|
|
|
|
default-column-width { proportion 0.5; }
|
|
|
|
focus-ring {
|
|
width 2
|
|
active-color "#7f849c80"
|
|
inactive-color "#1e1e2e80"
|
|
}
|
|
|
|
border {
|
|
off
|
|
width 2
|
|
active-color "#ffc87f"
|
|
inactive-color "#505050"
|
|
urgent-color "#9b0000"
|
|
}
|
|
|
|
shadow {
|
|
off
|
|
softness 30
|
|
spread 2
|
|
offset x=0 y=5
|
|
color "#0007"
|
|
}
|
|
|
|
struts {
|
|
}
|
|
}
|
|
|
|
// xwayland-satellite is managed automatically since niri 25.08
|
|
// kanshi is managed via systemd user service (kanshi.service)
|
|
spawn-at-startup "moonarch-waybar"
|
|
spawn-at-startup "swaync"
|
|
spawn-at-startup "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
|
|
spawn-at-startup "nm-applet" "--indicator"
|
|
spawn-sh-at-startup "waypaper --restore"
|
|
// spawn-sh-at-startup "nemo . &> /dev/null &"
|
|
spawn-sh-at-startup "foot --server"
|
|
spawn-at-startup "wlsunset" "-T" "6500" "-t" "5000" "-S" "00:00" "-s" "00:01"
|
|
// Clipboard history managed by cliphist.service (systemd user service)
|
|
|
|
hotkey-overlay {
|
|
hide-not-bound
|
|
}
|
|
|
|
prefer-no-csd
|
|
|
|
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
|
|
|
animations {
|
|
on
|
|
}
|
|
|
|
window-rule {
|
|
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
|
default-column-width {}
|
|
}
|
|
|
|
window-rule {
|
|
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
|
open-floating true
|
|
}
|
|
|
|
window-rule {
|
|
match app-id=r#"waterfox$"# title="^Picture-in-Picture$"
|
|
open-floating true
|
|
}
|
|
|
|
window-rule {
|
|
geometry-corner-radius 4
|
|
clip-to-geometry true
|
|
}
|
|
|
|
binds {
|
|
Mod+Shift+Slash { show-hotkey-overlay; }
|
|
|
|
Super+C hotkey-overlay-title=null { spawn "walker" "-s" "clipboard"; }
|
|
|
|
Alt+W { spawn-sh "killall waybar && moonarch-waybar &"; }
|
|
|
|
Super+E { spawn-sh "xdg-open ~"; }
|
|
|
|
|
|
Super+N { spawn-sh "moonarch-vpn"; }
|
|
|
|
Mod+Return hotkey-overlay-title="Open a Terminal: foot" { spawn "foot"; }
|
|
Mod+Space hotkey-overlay-title="Run an Application: walker" { spawn "walker"; }
|
|
Mod+Escape hotkey-overlay-title="Session Menu: moonset" { spawn "moonset"; }
|
|
|
|
Mod+A { spawn "walker" "-s" "audio"; }
|
|
|
|
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
|
|
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
|
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"; }
|
|
|
|
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
|
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
|
|
|
Mod+O repeat=false { toggle-overview; }
|
|
Mod+Tab repeat=false { toggle-overview; }
|
|
|
|
Mod+Q repeat=false { close-window; }
|
|
|
|
Mod+Left { focus-column-left; }
|
|
Mod+Down { focus-window-down; }
|
|
Mod+Up { focus-window-up; }
|
|
Mod+Right { focus-column-right; }
|
|
Mod+H { focus-column-left; }
|
|
Mod+J { focus-window-down; }
|
|
Mod+K { focus-window-up; }
|
|
Mod+L { focus-column-right; }
|
|
|
|
Mod+Ctrl+Left { move-column-left; }
|
|
Mod+Ctrl+Down { move-window-down; }
|
|
Mod+Ctrl+Up { move-window-up; }
|
|
Mod+Ctrl+Right { move-column-right; }
|
|
Mod+Ctrl+H { move-column-left; }
|
|
Mod+Ctrl+J { move-window-down; }
|
|
Mod+Ctrl+K { move-window-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+Left { focus-monitor-left; }
|
|
Mod+Shift+Down { focus-monitor-down; }
|
|
Mod+Shift+Up { focus-monitor-up; }
|
|
Mod+Shift+Right { focus-monitor-right; }
|
|
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+Left { move-column-to-monitor-left; }
|
|
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
|
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
|
Mod+Shift+Ctrl+Right { move-column-to-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; }
|
|
|
|
Mod+Page_Down { focus-workspace-down; }
|
|
Mod+Page_Up { focus-workspace-up; }
|
|
Mod+U { focus-workspace-down; }
|
|
Mod+I { 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 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+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+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%"; }
|
|
|
|
Mod+V { toggle-window-floating; }
|
|
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
|
|
|
Mod+W { toggle-column-tabbed-display; }
|
|
|
|
Print { screenshot; }
|
|
Ctrl+Print { screenshot-screen; }
|
|
Alt+Print { screenshot-window; }
|
|
|
|
Super+Alt+L allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
|
|
|
Mod+Shift+E { quit; }
|
|
Ctrl+Alt+Delete { quit; }
|
|
|
|
Mod+Shift+P { power-off-monitors; }
|
|
}
|