feat(branding): ISO boot splash from the vendored Nomarchy logo
Vendor the vector logo from the legacy branch (modules/nixos/branding/logo.svg) and use it for the live ISO's isolinux splash: rsvg-convert renders it, recolored to the palette accent and centred on the theme base (from theme-state.json) at build time, wired via isoImage.splashImage in hosts/live.nix. Verified the generated PNG by building it in the sandbox. UEFI/GRUB still uses the stock theme (grubTheme needs a full theme dir — left on the roadmap), as does the distroId switch. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -273,7 +273,10 @@
|
||||
"Bash(nix-instantiate --parse modules/nixos/plymouth.nix)",
|
||||
"Bash(echo \"parse OK\")",
|
||||
"Bash(echo \"=== build the plymouth theme derivation directly ===\")",
|
||||
"Bash(nix-instantiate --parse modules/nixos/default.nix)"
|
||||
"Bash(nix-instantiate --parse modules/nixos/default.nix)",
|
||||
"Bash(cp /nix/store/f18ij42lmpg07fn1m29aplayakx7kqpz-splash-test.png/* preview-splash-built.png)",
|
||||
"Bash(cp /nix/store/f18ij42lmpg07fn1m29aplayakx7kqpz-splash-test.png preview-splash-built.png)",
|
||||
"Bash(nix-instantiate --parse hosts/live.nix)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -318,8 +318,11 @@ close · `SUPER+1..9` workspaces · `Print` region screenshot.
|
||||
(os-release `PRETTY_NAME`, systemd-boot entries, ISO menu label).
|
||||
✓ tuigreet greeting (`Welcome to <distroName>`) and a branded `users.motd`
|
||||
(doubling as a helper cheat sheet), both keyed off `distroName`.
|
||||
Remaining: `isoImage.splashImage`/`grubTheme` art for the ISO boot
|
||||
screen (needs a designed asset), and the `distroId` question (it changes
|
||||
✓ `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)
|
||||
- **Theme-switch feedback:** ✓ the "rebuilding…" notification is now
|
||||
|
||||
@@ -3,11 +3,27 @@
|
||||
# exists to test the distro end-to-end on real hardware.
|
||||
{ lib, pkgs, username, nomarchySrc, ... }:
|
||||
|
||||
let
|
||||
# ISO boot splash: the Nomarchy monogram recolored to the palette accent,
|
||||
# centred on the theme base. Built from the vendored vector logo and the
|
||||
# live theme-state.json (tokyo-night by default). Shows on the isolinux
|
||||
# (BIOS) boot menu; UEFI/GRUB still uses the stock theme (see roadmap).
|
||||
state = builtins.fromJSON (builtins.readFile ../theme-state.json);
|
||||
isoColor = key: fallback: lib.removePrefix "#" ((state.colors or { }).${key} or fallback);
|
||||
isoSplash = pkgs.runCommand "nomarchy-iso-splash.png"
|
||||
{ nativeBuildInputs = [ pkgs.imagemagick pkgs.librsvg ]; } ''
|
||||
rsvg-convert -h 320 ${../modules/nixos/branding/logo.svg} > logo.png
|
||||
magick logo.png -fill "#${isoColor "accent" "7aa2f7"}" -colorize 100 logo-c.png
|
||||
magick -size 1920x1080 xc:"#${isoColor "base" "1a1b26"}" \
|
||||
logo-c.png -gravity center -composite $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
networking.hostName = "nomarchy-live";
|
||||
|
||||
isoImage.volumeID = lib.mkForce "NOMARCHY_LIVE";
|
||||
isoImage.edition = lib.mkForce "live";
|
||||
isoImage.splashImage = isoSplash;
|
||||
|
||||
# The minimal-CD profile slims the image for a CONSOLE installer; this
|
||||
# ISO is the desktop, so re-enable what it strips. Above all
|
||||
|
||||
64
modules/nixos/branding/logo.svg
Normal file
64
modules/nixos/branding/logo.svg
Normal file
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="157.40488mm"
|
||||
height="162.48518mm"
|
||||
viewBox="0 0 157.40488 162.48518"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="icon.svg"
|
||||
inkscape:export-filename="logo.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.82803284"
|
||||
inkscape:cx="216.175"
|
||||
inkscape:cy="452.27675"
|
||||
inkscape:window-width="1914"
|
||||
inkscape:window-height="1012"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="layer1"><inkscape:page
|
||||
x="0"
|
||||
y="-1.1741086e-21"
|
||||
width="157.40488"
|
||||
height="162.48518"
|
||||
id="page2"
|
||||
margin="0"
|
||||
bleed="0" /></sodipodi:namedview><defs
|
||||
id="defs1" /><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-28.332214,-25.599269)"><g
|
||||
id="g4"
|
||||
transform="translate(3.1953242,-22.686801)"
|
||||
style="fill:#000088;fill-opacity:1"><path
|
||||
style="fill:#000088;fill-opacity:1;stroke-width:0.264583"
|
||||
d="M 25.136891,85.823024 25.557592,210.77125 88.452409,174.38061 67.417351,160.49747 57.110174,166.38729 V 105.80633 Z"
|
||||
id="path1" /><path
|
||||
style="fill:#000088;fill-opacity:1;stroke-width:0.264583"
|
||||
d="M 67.728991,112.41131 182.54178,185.60757 153.16137,202.85259 67.830432,148.17947 Z"
|
||||
id="path2" /><path
|
||||
style="fill:#000088;fill-opacity:1;stroke-width:0.264583"
|
||||
d="M 139.74857,145.88014 140.00405,110.4959 54.800856,56.333749 25.675926,73.32329 Z"
|
||||
id="path3" /><path
|
||||
style="fill:#000088;fill-opacity:1;stroke-width:0.264583"
|
||||
d="M 182.2863,172.70573 V 48.286069 l -62.59305,36.406166 20.82177,13.668277 10.21927,-5.74834 0.12774,60.165978 z"
|
||||
id="path4" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
Reference in New Issue
Block a user