evidence · 3.2 KiB

native-token-checkpoint.md

Committed at docs/evidence/omarchy-themes/native-token-checkpoint.md. This is what grounds the requirements that cite it.

Open raw source

Native appearance payload checkpoint

Observed 2026-09-23 at source commits 6829f574b9e3c917f7f6464eca50829fdf70ad6e and ef7b2a8c57f935f4aa12c2a3e0d1301cde5f030a. The pinned helper still resolves Omarchy colors/templates. The small adapter types its generated shell.toml into a bounded appearance.json per immutable generation. It retains every generated section/key, including gradients with authored stop order/angle, separate alpha, numeric spacing, and per-side border widths. The theme command package includes this adapter; the pinned Catppuccin default includes a derived payload bound to an ID hashing the source colors, icon selector and canonical token payload without self-reference.

The native launcher receiver stages this payload with its palette during prepare, adopts it before a redraw ACK, restores it on rollback, and loads the selected generation on restart. It exposes brush, border, number, icon theme, safe still-background path and generation serial getters. A missing or invalid payload is rejected instead of displaying a partly themed generation. The current touch-launcher.c still consumes only its earlier palette fields; drawer/card rendering of the new getters is a separate integration task.

Generated sectionFields in pinned defaultIntended consumer state
launcher12Drawer; new native getters available, rendering pending
menu12Card/Settings chrome pending
notifications6Notification surface pending
controls22Controls/keyboard state rendering pending
popups, tooltip5 eachSystem overlays pending
image-picker7Background chooser pending
font, spacing1, 2Handheld scale adaptation pending
bar, lock, polkit, hyprland7, 11, 10, 2No corresponding shipped handheld surface/config; retained as data, not applied

Commands and results:

python3 tests/test_handheld_theme_rendering.py       PASS 3 host tests
python3 tests/test_handheld_theme_default.py         PASS 1 host test
python3 tests/test_shell_appearance_receiver.py      PASS 6 native host tests
python3 tests/test_omarchy_theme_activation.py       PASS 8 host tests
python3 tests/test_omarchy_theme_resolution.py       PASS 4 host tests
python3 tests/test_omarchy_theme_sources.py          PASS 5 host tests
python3 tests/test_omarchy_theme_transaction.py      PASS 13 host tests
cc -std=c11 -Wall -Wextra -Werror -fsyntax-only nix/touch-launcher/appearance.c $(pkg-config --cflags json-glib-1.0)
                                                  PASS native host syntax
openspec validate the-shell-loads-omarchy-themes --strict
                                                  PASS
nix build --no-link .#handheld-theme-command .#handheld-theme-default --print-out-paths
                                                  PASS package cross-build

Build outputs: /nix/store/w3xbmli5ncdcyvvxdb7qmpp5hi767588-handheld-theme-command-0.1 and /nix/store/zahja8nizkmm3mg21k6g81pg0r4cfzfb-handheld-theme-default-28ceaae7. These are host/package checks. There is no changed image, display capture, physical interaction, rollback-on-glass or full surface compatibility proof from this checkpoint. The existing opt-in receiver remains disabled by default.