Compare commits

...

4 Commits

Author SHA1 Message Date
funman300 996f11d333 drop snixembed: waybar provides its own SNI watcher
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>
2026-05-13 14:10:44 -07:00
funman300 be1fa77c6e niri: propagate XDG_CURRENT_DESKTOP to systemd-user and dbus
The niri 'environment' block only affects processes niri spawns
directly. Apps launched via dbus activation or systemd-user (most
.desktop launches go through one of these) get systemd-user's env,
which still has bare 'niri' — set by niri-session BEFORE niri itself
runs.

Adding a one-shot spawn-at-startup that re-imports XDG_CURRENT_DESKTOP
from niri's env into both systemd-user and dbus-activation, after
niri starts. Future dbus-activated apps will see niri:GNOME.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:35:23 -07:00
funman300 be1d406b26 niri: set XDG_CURRENT_DESKTOP=niri:GNOME for tray support
Many tray libraries (Electron's, Qt's StatusNotifier) gate icon
creation on a recognised XDG_CURRENT_DESKTOP value. Bare "niri"
makes them silently skip tray creation. Adding ":GNOME" as a
fallback identifier keeps niri primary while letting apps create
their tray icons.

Vesktop and Telegram are confirmed to want tray icons but were
not creating them; this fix unblocks both.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:23:42 -07:00
funman300 4303562324 remove nm-applet and blueman-applet autostart
Both daemons were running but not registering SNI items on niri/Wayland,
leaving the waybar tray slot permanently empty. Network is already
accessible via the waybar network module (left-click → networkmanager_dmenu).
Bluetooth GUI (blueman-manager) is still available on demand; only the
applet is dropped.

Tray module stays configured so Electron apps (Discord/Vesktop, Steam,
etc.) still get a tray slot when they're running.

- niri/config.kdl: drop nm-applet and blueman-applet spawn-at-startup
- packages.txt: drop network-manager-applet (nothing else uses it);
  keep blueman package for blueman-manager GUI

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:19:07 -07:00
2 changed files with 6 additions and 6 deletions
+6 -4
View File
@@ -31,17 +31,19 @@ input {
} }
} }
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 "waybar"
spawn-at-startup "mako" spawn-at-startup "mako"
spawn-at-startup "awww-daemon" spawn-at-startup "awww-daemon"
spawn-at-startup "nm-applet" "--indicator"
spawn-at-startup "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" 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 "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 "wl-paste" "--watch" "cliphist" "store"
spawn-at-startup "blueman-applet"
spawn-at-startup "wlsunset" "-l" "49.2" "-L" "-123.1" spawn-at-startup "wlsunset" "-l" "49.2" "-L" "-123.1"
spawn-at-startup "xwayland-satellite" spawn-at-startup "xwayland-satellite"
spawn-at-startup "snixembed" "--no-startup-id"
binds { binds {
Mod+Q repeat=false { close-window; } Mod+Q repeat=false { close-window; }
@@ -123,7 +125,7 @@ window-rule {
variable-refresh-rate true variable-refresh-rate true
} }
// Wine System Tray: hide the host window, icons bridge to SNI via snixembed // Wine System Tray: hide the empty host window off-screen
window-rule { window-rule {
match app-id="^explorer.exe$" match app-id="^explorer.exe$"
match title="^Wine System Tray$" match title="^Wine System Tray$"
-2
View File
@@ -12,9 +12,7 @@ brightnessctl
pamixer pamixer
gtklock gtklock
swayidle swayidle
snixembed
ttf-jetbrains-mono-nerd ttf-jetbrains-mono-nerd
network-manager-applet
polkit-gnome polkit-gnome
xdg-desktop-portal-wlr xdg-desktop-portal-wlr
thunar thunar