fix(gtk): tray-menu arrows via USER-priority counter-rule; show menu icons
Some checks failed
Check / eval (push) Failing after 1m26s

Two corrections to ac7e6bd, which broke the bar it meant to spare:

1. Scoping the waybar '*' reset to 'window#waybar *' gave every reset
   property id-level specificity, so it started BEATING the later
   class rules (Boreal's pill border-radius/borders, workspace pills)
   that plain '*' correctly lost to — visibly wrecking the bar.
   Reverted all three stylesheets to the plain '*' block (bar restored
   byte-identical to pre-ac7e6bd) and instead restored the arrow where
   priority genuinely outranks waybar's stylesheet: stylix's gtk.css
   loads at USER priority (800) vs waybar's APPLICATION (600), so a
   'menu menuitem arrow { min-width/height: 16px }' there survives the
   reset in Waybar-hosted menus — the exact mechanism the neighbouring
   check/radio rule already uses for the same collapse. NB comments at
   each '*' block warn against re-scoping.

2. The 'missing icons' were never just arrows: GTK3 ships
   gtk-menu-images=false since 3.10, so image menu items (nm-applet's
   Wi-Fi list, udiskie) render iconless everywhere. Set
   gtk.gtk3.extraConfig.gtk-menu-images = 1 (merges into the
   settings.ini Stylix already writes).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-12 08:01:01 +01:00
parent 4cdc80c9bc
commit e8658fea5f
4 changed files with 35 additions and 33 deletions

View File

@@ -70,9 +70,17 @@ in
}
/* Submenu disclosure arrows need no icon remap: pan-end-symbolic
resolves via Papirus-Dark's breeze-dark inheritance. The
"invisible arrow" bug was Waybar's stylesheet leaking
min-height:0 into the tray menus it hosts fixed by scoping
the `*` block in every waybar.css to window#waybar. */
"invisible arrow" bug is Waybar's process-wide stylesheet:
its `* { min-height: 0; }` reset also hits the SNI tray menus
Waybar hosts and collapses the arrow node. This file loads at
USER priority (~/.config/gtk-3.0/gtk.css), which outranks any
waybar.css (APPLICATION priority) restore the arrow's box
here, exactly like the check/radio rule below already does
for the same collapse. */
menu menuitem arrow, .menu menuitem arrow, .context-menu menuitem arrow {
min-width: 16px;
min-height: 16px;
}
check, radio {
min-width: 14px;
min-height: 14px;
@@ -134,6 +142,13 @@ in
};
};
# GTK3 hides menu-item icons by default (gtk-menu-images was flipped
# off upstream in 3.10). Classic tray menus — nm-applet's Wi-Fi list,
# udiskie — are built as image menu items, so without this their icons
# silently vanish. Stylix drives the HM gtk module, so extraConfig
# merges into the same settings.ini it already writes.
gtk.gtk3.extraConfig."gtk-menu-images" = 1;
# GTK4/libadwaita and Qt6 apps decide dark vs light from the XDG
# portal's color-scheme (org.freedesktop.appearance), which
# xdg-desktop-portal-gtk sources from this gsettings key. Stylix sets