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

@@ -155,6 +155,17 @@
touch $out
'';
# Whole-swap waybar.css is read raw (no palette prepend) — every
# @color it references must be @define-color'd in the same file
# (neon-glass shipped zero defines; BACKLOG #62). Also gate
# preview.png + non-empty backgrounds/ per preset.
theme-wholeswap = pkgs.runCommand "nomarchy-theme-wholeswap"
{ nativeBuildInputs = [ pkgs.python3 ]; }
''
python3 ${./tools/check-theme-wholeswap.py} ${./themes}
touch $out
'';
# The README option tables must track the live `nomarchy.*`
# surface. The surface is walked at eval time from the four
# option-declaring modules (their lazy `config` halves stay