996f11d333
snixembed registered as the StatusNotifierWatcher but its RegisterStatusNotifierItem implementation didn't accept SNI publishers — Telegram, Vesktop, blueman-tray, and a libayatana-appindicator test script all failed to register, leaving waybar's tray empty. Removing snixembed lets waybar's tray module register itself as both host AND watcher (when no other watcher exists). After this change, all three SNI items registered immediately. Trade-off: legacy XEmbed-based Wine tray icons no longer bridge to SNI. The Wine System Tray host window rule is kept (still hides the empty window off-screen) and the comment updated. - niri/config.kdl: drop snixembed spawn-at-startup; update Wine rule - packages.txt: drop snixembed (no longer used) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
159 lines
4.2 KiB
KDL
159 lines
4.2 KiB
KDL
layout {
|
|
gaps 0
|
|
|
|
border {
|
|
off
|
|
}
|
|
|
|
focus-ring {
|
|
off
|
|
}
|
|
}
|
|
|
|
input {
|
|
keyboard {
|
|
xkb {
|
|
layout "us"
|
|
}
|
|
}
|
|
|
|
touchpad {
|
|
tap
|
|
natural-scroll
|
|
accel-speed 0.2
|
|
accel-profile "adaptive"
|
|
scroll-method "two-finger"
|
|
disabled-on-external-mouse
|
|
}
|
|
|
|
mouse {
|
|
accel-profile "flat"
|
|
}
|
|
}
|
|
|
|
environment {
|
|
XDG_CURRENT_DESKTOP "niri:GNOME"
|
|
}
|
|
|
|
spawn-at-startup "sh" "-c" "systemctl --user import-environment XDG_CURRENT_DESKTOP && dbus-update-activation-environment XDG_CURRENT_DESKTOP"
|
|
spawn-at-startup "waybar"
|
|
spawn-at-startup "mako"
|
|
spawn-at-startup "awww-daemon"
|
|
spawn-at-startup "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
|
|
spawn-at-startup "swayidle" "-w" "timeout" "300" "niri msg action power-off-monitors" "timeout" "600" "gtklock" "-d" "timeout" "1800" "systemctl suspend-then-hibernate" "before-sleep" "gtklock" "-d"
|
|
spawn-at-startup "wl-paste" "--watch" "cliphist" "store"
|
|
spawn-at-startup "wlsunset" "-l" "49.2" "-L" "-123.1"
|
|
spawn-at-startup "xwayland-satellite"
|
|
|
|
binds {
|
|
Mod+Q repeat=false { close-window; }
|
|
Mod+F { fullscreen-window; }
|
|
Mod+Z { maximize-column; }
|
|
Mod+V { toggle-window-floating; }
|
|
|
|
Mod+Return { spawn "alacritty"; }
|
|
Mod+D { spawn "wofi" "--show" "drun"; }
|
|
Mod+E { spawn "thunar"; }
|
|
Mod+Shift+B { spawn "waybar-restart"; }
|
|
|
|
Mod+H { focus-column-left; }
|
|
Mod+L { focus-column-right; }
|
|
Mod+J { focus-window-down; }
|
|
Mod+K { focus-window-up; }
|
|
|
|
Mod+Shift+H { move-column-left; }
|
|
Mod+Shift+L { move-column-right; }
|
|
Mod+Shift+J { move-window-down; }
|
|
Mod+Shift+K { move-window-up; }
|
|
|
|
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+Shift+1 { move-window-to-workspace 1; }
|
|
Mod+Shift+2 { move-window-to-workspace 2; }
|
|
Mod+Shift+3 { move-window-to-workspace 3; }
|
|
Mod+Shift+4 { move-window-to-workspace 4; }
|
|
Mod+Shift+5 { move-window-to-workspace 5; }
|
|
Mod+Shift+6 { move-window-to-workspace 6; }
|
|
Mod+Shift+7 { move-window-to-workspace 7; }
|
|
Mod+Shift+8 { move-window-to-workspace 8; }
|
|
Mod+Shift+9 { move-window-to-workspace 9; }
|
|
|
|
Mod+Print { spawn "screenshot"; }
|
|
|
|
Mod+M { move-window-to-workspace "minimized"; }
|
|
Mod+Shift+M { focus-workspace "minimized"; }
|
|
|
|
Mod+Shift+E { spawn "gtklock" "-d"; }
|
|
Mod+Shift+P { spawn "powermenu"; }
|
|
Mod+Shift+C { spawn "clipboard-picker"; }
|
|
Mod+Shift+X { quit; }
|
|
|
|
XF86AudioRaiseVolume allow-when-locked=true { spawn "volume" "up"; }
|
|
XF86AudioLowerVolume allow-when-locked=true { spawn "volume" "down"; }
|
|
XF86AudioMute allow-when-locked=true { spawn "volume" "mute"; }
|
|
|
|
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "set" "+10%"; }
|
|
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "set" "10%-"; }
|
|
}
|
|
|
|
// ── Window Rules ─────────────────────────────────────────────────────────────
|
|
|
|
// Fullscreen games: no border, open fullscreen, enable VRR
|
|
window-rule {
|
|
match app-id="steam_app_"
|
|
open-fullscreen true
|
|
border {
|
|
off
|
|
}
|
|
focus-ring {
|
|
off
|
|
}
|
|
variable-refresh-rate true
|
|
}
|
|
|
|
// Generic fullscreen request (any app asking to go fullscreen)
|
|
window-rule {
|
|
match is-focused=true
|
|
variable-refresh-rate true
|
|
}
|
|
|
|
// Wine System Tray: hide the empty host window off-screen
|
|
window-rule {
|
|
match app-id="^explorer.exe$"
|
|
match title="^Wine System Tray$"
|
|
open-floating true
|
|
default-floating-position x=-9999 y=-9999
|
|
}
|
|
|
|
// Bolt Launcher
|
|
window-rule {
|
|
match app-id="^bolt-launcher$"
|
|
open-floating true
|
|
}
|
|
|
|
// RuneLite
|
|
window-rule {
|
|
match app-id="^(net-runelite-client-RuneLite|runelite|RuneLite)$"
|
|
open-floating true
|
|
border {
|
|
off
|
|
}
|
|
focus-ring {
|
|
off
|
|
}
|
|
}
|
|
|
|
// Thunar file-operation progress dialog
|
|
window-rule {
|
|
match app-id="^thunar$" title="^File Operation Progress$"
|
|
open-floating true
|
|
}
|