detached 3694921

Merge pull request #129 from bnema/feat/demo-htop-border

docs(demo): swap btop for htop and outline the terminal window
commit
369492130eb8e91f3fd7db07e28eed95375de3fe
author
bnema · · 2026-07-25 03:23 UTC
committer
GitHub · · 2026-07-25 03:23 UTC
merge of
bcb097b + 032a4f0 · diff against the first parent
signature
GPG UnverifiedB5690EEEBB952194 The key is unknown
4 files · +8 -4
M Makefile +5 -0
@@ -35,8 +35,13 @@ demo:
3535 docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \
3636 -size 1200x750 xc:black -fill white \
3737 -draw "roundrectangle 20,20 1179,729 10,10" /out/mask.png
38+ # The 2px edge is stroked before the mask is applied so the mask clips the
39+ # stroke's antialiased overflow; drawing it after would leave partly
40+ # transparent pixels, which a GIF's 1-bit alpha cannot represent.
3841 docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \
3942 -limit memory 8GiB -limit map 12GiB /out/demo.gif -coalesce \
43+ -fill none -stroke "#30363D" -strokewidth 2 \
44+ -draw "roundrectangle 21,21 1178,728 9,9" \
4045 null: \( /out/mask.png -alpha off \) -compose CopyOpacity \
4146 -layers composite /out/demo-masked.gif
4247 # --lossy above 30 smears the near-identical darks of the window chrome
@@ -35,8 +35,13 @@ demo:
35 docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \35 docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \
36 -size 1200x750 xc:black -fill white \36 -size 1200x750 xc:black -fill white \
37 -draw "roundrectangle 20,20 1179,729 10,10" /out/mask.png37 -draw "roundrectangle 20,20 1179,729 10,10" /out/mask.png
38+ # The 2px edge is stroked before the mask is applied so the mask clips the
39+ # stroke's antialiased overflow; drawing it after would leave partly
40+ # transparent pixels, which a GIF's 1-bit alpha cannot represent.
38 docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \41 docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \
39 -limit memory 8GiB -limit map 12GiB /out/demo.gif -coalesce \42 -limit memory 8GiB -limit map 12GiB /out/demo.gif -coalesce \
43+ -fill none -stroke "#30363D" -strokewidth 2 \
44+ -draw "roundrectangle 21,21 1178,728 9,9" \
40 null: \( /out/mask.png -alpha off \) -compose CopyOpacity \45 null: \( /out/mask.png -alpha off \) -compose CopyOpacity \
41 -layers composite /out/demo-masked.gif46 -layers composite /out/demo-masked.gif
42 # --lossy above 30 smears the near-identical darks of the window chrome47 # --lossy above 30 smears the near-identical darks of the window chrome
M docs/assets/demo.gif +0 -0 binary file: no text diff

binary file: no text diff

M scripts/demo/Dockerfile +1 -2
@@ -14,13 +14,12 @@ RUN pacman -Sy --noconfirm archlinux-keyring \
1414 && sed -i '/^NoExtract.*usr\/share\/man/d' /etc/pacman.conf \
1515 && pacman -Syu --noconfirm \
1616 vhs ttyd ffmpeg chromium \
17- btop fastfetch gifsicle imagemagick \
17+ htop fastfetch gifsicle imagemagick \
1818 eza neovim man-db man-pages coreutils \
1919 nodejs npm ncurses \
2020 ttf-jetbrains-mono-nerd \
2121 && pacman -Scc --noconfirm
2222 RUN npm install -g --allow-scripts=@anthropic-ai/claude-code @anthropic-ai/claude-code
23-RUN setcap -r /usr/sbin/btop
2423 RUN useradd -m -u 1000 demo
2524 COPY --from=build /out/vev /usr/local/bin/vev
2625 COPY scripts/demo/ticker.sh /usr/local/bin/ticker
@@ -14,13 +14,12 @@ RUN pacman -Sy --noconfirm archlinux-keyring \
14 && sed -i '/^NoExtract.*usr\/share\/man/d' /etc/pacman.conf \14 && sed -i '/^NoExtract.*usr\/share\/man/d' /etc/pacman.conf \
15 && pacman -Syu --noconfirm \15 && pacman -Syu --noconfirm \
16 vhs ttyd ffmpeg chromium \16 vhs ttyd ffmpeg chromium \
17- btop fastfetch gifsicle imagemagick \17+ htop fastfetch gifsicle imagemagick \
18 eza neovim man-db man-pages coreutils \18 eza neovim man-db man-pages coreutils \
19 nodejs npm ncurses \19 nodejs npm ncurses \
20 ttf-jetbrains-mono-nerd \20 ttf-jetbrains-mono-nerd \
21 && pacman -Scc --noconfirm21 && pacman -Scc --noconfirm
22 RUN npm install -g --allow-scripts=@anthropic-ai/claude-code @anthropic-ai/claude-code22 RUN npm install -g --allow-scripts=@anthropic-ai/claude-code @anthropic-ai/claude-code
23-RUN setcap -r /usr/sbin/btop
24 RUN useradd -m -u 1000 demo23 RUN useradd -m -u 1000 demo
25 COPY --from=build /out/vev /usr/local/bin/vev24 COPY --from=build /out/vev /usr/local/bin/vev
26 COPY scripts/demo/ticker.sh /usr/local/bin/ticker25 COPY scripts/demo/ticker.sh /usr/local/bin/ticker
M scripts/demo/demo.tape +2 -2
@@ -116,7 +116,7 @@ Sleep 550ms
116116 Alt+f
117117 Sleep 500ms
118118
119-# ── Session "monitor": fastfetch + btop, each full-width,
119+# ── Session "monitor": fastfetch + htop, each full-width,
120120 # never split. ─────────────────────────────────────────
121121 Alt+" "
122122 Sleep 550ms
@@ -135,7 +135,7 @@ Sleep 550ms
135135 Type "CNT"
136136 Enter
137137 Sleep 550ms
138-Type@90ms "btop"
138+Type@90ms "htop"
139139 Enter
140140 Sleep 1.9s
141141 Alt+"1"
@@ -116,7 +116,7 @@ Sleep 550ms
116 Alt+f116 Alt+f
117 Sleep 500ms117 Sleep 500ms
118 118
119-# ── Session "monitor": fastfetch + btop, each full-width,119+# ── Session "monitor": fastfetch + htop, each full-width,
120 # never split. ─────────────────────────────────────────120 # never split. ─────────────────────────────────────────
121 Alt+" "121 Alt+" "
122 Sleep 550ms122 Sleep 550ms
@@ -135,7 +135,7 @@ Sleep 550ms
135 Type "CNT"135 Type "CNT"
136 Enter136 Enter
137 Sleep 550ms137 Sleep 550ms
138-Type@90ms "btop"138+Type@90ms "htop"
139 Enter139 Enter
140 Sleep 1.9s140 Sleep 1.9s
141 Alt+"1"141 Alt+"1"

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