feat(theme): make Boreal the distro default
Some checks failed
Check / eval (push) Has been cancelled

Seed theme-state.json and the downstream template from themes/boreal.json
(including border + empty settings). Point eval/schema fallbacks at Boreal
(theme.nix preset, plymouth and live-ISO splash colors, theme-shot, sync
error examples). Docs/TESTING and RECOVERY follow the new default.

Verified: state matches boreal palette; theme-contrast all pass.
preview.png for boreal still missing (picker plain-name; V3 capture).
This commit is contained in:
Bernardo Magri
2026-07-09 09:57:32 +01:00
parent 70501b566a
commit 351b7adb8e
13 changed files with 122 additions and 113 deletions

View File

@@ -22,10 +22,10 @@ let
# Defaults guarantee evaluation succeeds on a sparse or older state
# file (e.g. one written before a schema field was added). The shipped
# Tokyo Night preset provides the color/ansi fallbacks; the path is
# Boreal preset provides the color/ansi fallbacks; the path is
# relative to this module, so it resolves inside Nomarchy's own flake
# source even when consumed downstream.
preset = builtins.fromJSON (builtins.readFile ../../themes/tokyo-night.json);
preset = builtins.fromJSON (builtins.readFile ../../themes/boreal.json);
defaults = preset // {
fonts = {
@@ -132,7 +132,7 @@ let
${toString cfg.stateFile} is a snapshot of it). The tool prints
the same report with per-field fixes: `nomarchy-theme-sync
validate`. Re-applying any preset resets all appearance fields:
`nomarchy-theme-sync apply tokyo-night`.'';
`nomarchy-theme-sync apply boreal`.'';
# A border value is a palette key (look it up in colors) unless it's
# already a literal hex; unknown keys fall through to the raw string.

View File

@@ -33,7 +33,7 @@
description = ''
theme-state.json for the system-side consumers (currently the
Plymouth splash background). lib.mkFlake wires it automatically
from your flake; null falls back to the Tokyo Night base color.
from your flake; null falls back to the Boreal base color.
'';
};

View File

@@ -15,14 +15,15 @@ let
then builtins.fromJSON (builtins.readFile cfg.stateFile)
else { };
colorOf = key: fallback: lib.removePrefix "#" ((state.colors or { }).${key} or fallback);
base = colorOf "base" "#1a1b26";
# Fallbacks match the distro default theme (Boreal) when stateFile is null.
base = colorOf "base" "#21272F";
# Splash elements are recolored from the palette so they read on any
# base, light or dark: foreground glyphs → text, field/track boxes →
# surface (raised from base in both polarities), the progress fill →
# accent. The shipped art is a fixed navy that vanished on dark themes.
text = colorOf "text" "#a9b1d6";
surface = colorOf "surface" "#32344a";
accent = colorOf "accent" "#7aa2f7";
text = colorOf "text" "#D3DAE0";
surface = colorOf "surface" "#303A46";
accent = colorOf "accent" "#B79BE8";
magick = lib.getExe' pkgs.imagemagick "magick";
# Plymouth's Window.SetBackgroundTopColor takes three floats in