From 0bfa4615988c0d1bcaa38453375760c60076c5ea Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Fri, 31 Jul 2026 02:21:01 -0300 Subject: themes: one file each, generated from helix and zed, picked by stepping a list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each theme is a .zig file of pure data and nothing enumerates them by hand — fold() walks the container's declarations, so a theme is a file and that is the whole registration. Field by field rather than a wholesale coercion, which makes a missing field a compile error that names it. tools/gen_themes.zig reads helix .toml and zed .json out of vendor/themes and emits one .zig each; build.zig reads that directory, so adding a theme is dropping a file in. Output goes to the build cache rather than the tree, so zig owns the freshness check and a deleted source cannot leave a stale theme behind. Vendored, not read from the genizah: the build stays offline. A source it cannot map is a hard error naming the file and the key, never a silently black-on-black theme. ThemeSel is the clever half. Traits gained an `executes` column, so n/N over that buffer hands the whole line to Exec instead of the leading word to Look — both arms the ordinary builtin, so a stepped row does exactly what the matching mouse button on it would. Stepping the list previews each theme live. The trait is a pane property, not an output-pane branch, so any pane whose lines are commands can opt in. Goldens: leader gains SPC t t; theme's fourth NextColor no longer wraps to helix because the ring is fifteen long. New: themesel. --- test/snapshots/theme.golden | 64 ++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 32 deletions(-) (limited to 'test/snapshots/theme.golden') diff --git a/test/snapshots/theme.golden b/test/snapshots/theme.golden index 520258ff..c4a5a6d9 100644 --- a/test/snapshots/theme.golden +++ b/test/snapshots/theme.golden @@ -246,7 +246,7 @@ |27: 0-99 d,#ffffea, |28: 0-99 d,#ffffea, |29: 0-99 d,#ffffea, -== snap helix-again grid=100x30 cursor=4,4 +== snap generated grid=100x30 cursor=4,4 |Kill Newcol Tutor Debug NextColor Dump Find Grep Help | NOR /tmp/pardes-snap/theme/cwd Del NOR /tmp/pardes-snap/theme/cwd Del | @@ -277,34 +277,34 @@ | | | -== style helix-again -|0: 0-52 #949494,#121212, 53-99 d,#121212, -|1: 0-1 d,#626262, 2-35 #949494,#121212, 36-49 d,#121212, 50-51 d,#262626, 52-85 #949494,#121212, 86-99 d,#121212, -|2: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|3: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|4: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|5: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|6: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|7: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|8: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|9: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|10: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|11: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|12: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|13: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|14: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|15: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|16: 0-1 d,#262626, 2-35 #949494,#121212, 36-49 d,#121212, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|17: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|18: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|19: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|20: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|21: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|22: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|23: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|24: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|25: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|26: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|27: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|28: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, -|29: 0-1 d,#444444, 2-49 #bdbdbd,#080808, 50-51 d,#444444, 52-99 #bdbdbd,#080808, +== style generated +|0: 0-52 #8a8986,#313337, 53-99 d,#313337, +|1: 0-1 d,#5ac1fe, 2-35 #8a8986,#313337, 36-49 d,#313337, 50-51 d,#3f4043, 52-85 #8a8986,#313337, 86-99 d,#313337, +|2: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|3: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|4: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|5: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|6: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|7: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|8: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|9: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|10: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|11: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|12: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|13: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|14: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|15: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|16: 0-1 d,#3f4043, 2-35 #8a8986,#313337, 36-49 d,#313337, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|17: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|18: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|19: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|20: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|21: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|22: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|23: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|24: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|25: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|26: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|27: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|28: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, +|29: 0-1 d,#bfbdb6, 2-49 #bfbdb6,#0d1016, 50-51 d,#bfbdb6, 52-99 #bfbdb6,#0d1016, -- cgit v1.3