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:
@@ -89,12 +89,43 @@ rofi#2317, and take the fix when a release carries it. If it is still open at
|
||||
the next lock bump, that is fine — nothing here rots meanwhile.
|
||||
*Last checked 2026-07-17: open, no maintainer response, no linked PR.*
|
||||
|
||||
### 151. `[human]` v1 launch plan — devise with Bernardo (includes the GitHub move)
|
||||
|
||||
Bernardo, 2026-07-17: before tagging v1, sit down and devise the launch plan.
|
||||
Known ingredients, so that session starts concrete:
|
||||
- **The repo moves to GitHub.** Everything baking the Gitea URL follows: the
|
||||
downstream template's `inputs.nomarchy.url`, the `nomarchy-wallpapers`
|
||||
input URL (baked 2026-07-17 — sweep it in the same move), README/docs
|
||||
links, and CI (eval CI runs on Gitea act_runner — decide GitHub Actions
|
||||
vs keeping Gitea CI on a mirror).
|
||||
- The move is the natural moment for the **history-rewrite decision**, and
|
||||
it is now measured (2026-07-17): the 107 MiB pack is 94.2 MB wallpaper
|
||||
blobs + 9.9 MB preview generations; all 848 commits of *text* pack to
|
||||
~15–20 MiB. So the history is not long-heavy, it is image-heavy.
|
||||
Recommendation on the table: **filter, don't reset** —
|
||||
`git filter-repo` stripping only `themes/*/backgrounds/` keeps every
|
||||
commit's diffs/blame/`log -S` (load-bearing: it diagnosed #147) at a
|
||||
~15–20 MiB clone. Cost: all SHAs change, and ROADMAP/journal cite them —
|
||||
mitigate by freezing the Gitea repo as a read-only archive (old SHAs
|
||||
resolve there; stash filter-repo's commit-map in it) + one ROADMAP note.
|
||||
Argue against a full mirror (ships 94 MB of deleted images to every
|
||||
clone forever) and against fresh-start (burns the archaeology to save
|
||||
~15 MiB).
|
||||
- The existing v1 bar (VISION § v1.0): HARDWARE-QUEUE burn-down, install P0
|
||||
re-verify before the `v1` fast-forward, visual ritual. LICENSE shipped
|
||||
(MIT, 2026-07-17).
|
||||
- Adjacent calls that may fold in: cachix/public binary cache (#120's
|
||||
prerequisite), the netinstall decision itself, release notes/announce.
|
||||
|
||||
`v1` stays human-only throughout — agents prepare evidence and checklists,
|
||||
never the tag or branch.
|
||||
|
||||
## LATER
|
||||
|
||||
- **Wallpapers artifact split** (ROADMAP § Faster switches — decided,
|
||||
deferred): pinned `Nomarchy-wallpapers` input so a state write stops
|
||||
re-copying 86 MB. Follow-on: pre-built theme variants if switches are
|
||||
still slow after.
|
||||
- **Pre-built theme variants** (ROADMAP § Faster switches follow-on): if
|
||||
`home-manager switch` itself is still the theme-switch bottleneck now
|
||||
that the wallpapers split shipped (2026-07-17), pre-build each theme's
|
||||
generation so a switch just activates a cached one. Measure first.
|
||||
- **Installer round 2** (ROADMAP § Installer): multi-disk BTRFS RAID,
|
||||
impermanence, BIOS/legacy boot.
|
||||
- **Boot-from-snapshot**: a systemd-boot equivalent of grub-btrfs.
|
||||
|
||||
@@ -39,6 +39,12 @@ Everything else below stays open; order is convenience, not a gate.
|
||||
toast appears. Same relogin answers #149's question (does the Waybar
|
||||
unit still race Hyprland IPC on a cold relogin without linger?).
|
||||
**Fail:** the panel stays lit inside the shut lid (the #148 symptom).
|
||||
- [ ] **Wallpapers-split live smoke (dev box)** — after the next
|
||||
`nomarchy-pull` + `nomarchy-home`: wallpaper still renders at session
|
||||
start; `SUPER+SHIFT+T` (bg next) cycles; `readlink` of the applied
|
||||
image resolves into the `nomarchy-wallpapers` store path, not the
|
||||
repo. **Pass:** all three. A custom wallpaper dropped in
|
||||
`~/.nomarchy/themes/<slug>/backgrounds/` must still win.
|
||||
- [ ] **#115 suspend-then-hibernate (laptop with hibernate/resume wired)** —
|
||||
after system rebuild: Preferences shows **Suspend then hibernate (on)**
|
||||
(hidden if `CanHibernate=no`). Confirm:
|
||||
|
||||
@@ -19,6 +19,26 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-17 — Wallpapers split shipped: 94 MB out of the flake source
|
||||
- **Task:** LATER "Wallpapers artifact split" (promoted by Bernardo live —
|
||||
he created the Nomarchy-Wallpapers repo mid-session). Also filed #151
|
||||
(v1 launch plan, [human]) with measured history numbers.
|
||||
- **Did:** all 24 themes' backgrounds → Nomarchy-Wallpapers (803b48d,
|
||||
pushed); new `nomarchy-wallpapers` non-flake input; overlay drv
|
||||
`nomarchy-default-themes` merges repo themes (~3 MB) + input backgrounds
|
||||
with a build-failing drift guard; state-sync wrapper points at the
|
||||
merged store path (package 94 MB → 32.6 KiB); checks re-pointed;
|
||||
`themes/*/backgrounds/` git-rm'd. Split line: eval-time assets stay
|
||||
in-repo, runtime-only wallpapers move. Sonnet implemented; design +
|
||||
review here.
|
||||
- **Verified:** V2 — flake check green; theme-wholeswap, state-sync-validate,
|
||||
auto-theme VM check, template HM build all green; wallpapers source
|
||||
exactly once in the closure; `list` works from a scratch state dir.
|
||||
- **Pending:** V3 queued (wallpaper renders + bg-next after next pull;
|
||||
custom-wallpaper override precedence). History rewrite decision folded
|
||||
into #151.
|
||||
- **Next suggestion:** #151 planning session with Bernardo.
|
||||
|
||||
## 2026-07-17 — v1-prep hygiene sweep: repo is clean; LICENSE was the real gap
|
||||
- **Task:** Bernardo asked for a structure/necessity audit + full docs sweep
|
||||
ahead of v1. Three Sonnet passes (structure, docs-vs-code, mechanical
|
||||
|
||||
Reference in New Issue
Block a user