1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# RULE: a results buffer is a list of things you can RUN, and its traits say
# which verb runs them. Every list before this one held LOCATIONS, so stepping
# a row with n/N Looks it. `SPC t t` (ThemeSel) opens the first one whose rows
# are COMMANDS — `Theme <name>`, exactly the line you would type — so n/N Exec
# each row instead. Walking the list therefore wears the themes as you pass
# them, and picking one is stopping on it: there is no preview state, nothing
# to confirm and nothing to cancel, because arriving already did it.
#
# Both halves of the ring are in the buffer: the three pardes ships with come
# first (helix, dark, acme), then everything tools/gen_themes.zig exported from
# the vendored helix .toml and zed .json files, sorted. The colors below are
# read with snapstyle, so this proves the generated themes are real data and
# not just names in a list.
lines t.txt 40
start 30 100 t.txt
wait 8000 t.txt
stable 700 20000
snap boot
# SPC t t: the list lands below the pane that asked, focus stays HERE — n/N are
# read in this pane and they step the buffer they just armed.
key space t t
wait 10000 Theme helix
stable 700 15000
snap list
# n selects row 1 and runs it: `Theme helix`, which is already the boot theme,
# so only the selection moves. That is the honest first step — an idempotent
# command has to be safe to step onto.
key n
stable 700 15000
snap step-helix
snapstyle step-helix
# ...and now the theme really does change under the cursor, one row at a time
key n
stable 700 15000
snap step-dark
snapstyle step-dark
key n
stable 700 15000
snap step-acme
snapstyle step-acme
# past the curated three and into the generated half, which is 225 themes
# sorted by name — so the fourth row is whatever sorts first, not whatever was
# vendored first. That is the point of sorting: the ring is the same everywhere
# whatever order the directory read handed the files over in.
key n
stable 700 15000
snap step-generated
snapstyle step-generated
# N walks back the same way, running the row it lands on — so the theme
# rewinds too
key N
stable 700 15000
snap step-back
snapstyle step-back
# PICKING is just stopping. Walk down into the list and explicitly Del it: the
# theme the last step left behind is still on. Body-normal Esc is Toggleterm,
# so it deliberately leaves this document-like output buffer open.
key space w j
stable 400 5000
# ...and the WHOLE ring is in there, all 228 rows: `ge` to the last line, which
# only reaches `Theme zenburn` if nothing truncated the buffer on the way in. It
# is an ordinary file pane, so it scrolls like one; a motion is not a step, so
# no theme is run and the one step-back chose is still on.
key g e
stable 700 15000
snap tail
key space d
settle 100
stable 700 15000
snap picked
snapstyle picked
|