feat(themes): wallpapers split — 94 MB of runtime-only images leave the flake source
All checks were successful
Check / eval (push) Successful in 4m1s
All checks were successful
Check / eval (push) Successful in 4m1s
The split line is consumption time: palette JSONs, previews and per-theme overrides are read at Nix eval and stay in-repo (~3 MB); wallpapers are runtime-only (swww via nomarchy-state-sync, never read at eval) and move to the pinned nomarchy-wallpapers non-flake input (git.bemagri.xyz/bernardo/Nomarchy-Wallpapers @ 803b48d, all 24 slugs). New overlay drv nomarchy-default-themes merges the two: repo themes copied, <slug>/backgrounds symlinked from the input, build FAILS if any theme JSON lacks non-empty backgrounds — the drift guard for the two-repo dance. nomarchy-state-sync's wrapper now points straight at the merged store path (no in-package copy): the package drops from ~94 MB to 32.6 KiB and the wallpapers source appears exactly once in any system closure, ISO included — offline promise intact. Downstream custom wallpapers still win ($NOMARCHY_PATH/themes is checked first), and an explicit state.json wallpaper path still works. checks re-pointed at the merged tree (theme-wholeswap, state-sync-validate, auto-theme); theme-contrast and airplane stay on ./themes (JSON/text only). import-palettes.py + README updated; ROADMAP § Faster switches marked shipped; LATER now carries only the pre-built-variants follow-on. Also files #151 (v1 launch plan, [human]) with measured history numbers: the 107 MiB pack is 94 MB wallpaper blobs; all 848 text commits pack to ~15-20 MiB — recommendation recorded to filter-repo at the GitHub move, not fresh-start. Verification: V2 — nix flake check --no-build green; theme-wholeswap, state-sync-validate, auto-theme VM check, downstream-template-home all green; wallpapers store path exactly once in the state-sync closure; `list` works from a scratch state dir. V3 queued: live wallpaper render + bg-next + custom-override precedence after next pull (HARDWARE-QUEUE). Lock gained exactly the one input node. Implementation by a Sonnet subagent; design and review on Fable. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -39,7 +39,7 @@ Flat on purpose. Two module trees, one options file each, no hidden layers.
|
||||
├── themes/ # 24 presets: <slug>.json + optional <slug>/ assets
|
||||
│ ├── nord.json # palette (required, works alone)
|
||||
│ └── nord/ # assets (optional, fixed filenames)
|
||||
│ ├── backgrounds/ # wallpapers (auto-picked, SUPER+SHIFT+T cycles)
|
||||
│ ├── backgrounds/ # wallpapers (pinned nomarchy-wallpapers input, not this repo)
|
||||
│ ├── btop.theme # hand-made config drop (else generated)
|
||||
│ └── waybar.css # whole-swap: replaces the generated bar style
|
||||
├── modules/
|
||||
@@ -434,7 +434,7 @@ per theme — a single place to look, unlike the old distro's split:
|
||||
|
||||
| Asset | Mechanism |
|
||||
|---|---|
|
||||
| `backgrounds/` | wallpapers; empty `wallpaper` in the state means "first one"; `bg next` cycles |
|
||||
| `backgrounds/` | wallpapers; empty `wallpaper` in the state means "first one"; `bg next` cycles. Pinned in a separate `nomarchy-wallpapers` flake input, not this repo (ROADMAP § "Faster switches") — merged in at build time |
|
||||
| `btop.theme` | baked into the generation (generated from the palette when absent) |
|
||||
| `waybar.css` | **whole-swap**: replaces the generated bar style entirely (probed at eval time, self-contained) |
|
||||
| `waybar.jsonc` | whole-swap for the bar *layout* (must be plain JSON) |
|
||||
@@ -443,7 +443,9 @@ per theme — a single place to look, unlike the old distro's split:
|
||||
Four themes ship a `waybar.css` identity (summer-day, summer-night,
|
||||
executive-slate, boreal). Custom user themes can live in
|
||||
`$NOMARCHY_PATH/themes/` (preset lookup) and `nomarchy.themesDir` (eval-time
|
||||
asset probe).
|
||||
asset probe) — including their own `backgrounds/`, which wins over the
|
||||
pinned `nomarchy-wallpapers` input (checked first); an explicit `wallpaper`
|
||||
path in `state.json` works too.
|
||||
|
||||
## 5. Day-to-day
|
||||
|
||||
|
||||
Reference in New Issue
Block a user