detached 563c63a

feat(demo): full readme demo tape

commit
563c63a2f274c57e9e59612771775a9b9f64f9ac
author
brice · · 2026-07-24 08:23 UTC
committer
brice · · 2026-07-24 10:18 UTC
parent
10de305
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
1 file · +177 -0
A scripts/demo/demo.tape +177 -0
@@ -0,0 +1,177 @@
1+Require vev
2+Output out/demo.gif
3+Set Shell bash
4+Set FontFamily "JetBrainsMono Nerd Font"
5+Set FontSize 20
6+Set Width 1200
7+Set Height 750
8+Set Padding 0
9+Set Theme "GitHub Dark"
10+Set TypingSpeed 100ms
11+Set Framerate 30
12+Set WaitTimeout 30s
13+
14+# Visible shell commands are typed with hand-varied Type@<speed>
15+# (70-160ms) and short hesitations at word boundaries so the rhythm
16+# reads irregular/human; palette codes (CNS/SSP/…) stay single-speed.
17+
18+# ── Session "work": a colourful split (eza + ticker) ─────
19+Type@90ms "vev "
20+Sleep 160ms
21+Type@75ms "new "
22+Type@140ms "work"
23+Enter
24+Sleep 1.1s
25+Type@85ms "eza "
26+Sleep 200ms
27+Type@75ms "-la "
28+Type@130ms "/etc"
29+Enter
30+Sleep 1.5s
31+Alt+" "
32+Sleep 550ms
33+Type "SPR"
34+Enter
35+Sleep 650ms
36+Type@80ms "tick"
37+Type@150ms "er"
38+Enter
39+Sleep 1.5s
40+
41+# ── Session "agents": launch the bell job early so its
42+# sleep overlaps the middle scenes. claude -p prints the
43+# answer but emits no bell of its own (verified), so the
44+# pane rings it with printf. ───────────────────────────
45+Alt+" "
46+Sleep 550ms
47+Type "CNS"
48+Enter
49+Sleep 550ms
50+Type@95ms "agents"
51+Enter
52+Sleep 900ms
53+Type@80ms "sleep "
54+Type@140ms "10 "
55+Sleep 170ms
56+Type@90ms "&& claude "
57+Type@150ms "-p "
58+Type@105ms `"say hello world" `
59+Sleep 220ms
60+Type@85ms "&& printf "
61+Type@130ms `'\a'`
62+Enter
63+Sleep 1s
64+
65+# Back to work — palette-typed session switch: type the session
66+# name directly (no command code), it ranks top of the results.
67+Alt+" "
68+Sleep 550ms
69+Type@95ms "work"
70+Enter
71+Sleep 1s
72+
73+# ── Session "work": stacked panes (ticker keeps ticking) ─
74+# Member 1 is the eza pane already on screen; member 2 opens the
75+# ticker script itself in neovim (self-referential, bash syntax).
76+Alt+h
77+Sleep 550ms
78+Alt+" "
79+Sleep 550ms
80+Type "STP"
81+Enter
82+Sleep 650ms
83+Type@85ms "nvim "
84+Sleep 150ms
85+Type@110ms "/usr/local/bin/"
86+Type@130ms "ticker"
87+Enter
88+Sleep 1.5s
89+Alt+k
90+Sleep 900ms
91+Alt+j
92+Sleep 900ms
93+
94+# ── Session "work": floating pane preserves its program ──
95+# Open a man page, scroll it, hide, then show again at the same
96+# scroll position — proves the float keeps program + scroll state.
97+Alt+f
98+Sleep 550ms
99+Type@90ms "man "
100+Type@130ms "ls"
101+Enter
102+Sleep 1.2s
103+Space
104+Sleep 700ms
105+Alt+f
106+Sleep 900ms
107+Alt+f
108+Sleep 1.2s
109+Type "q"
110+Sleep 550ms
111+Alt+f
112+Sleep 500ms
113+
114+# ── Session "monitor": fastfetch + btop, each full-width,
115+# never split. ─────────────────────────────────────────
116+Alt+" "
117+Sleep 550ms
118+Type "CNS"
119+Enter
120+Sleep 550ms
121+Type@95ms "monitor"
122+Enter
123+Sleep 900ms
124+Type@80ms "fast"
125+Type@130ms "fetch"
126+Enter
127+Sleep 1.7s
128+Alt+" "
129+Sleep 550ms
130+Type "CNT"
131+Enter
132+Sleep 550ms
133+Type@90ms "btop"
134+Enter
135+Sleep 1.9s
136+Alt+"1"
137+Sleep 1.2s
138+Alt+"2"
139+Sleep 1.1s
140+
141+# ── Bell cross-session: the agents job has rung; jump to it ─
142+Sleep 900ms
143+Alt+a
144+Sleep 1.9s
145+
146+# ── Session picker now lists all three sessions ──────────
147+Alt+" "
148+Sleep 550ms
149+Type "SSP"
150+Enter
151+Sleep 1.2s
152+Down
153+Sleep 450ms
154+Down
155+Sleep 450ms
156+Down
157+Sleep 650ms
158+Enter
159+Sleep 1.2s
160+
161+# ── Detach / re-attach: three sessions survive, ticker on ─
162+Alt+" "
163+Sleep 550ms
164+Type "DET"
165+Enter
166+Sleep 1s
167+Type@90ms "vev "
168+Type@75ms "ls"
169+Enter
170+Sleep 1.8s
171+Type@90ms "vev "
172+Sleep 150ms
173+Type@80ms "attach "
174+Type@140ms "work"
175+Enter
176+Sleep 2.2s
177+Sleep 400ms
@@ -0,0 +1,177 @@
1+Require vev
2+Output out/demo.gif
3+Set Shell bash
4+Set FontFamily "JetBrainsMono Nerd Font"
5+Set FontSize 20
6+Set Width 1200
7+Set Height 750
8+Set Padding 0
9+Set Theme "GitHub Dark"
10+Set TypingSpeed 100ms
11+Set Framerate 30
12+Set WaitTimeout 30s
13+
14+# Visible shell commands are typed with hand-varied Type@<speed>
15+# (70-160ms) and short hesitations at word boundaries so the rhythm
16+# reads irregular/human; palette codes (CNS/SSP/…) stay single-speed.
17+
18+# ── Session "work": a colourful split (eza + ticker) ─────
19+Type@90ms "vev "
20+Sleep 160ms
21+Type@75ms "new "
22+Type@140ms "work"
23+Enter
24+Sleep 1.1s
25+Type@85ms "eza "
26+Sleep 200ms
27+Type@75ms "-la "
28+Type@130ms "/etc"
29+Enter
30+Sleep 1.5s
31+Alt+" "
32+Sleep 550ms
33+Type "SPR"
34+Enter
35+Sleep 650ms
36+Type@80ms "tick"
37+Type@150ms "er"
38+Enter
39+Sleep 1.5s
40+
41+# ── Session "agents": launch the bell job early so its
42+# sleep overlaps the middle scenes. claude -p prints the
43+# answer but emits no bell of its own (verified), so the
44+# pane rings it with printf. ───────────────────────────
45+Alt+" "
46+Sleep 550ms
47+Type "CNS"
48+Enter
49+Sleep 550ms
50+Type@95ms "agents"
51+Enter
52+Sleep 900ms
53+Type@80ms "sleep "
54+Type@140ms "10 "
55+Sleep 170ms
56+Type@90ms "&& claude "
57+Type@150ms "-p "
58+Type@105ms `"say hello world" `
59+Sleep 220ms
60+Type@85ms "&& printf "
61+Type@130ms `'\a'`
62+Enter
63+Sleep 1s
64+
65+# Back to work — palette-typed session switch: type the session
66+# name directly (no command code), it ranks top of the results.
67+Alt+" "
68+Sleep 550ms
69+Type@95ms "work"
70+Enter
71+Sleep 1s
72+
73+# ── Session "work": stacked panes (ticker keeps ticking) ─
74+# Member 1 is the eza pane already on screen; member 2 opens the
75+# ticker script itself in neovim (self-referential, bash syntax).
76+Alt+h
77+Sleep 550ms
78+Alt+" "
79+Sleep 550ms
80+Type "STP"
81+Enter
82+Sleep 650ms
83+Type@85ms "nvim "
84+Sleep 150ms
85+Type@110ms "/usr/local/bin/"
86+Type@130ms "ticker"
87+Enter
88+Sleep 1.5s
89+Alt+k
90+Sleep 900ms
91+Alt+j
92+Sleep 900ms
93+
94+# ── Session "work": floating pane preserves its program ──
95+# Open a man page, scroll it, hide, then show again at the same
96+# scroll position — proves the float keeps program + scroll state.
97+Alt+f
98+Sleep 550ms
99+Type@90ms "man "
100+Type@130ms "ls"
101+Enter
102+Sleep 1.2s
103+Space
104+Sleep 700ms
105+Alt+f
106+Sleep 900ms
107+Alt+f
108+Sleep 1.2s
109+Type "q"
110+Sleep 550ms
111+Alt+f
112+Sleep 500ms
113+
114+# ── Session "monitor": fastfetch + btop, each full-width,
115+# never split. ─────────────────────────────────────────
116+Alt+" "
117+Sleep 550ms
118+Type "CNS"
119+Enter
120+Sleep 550ms
121+Type@95ms "monitor"
122+Enter
123+Sleep 900ms
124+Type@80ms "fast"
125+Type@130ms "fetch"
126+Enter
127+Sleep 1.7s
128+Alt+" "
129+Sleep 550ms
130+Type "CNT"
131+Enter
132+Sleep 550ms
133+Type@90ms "btop"
134+Enter
135+Sleep 1.9s
136+Alt+"1"
137+Sleep 1.2s
138+Alt+"2"
139+Sleep 1.1s
140+
141+# ── Bell cross-session: the agents job has rung; jump to it ─
142+Sleep 900ms
143+Alt+a
144+Sleep 1.9s
145+
146+# ── Session picker now lists all three sessions ──────────
147+Alt+" "
148+Sleep 550ms
149+Type "SSP"
150+Enter
151+Sleep 1.2s
152+Down
153+Sleep 450ms
154+Down
155+Sleep 450ms
156+Down
157+Sleep 650ms
158+Enter
159+Sleep 1.2s
160+
161+# ── Detach / re-attach: three sessions survive, ticker on ─
162+Alt+" "
163+Sleep 550ms
164+Type "DET"
165+Enter
166+Sleep 1s
167+Type@90ms "vev "
168+Type@75ms "ls"
169+Enter
170+Sleep 1.8s
171+Type@90ms "vev "
172+Sleep 150ms
173+Type@80ms "attach "
174+Type@140ms "work"
175+Enter
176+Sleep 2.2s
177+Sleep 400ms

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 12

Tags 11

↑↓ moveenter openesc close