feat(greeter): tuigreet + console themed from the state JSON (item 16)
Some checks failed
Check / eval (push) Has been cancelled

New modules/nixos/greeter.nix owns the greetd block (moved out of
default.nix) plus the theming, the Plymouth model — baked at SYSTEM
rebuild from nomarchy.system.stateFile. Two parts, because tuigreet
draws on the VT with the 16 ANSI slots: console.colors becomes the
theme's ansi[] (vt.default_* kernel params — which also themes raw
ttys and the LUKS passphrase prompt), and tuigreet gets a --theme of
NAMED slots (its parser is ratatui Color::from_str, checked in source;
the names map to the standard indexes the retinted palette now
serves). A sparse state without ansi skips theming cleanly.

Verified: V0; V1 — the template-system toplevel bakes the full --theme
spec into greetd.toml and all three vt.default_{red,grn,blu} palettes
into kernel-params. A checks.greeter VM test was attempted and dropped
after bisecting: tuigreet dies under runNixOSTest even without the
flag (harness limit; nixpkgs's own greetd test uses agreety) —
recorded in agent/MEMORY.md. Remains: V3 rendering +
theme-follows-rebuild on hardware (HARDWARE-QUEUE).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-05 18:37:32 +01:00
parent 1921839e0e
commit a360bc87ca
6 changed files with 108 additions and 21 deletions

View File

@@ -17,6 +17,26 @@ Template:
---
## 2026-07-05 — greeter theming from the JSON (iteration #30, item 16)
- **Task:** BACKLOG NEXT#16 — tuigreet themed from theme-state.json at
system rebuild (the Plymouth model). Item deleted.
- **Did:** new modules/nixos/greeter.nix owns the greetd block (moved
out of default.nix, one concern one file) + the theming: (1)
console.colors = the theme's ansi[] (mkDefault; lands as
vt.default_* kernel params — also themes raw ttys + LUKS prompt);
(2) tuigreet --theme on NAMED slots (its parser is ratatui
Color::from_str, verified in source; names hit the standard indexes
the retinted VT palette now serves). Sparse state w/o ansi → skips
cleanly.
- **Verified:** V0; V1 — template-system toplevel: baked greetd.toml
carries the full --theme spec, kernel-params carry all three
vt.default_{red,grn,blu}. A checks.greeter VM test was attempted and
DROPPED: tuigreet dies under runNixOSTest even bare (harness limit,
not our flag — bisected; nixpkgs tests use agreety) → MEMORY.md.
- **Pending:** V3 queued (rendering + theme-follows-rebuild).
- **Next suggestion:** #17 launch-or-focus, or the new #28 UI-review
audit slice once Bernardo confirms its placement.
## 2026-07-05 — display profiles auto-switch (iteration #29, item 15b)
- **Task:** BACKLOG NEXT#15 slice b — opt-in hotplug auto-switch.
- **Did:** nomarchy-display-profile gains `match <outputs>` (exact set