fix(gtk): scope the #98 button-label pin to dialogs — it was repainting the bar
All checks were successful
Check / eval (push) Successful in 4m26s

The bare `button, button label` selectors in the #98 safety net load
into every GTK3 process, including Waybar, and a rule matching the label
node outranks the color waybar.css inherits onto `#workspaces button` —
so workspace digits always rendered the gtk.css text color captured at
bar start, never the theme's @muted dots / @base-on-accent active pill
(the pair check-theme-contrast.py gates). With the bar never restarting
on switch (previous commit) the pin also went stale: all three 2026-07-18
screenshots carried kiln-clay's @text #39302A across three dark themes.
Scoped the enabled+disabled pins to the dialog selectors #98 actually
targeted; forcing adw-gtk3-dark remains the primary #98 fix, and the
sheet's own bare `label` rule sets only caret-color, so inheritance
carries the bar colors again.

Verified live on Newton (V3-grade): under the scoped gtk.css, boreal
renders the designed digits — @base #21272F on the @accent pill, @muted
#5E6A78 inactives — pixel-sampled from a bar spawned on a headless
output. V1: HM generation builds; bare selectors absent from the built
gtk.css, dialog-scoped ones present. Journal, hardware-queue (deploy
round-trip) and ROADMAP follow-up ride along.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-19 11:04:49 +01:00
parent 76941c55b7
commit 3abeccf071
4 changed files with 50 additions and 3 deletions

View File

@@ -616,6 +616,15 @@ Everything else below stays open; order is convenience, not a gate.
Acer's own fontconfig/DPI resolving `ch` the same way — try it under a
**JetBrainsMono 14 theme** (summer-day/night, kanagawa), the widest case.
- [ ] **Theme-switch bar round-trip (2026-07-19 waybar-poke + gtk-pin fix)**
after `nomarchy-pull` + `nomarchy-home`, switch dark → light → dark
(e.g. boreal → kiln-clay → kiln). Pass = the bar visibly restarts on
each switch and the workspace digits land per theme (dark-on-accent
active pill, dimmed inactives on dark themes) with no color carried
over from the previous theme; then start/stop a screen recording and
toggle airplane mode — the supervisor must survive both pokes
(`pgrep -lx nomarchy-waybar` still lists it).
## Latitude 5310 / 5410 only
- [ ] **v1 QA batch on-hardware pass** (583708d batch was QEMU-verified) —
general smoke before the next `main → v1` promotion (broader than

View File

@@ -19,6 +19,26 @@ Template:
---
## 2026-07-19 — stale workspace-digit colors after theme switch (prev commit + this)
- **Task:** Bernardo live: bar digit colors wrong for boreal /
executive-slate / kiln after switching; a reboot "fixed" it.
- **Did:** Root-caused on Newton. (1) Every bar poke used `pkill -x
waybar`, but the nixpkgs wrap renamed the comm `.waybar-wrapped` —
switches never restarted/reloaded the bar (and unanchored RTMIN pokes
were killing the supervisor). (2) Stylix's #98 bare `button label` pin
outranks the colors waybar.css inherits onto `#workspaces button`,
frozen at bar start — all three screenshots' digits were kiln-clay's
@text. Fixed the pattern in 7 sites; scoped the #98 pin to dialogs.
- **Verified:** V0 flake check + py_compile; V1 HM generation + system
toplevel; live on Newton (V3-grade): restart via the new pattern,
RTMIN poke with the supervisor surviving, pixel-verified boreal digits
(@base-on-accent active, @muted inactive) under the scoped gtk.css.
- **Pending:** HARDWARE-QUEUE: deploy round-trip after nomarchy-home.
NB: waybar 0.15.0 `reload_style_on_change` is inert with HM symlinks
(upstream); harmless now that the restart path works.
- **Next suggestion:** close the queue entry once Bernardo's deploy
round-trip passes.
## 2026-07-17 — #143 closed via upstream's own knob; executive-slate gets the icon grid (f899b19 + this)
- **Task:** Bernardo live: rofi#2317 got a maintainer reply → adopt; plus
"make executive-slate's app menu the boreal-style icon grid".

View File

@@ -1947,6 +1947,12 @@ Design/decision records and a running log of shipped work (items marked
unsupervised/custom bars; `reload_style_on_change` stays for manual
`home-update` restyles. VM-verified on the headless software-GL
desktop: SIGKILL → new pid; clean kill → respawn; SIGUSR2 → alive.
**Follow-up (2026-07-19):** a later waybar package wrap renamed the
comm to `.waybar-wrapped`, silently no-oping every `pkill -x waybar`
(switches stopped touching the bar → the stale workspace-digit-color
bug), while the *unanchored* RTMIN pokes substring-matched the
supervisor's `nomarchy-waybar` comm and killed it. All pokes now use
`-x 'waybar|\.waybar-wrapped'`.
- ✓ **`sys-rebuild`** (Latitude QA request): the no-update twin of
`sys-update` — snapshot-first system rebuild against the *current*
lock, for config-only changes; `home-update` was already lock-free.

View File

@@ -128,8 +128,18 @@ in
color: #${base16.base00};
}
/* Dialog / message-box action buttons (#98). */
button, button label,
/* Dialog / message-box action buttons (#98) dialog-scoped
ONLY, never a bare `button` / `button label`. This file is
loaded by every GTK3 process including Waybar, and a direct
`button label` rule beats the color waybar.css puts on
`#workspaces button` (a rule matching the label node always
outranks color inherited from the button), so the old bare
pin painted the workspace digits with whatever palette was
live when the bar process started the 2026-07-19
stale-digit bug: switch themes, digits keep the previous
gtk.css color until the bar restarts. The real #98 fix is
forcing adw-gtk3-dark (below); these pins are only the
dialog safety net for a light sheet slipping in. */
.dialog-action-area button,
.dialog-action-area button label,
messagedialog button,
@@ -138,7 +148,9 @@ in
.message-dialog button label {
color: #${base16.base05};
}
button:disabled, button:disabled label {
.dialog-action-area button:disabled, .dialog-action-area button:disabled label,
messagedialog button:disabled, messagedialog button:disabled label,
.message-dialog button:disabled, .message-dialog button:disabled label {
color: alpha(#${base16.base05}, 0.5);
}
/* Accent buttons: the palette's base as the label, on a chip