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:
@@ -13,7 +13,12 @@ Old format (per theme directory):
|
||||
|
||||
Output, per theme:
|
||||
<slug>.json the palette (Nomarchy theme schema)
|
||||
<slug>/backgrounds/ wallpapers, copied verbatim
|
||||
<slug>/backgrounds/ wallpapers, copied verbatim — NOTE: this repo's
|
||||
own themes/ no longer carries backgrounds/ (moved
|
||||
to the Nomarchy-Wallpapers repo, ROADMAP § "Faster
|
||||
switches"); if <output-themes-dir> is this repo's
|
||||
themes/, move the copied backgrounds/ over there
|
||||
instead of committing them here
|
||||
<slug>/btop.theme copied from apps/ when present
|
||||
|
||||
Hierarchy vs ANSI (#70):
|
||||
@@ -166,12 +171,16 @@ def main() -> None:
|
||||
slug = theme["slug"]
|
||||
(out / f"{slug}.json").write_text(json.dumps(theme, indent=2) + "\n")
|
||||
|
||||
# Assets: wallpapers and hand-made per-app theme files.
|
||||
# Assets: wallpapers and hand-made per-app theme files. Wallpapers
|
||||
# land in <out>/<slug>/backgrounds/ here for convenience, but if
|
||||
# <out> is this repo's themes/, move them to the Nomarchy-Wallpapers
|
||||
# repo instead of committing them (ROADMAP § "Faster switches") —
|
||||
# this repo's themes/*/backgrounds/ was removed on purpose.
|
||||
extras = []
|
||||
if (theme_dir / "backgrounds").is_dir():
|
||||
shutil.copytree(theme_dir / "backgrounds", out / slug / "backgrounds",
|
||||
dirs_exist_ok=True)
|
||||
extras.append(f"{len(list((theme_dir / 'backgrounds').iterdir()))} wallpapers")
|
||||
extras.append(f"{len(list((theme_dir / 'backgrounds').iterdir()))} wallpapers — move to Nomarchy-Wallpapers")
|
||||
if (theme_dir / "apps" / "btop.theme").is_file():
|
||||
(out / slug).mkdir(parents=True, exist_ok=True)
|
||||
shutil.copyfile(theme_dir / "apps" / "btop.theme", out / slug / "btop.theme")
|
||||
|
||||
Reference in New Issue
Block a user