# RULE: a results buffer is a list of things you can RUN, and its traits say # what a ROW IS. Every list before this one held LOCATIONS — a row with a # `path:LINE:COL` word inside it — so n/N select that word and Enter Looks it. # `SPC t t` (ThemeSel) opens the first one whose rows are COMMANDS: `Theme # `, exactly the line you would type, with no path in it to pick out, so # n/N select the WHOLE ROW. One motion, two grains, and the same split either # way — the step only SELECTS, and Tab (Exec, or the middle button, which is # the same builtin) is what RUNS what it left. Walking the list therefore # wears nothing as you pass; the theme changes on the Tab, and picking one is # running it and stopping. There is still no preview state, nothing to confirm # and nothing to cancel: the row you ran is the theme you have. # # Both halves of the ring are in the buffer: the fifteen native themes come # first, then the retained helix, dark and acme, then everything 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 31 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 — but a # fresh output buffer is where the walk's ring starts, so the first n goes # into the list and every one after it carries on down it. key space t t wait 10000 Theme orchard stable 700 15000 snap list # n selects row 1 whole and Tab runs it: `Theme orchard`, 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 run. key n key tab stable 700 15000 snap step-orchard snapstyle step-orchard # ...and now the theme really does change under the cursor, one row at a time key n key tab stable 700 15000 snap step-dusk snapstyle step-dusk # Selection alone can skip rows without previewing or applying their themes. # Four steps reach atelier, the Acme homage; Tab then applies it. key n key n key n key n key tab stable 700 15000 snap step-atelier snapstyle step-atelier key n key tab stable 700 15000 snap step-forge snapstyle step-forge key n key tab stable 700 15000 snap step-lagoon snapstyle step-lagoon key n key tab stable 700 15000 snap step-solarium snapstyle step-solarium key n key tab stable 700 15000 snap step-spectrum snapstyle step-spectrum key n key tab stable 700 15000 snap step-harvest snapstyle step-harvest key n key tab stable 700 15000 snap step-clay snapstyle step-clay # The three native contrast variants precede the legacy section. Its heading # and blank separator are not stops in the n/N command walk. key n key tab stable 700 15000 snap step-forge-black snapstyle step-forge-black key n key tab stable 700 15000 snap step-forge-soft snapstyle step-forge-soft key n key tab stable 700 15000 snap step-orchard-black snapstyle step-orchard-black key n key tab stable 700 15000 snap step-helix snapstyle step-helix key n key tab stable 700 15000 snap step-dark snapstyle step-dark key n key tab stable 700 15000 snap step-acme snapstyle step-acme # past the curated eighteen and into the generated half, which is sorted by name # — so the next command 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 key tab stable 700 15000 snap step-generated snapstyle step-generated # N walks back the same way — it is the exact inverse of n — and the Tab after # it runs the row it lands on, so the theme rewinds too key N key tab stable 700 15000 snap step-back snapstyle step-back # PICKING is just stopping: the theme the last Tab ran is still on, and the # list is closed with an explicit Del. No window move is needed to get there — # the walk lands IN the pane it steps, so the cursor has been in the list # since the first n. Body-normal Esc is Last, so it deliberately leaves this # document-like output buffer open. # ...and the WHOLE ring is in there: `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 runs nothing and # neither does a step, so no theme changes here and the one the last Tab chose # is still on. key g e stable 700 15000 snap tail key space d settle 100 stable 700 15000 snap picked snapstyle picked