max / alloy
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
1 file changed,
+3 insertions,
-1 deletion
| @@ -449,7 +449,9 @@ | |||
| 449 | 449 | ||
| 450 | 450 | **greetd + tuigreet.** Rust, minimal, ratatui-rendered. greetd is the daemon that owns VT1; tuigreet is the ratatui client that prompts for user/password and execs [`alloy-session`](../usr/bin/alloy-session) on successful auth, which applies the chosen day/night skeleton and execs `sway`. Config at [`etc/greetd/`](../etc/greetd/): `/etc/greetd/config.toml` sets up VT1 with tuigreet and a `--theme` written in ANSI color names. | |
| 451 | 451 | ||
| 452 | - | **The palette reaches it through the console, not through `--theme`.** tuigreet 0.9.1 parses only the sixteen ANSI names; a hex value is ignored rather than rejected, and the affected element falls back to a default, so `prompt=#8a4530` renders red. This doc claimed an Akari greeter for a while on the strength of a `--theme` that could not deliver one. What delivers it is [`usr/lib/bootc/kargs.d/10-alloy.toml`](../templates/usr/lib/bootc/kargs.d/10-alloy.toml.in), which sets the Linux console's 16-color table via `vt.default_red/grn/blu`. tuigreet then asks for `gray` and gets `surface.raised`. The same substitution themes every VT, including the debug shell and any getty, and it costs one boot-time kernel argument rather than a patch to tuigreet. | |
| 452 | + | **The palette reaches it through the console, not through `--theme`.** tuigreet 0.9.1 parses only the sixteen ANSI names; a hex value is ignored rather than rejected, and the affected element falls back to a default, so `prompt=#8a4530` renders red. This doc claimed an Akari greeter for a while on the strength of a `--theme` that could not deliver one. What delivers it is the console's own 16-color table, applied twice from one source. [`usr/lib/bootc/kargs.d/10-alloy.toml`](../templates/usr/lib/bootc/kargs.d/10-alloy.toml.in) sets it via `vt.default_red/grn/blu` before userspace starts, and [`alloy-vtrgb.service`](../etc/systemd/system/alloy-vtrgb.service) runs `setvtrgb /usr/share/alloy/vtrgb` after, ordered `Before=greetd.service getty.target`. Both render from the theme through skelgen, so the two cannot drift; they used to be maintained by hand and had. tuigreet then asks for `gray` and gets `surface.raised`. The same substitution themes every VT, including the debug shell and any getty, and it costs a boot-time kernel argument plus a oneshot unit rather than a patch to tuigreet. | |
| 453 | + | ||
| 454 | + | **The console has no night table yet, only a night file.** skelgen renders `vtrgb.night` beside `vtrgb` and the image asserts both are present, but nothing reads it: `alloy-vtrgb.service` names the day table outright, and the kargs template has no `variants` directive at all, so the kernel only ever carries Akari Dawn. The per-user mode file cannot decide this, because the unit runs before any user exists and the kernel argument is fixed at build time. Choosing between the two tables needs a system-scoped setting that does not exist. Until it does, boot and login are Dawn whatever the session that follows is. | |
| 453 | 455 | ||
| 454 | 456 | **Which name lands on which slot is the whole design.** tuigreet hands each `--theme` value to ratatui's `Color::from_str`, so the names carry ratatui's numbering: `gray` is slot 7 and `white` is slot 15, not the other way around. Only the login card gets a background (`container`); the clock and the status line are drawn onto the console, whose background is slot 0. Elements outside the card therefore have to name a light tone and elements inside it a dark one, which the string in `config.toml` now does and did not before. | |
| 455 | 457 |