feat(branding): GRUB (UEFI) theme + distroId=nomarchy
Completes the remaining "Distro branding, round 2" work. GRUB theme: hosts/live.nix builds nomarchyGrubTheme whose background is the same composed splash as the isolinux/BIOS splash (accent logo on base), with a palette-coloured boot menu and accent timeout bar. Derived from nixos-grub2-theme only to reuse its bundled DejaVu .pf2; the stock NixOS logo is dropped (ours is in the background). Wired as isoImage.grubTheme so UEFI boot matches BIOS. distroId: set system.nixos.distroId = "nomarchy" so os-release is honest (ID=nomarchy, ID_LIKE=nixos). Safe — switch-to-configuration builds its "is this NixOS?" guard from the configured distroId (and /etc/NIXOS is the fallback), so rebuilds keep working. isNixos→false blanks the nixos.org URLs, so extraOSReleaseArgs restores them to the project. Adds checks.distro-id (runNixOSTest): boots distroId=nomarchy and runs switch-to-configuration dry-activate green; os-release eval-verified from the real downstream config; grub theme built + structure-verified. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -215,10 +215,28 @@ how to override it. Items marked ✓ are shipped.
|
||||
✓ `isoImage.splashImage` — the vendored vector logo
|
||||
(`modules/nixos/branding/logo.svg`, from legacy) recolored to the palette
|
||||
accent on the theme base, built at ISO-build time (`hosts/live.nix`).
|
||||
Remaining: `isoImage.grubTheme` so UEFI boot matches the isolinux splash
|
||||
(needs a full grub theme dir), and the `distroId` question (it changes
|
||||
`DEFAULT_HOSTNAME` and upstream `isNixos` checks — needs a test pass;
|
||||
nixos-* CLI names stay regardless)
|
||||
✓ **`isoImage.grubTheme` (UEFI boot matches BIOS):** `hosts/live.nix` now
|
||||
builds a `nomarchyGrubTheme` dir whose background is the *same* composed
|
||||
splash image as the isolinux splash (accent logo on base), with a
|
||||
palette-coloured boot menu in the lower third (clear of the centred logo)
|
||||
and an accent timeout bar. Derived from `nixos-grub2-theme` only to reuse
|
||||
its bundled DejaVu `.pf2` (grub `loadfont`s every `.pf2` in the dir); the
|
||||
stock NixOS `logo.png` is dropped since ours is in the background. Built +
|
||||
structure-verified (theme.txt palette colours, 1920×1080 background, font
|
||||
present). Remaining: a UEFI ISO-boot render check on hardware (the file
|
||||
wiring is confirmed; the visual is not CI-testable, same as the splash).
|
||||
✓ **`distroId = "nomarchy"`:** os-release is now honest — `ID=nomarchy`,
|
||||
`ID_LIKE=nixos` (the standard derivative-distro lineage marker, cf.
|
||||
Ubuntu→debian), `DEFAULT_HOSTNAME=nomarchy`, lsb `DISTRIB_ID`/`CPE_NAME`
|
||||
follow. **Verified safe:** `switch-to-configuration` builds its "is this
|
||||
NixOS?" guard from the *configured* distroId (and `/etc/NIXOS` remains as
|
||||
the fallback), so rebuilds keep working — a new `checks.distro-id`
|
||||
VM-test boots such a system and runs `switch-to-configuration dry-activate`
|
||||
green; nixos-* CLI tools are package names, untouched. The one side effect
|
||||
(isNixos→false blanks the upstream nixos.org URLs) is handled by
|
||||
`extraOSReleaseArgs` restoring `HOME_URL`/`DOCUMENTATION_URL`/`SUPPORT_URL`/
|
||||
`BUG_REPORT_URL` to the project. os-release output eval-verified from the
|
||||
real downstream config.
|
||||
- ✓ **fastfetch branding:** `modules/home/fastfetch.nix`
|
||||
(`nomarchy.fastfetch.enable`) — the vendored vector logo, recolored to
|
||||
the palette accent and rendered to compact block-art via chafa at build
|
||||
|
||||
Reference in New Issue
Block a user