evidence · 3.6 KiB

persistent-default.md

Committed at docs/evidence/omarchy-themes/persistent-default.md. This is what grounds the requirements that cite it.

Open raw source

Cached selection and pinned default checkpoint

Observed 2026-09-23. The opt-in launcher trial loads the selected generation from the private current/active pointer before its first Wayland scene. If that cached generation is absent or invalid, it keeps the immutable Nix Catppuccin palette subset; the normal option remains disabled. A fresh home needs no writable state to display that default. The command can select catppuccin by name from the same pinned data files. No theme source checkout is changed or refreshed implicitly.

The default includes exact upstream colors.toml, icons.theme and MIT license bytes at Omarchy commit 28ceaae70ebac3a0edcc21f2faa77a90dc6d404c. SOURCE.md records per-file hashes. Its derived report and installed source are deliberately a palette/icon-selector subset: upstream media is not redistributed or implied to work. current/theme, current/theme.name and current/background are stable relative symlinks through the atomic active pointer after a selection; background may be dangling when a source has no background. Existing nonmatching files at those names are refused, not overwritten. A prepared generation remains usable after its source clone is removed. A broken active pointer can be replaced by a later valid selection.

python3 tests/test_handheld_theme_default.py
  PASS: exact file hashes, derived generation ID, parsed palette and icon
  selector, source revision and explicit no-media report.
python3 tests/test_omarchy_theme_activation.py
  PASS: 8 host tests including stable public paths after clone removal.
python3 tests/test_omarchy_theme_transaction.py
  PASS: 13 host tests including incompatible path refusal, in-cache broken
  pointer replacement, and foreign dangling-pointer refusal.
python3 tests/test_shell_appearance_receiver.py
  PASS: 5 native host socket tests including fresh-home startup, reopened
  selected palette and unavailable cached selection fallback.
python3 tools/omarchy-theme-set catppuccin --builtins nix/handheld-theme-default --tools nix/omarchy-theme-tools/upstream --state-root /tmp/k230-omarchy-default-prep-check --prepare-only
  PASS: 56 resolved keys, Yaru-purple selector, no background candidates.
nix build .#handheld-theme-default --max-jobs 1 --cores 4 --no-link --print-out-paths
  PASS: /nix/store/qlrciqqmh3s80rc755p9dgm3plw1w1r4-handheld-theme-default-28ceaae7
nix build .#handheld-theme-command --max-jobs 1 --cores 4 --no-link --print-out-paths
  PASS: /nix/store/pd1igazqim6rzs515vbnq0ij11yn4nzj-handheld-theme-command-0.1
nix build .#touch-launcher --max-jobs 1 --cores 4 --no-link --print-out-paths
  PASS: /nix/store/5dzy6jj37xm7a1v40j9fdrmc7q4ih7dp-k230-touch-launcher
nix eval --json .#nixosConfigurations.k230.config.k230.shell.themeReceiverTrial
  PASS: false in the normal board configuration.
nix eval --impure --json --expr 'let f = builtins.getFlake (toString ./.); c = f.nixosConfigurations.k230.extendModules { modules = [ { k230.shell.themeReceiverTrial = true; } ]; }; in { enabled = c.config.k230.shell.themeReceiverTrial; installed = builtins.any (p: (p.pname or "") == "handheld-theme-command") c.config.environment.systemPackages; launcher = toString c.config.k230.shell.launcher; }'
  PASS: enabled=true, installed=true; the opt-in launcher wrapper is a new
  evaluated store path. No whole image or physical boot was built or observed.

Host startup and cache tests are not reboot or panel evidence. Full Omarchy media, authored Foot overrides, cross-surface tokens, old real-directory current/ migration and physical persistence remain open. Tasks 2.1 and 2.3 are not checked from this bounded checkpoint.