feat(themes): #62 whole-swap CSS self-containment CI gate
Some checks failed
Check / eval (push) Has been cancelled

Add tools/check-theme-wholeswap.py and checks.theme-wholeswap: every
themes/*/waybar.css must @define-color each @name it references (raw
readFile, no palette prepend — neon-glass class), and every preset needs
preview.png + non-empty backgrounds/. README: four waybar.css themes
(drop quarantined neon-glass). Close #62.

Verified: V0 (script + negative fixture + checks.theme-wholeswap + flake check --no-build).
This commit is contained in:
Bernardo Magri
2026-07-10 08:29:30 +01:00
parent 11d6a3df0f
commit f09042adbe
5 changed files with 136 additions and 9 deletions

View File

@@ -113,12 +113,6 @@ gating. Fix: name-agnostic scan aligned with battery-notify. Cost:
small multi-file; `[blocked:hw]` only to confirm on non-BAT* hardware —
logic still ships at V1.
### 62. Optional CI: whole-swap CSS self-containment
Contrast check does not require that a `waybar.css` defines every
`@color` it references, nor that every preset has preview + backgrounds.
A cheap gate would have caught neon-glass. Cost: small tool + flake
check; V0.
### 63. Generated Waybar: identity-bar affordances (powermenu + logo)
Whole-swap bars ship `custom/powermenu` and a left logo → main menu; the
generated `waybar.nix` bar has neither. Optional parity add for
@@ -238,7 +232,7 @@ _(Generated Waybar missing identity-bar affordances → **#63**.)_
executive-slate, and the generated style have. Functional OK;
visual hierarchy weak. Cost: CSS pass; V3.
_(Optional CI: whole-swap CSS self-containment → **#62**.)_
_(Optional CI: whole-swap CSS self-containment → **#62** ✓ 2026-07-10.)_
### Per-theme design audit (2026-07-09)

View File

@@ -17,6 +17,17 @@ Template:
---
## 2026-07-10 — #62 whole-swap CSS self-containment CI gate
- **Task:** NEXT #62 — cheap gate that waybar.css defines every @color it
references (would have caught neon-glass) + preview/backgrounds present.
- **Did:** `tools/check-theme-wholeswap.py` + `checks.theme-wholeswap` in
flake.nix. README: five themes → four (drop quarantined neon-glass).
Closed #62.
- **Verified:** **V0** — script OK on themes/ (24 presets, 4 whole-swaps);
negative fixture with `@text`/`@base` and zero defines fails as expected;
`nix build .#checks.x86_64-linux.theme-wholeswap` green.
- **Next suggestion:** #59 NVIDIA install comments, or #60 BAT*-agnostic.
## 2026-07-10 — #61 Review Source line tracks offline/online
- **Task:** NEXT #61 — Review panel Source must match the cache.nixos.org
probe (`OFFLINE`), not always claim “no network needed”.