Skip to content

Commit b3381a7

Browse files
committed
refactor: redesign logo assets, add screenshot automation to Justfile, and update documentation.
1 parent b00850a commit b3381a7

4 files changed

Lines changed: 66 additions & 32 deletions

File tree

Justfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,19 @@ tag ver:
144144
demo: install
145145
vhs assets/demo.tape
146146

147+
# Needs charmbracelet/vhs, imagemagick and a JetBrainsMono Nerd Font
148+
# (`brew install vhs imagemagick && brew install --cask font-jetbrains-mono-nerd-font`).
149+
# Runs against the offline demo backend, so no real cluster ends up in the
150+
# docs. The magick pass palettes the PNG — a terminal frame has ~250 colours,
151+
# so it costs nothing visible and cuts the file to a third.
152+
153+
# Capture the README hero: a real terminal frame of the running TUI.
154+
screenshot: build
155+
rm -f /tmp/k10s-screenshot-config.yaml
156+
vhs assets/screenshot.tape
157+
magick assets/screenshot.png -colors 256 PNG8:assets/screenshot.png
158+
@ls -lh assets/screenshot.png
159+
147160
# ---- logo -----------------------------------------------------------------
148161

149162
# Regenerate every logo SVG and re-export the PNGs. Needs python3 + rsvg-convert

README.md

Lines changed: 10 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -27,38 +27,13 @@ already knows your cluster, namespace and selected object.**
2727

2828
---
2929

30-
```
31-
⎈ k10s │ prod-eu-west-1 │ ver v1.31.4 │ nodes 2/3 ready ns default ▾ │ theme tokyo-night ⟳
32-
33-
CPU ▰▰▰▰▰▰▱▱▱▱▱▱▱▱▱▱ 38% 18.4/48 cores MEM ▰▰▰▰▰▰▱▱▱▱▱▱▱▱▱▱ 42% 82/192 GiB
34-
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
35-
╭─ Resources ────────╮╭─ Pods · default ───────── [ f to search ] [ zoom ] ╮╭─ Actions ────────────╮
36-
│ WORKLOADS ││ NAME READY STATUS RESTARTS││ po/api-gateway-7d9f4…│
37-
│ ▸ Pods 14││╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌││╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌│
38-
│ Deployments 7││▌ 1 api-gateway-7d9f4… 1/1 Running 0 ││ [d] Describe │
39-
│ StatefulSets 3││ 2 api-gateway-7d9f4… 1/1 Running 0 ││ [y] YAML │
40-
│ DaemonSets 2││ 3 auth-service-5c7b… 1/1 Running 2 ││ [l] Logs │
41-
│ Jobs 2││ 4 billing-worker-6f… 0/1 CrashLoop… 17 ││ [s] Shell │
42-
│ CronJobs 2││ 5 cache-redis-0 1/1 Running 0 ││ [p] Port Forward │
43-
│ ││ 6 cache-redis-1 1/1 Running 0 ││ [e] Edit │
44-
│ NETWORK ││ 7 migrate-db-29341-… 0/1 Completed 0 ││ [m] Top (metrics) │
45-
│ Services 4││ 8 notify-consumer-8… 1/1 Running 1 ││╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌│
46-
│ Ingresses 2││ 9 payment-api-9d7c8… 2/2 Running 0 ││ [D] Delete │
47-
│ ││ 10 payment-api-9d7c8… 1/2 Pending 0 ││ │
48-
│ CONFIG ││ 11 search-indexer-7c… 1/1 Running 0 ││ │
49-
│ ConfigMaps 3││ 12 web-frontend-6b8c… 1/1 Running 0 ││ │
50-
│ Secrets 3││ 13 web-frontend-6b8c… 1/1 Running 0 ││ │
51-
│ ││ 14 web-frontend-6b8c… 1/1 Terminati… 0 ││ │
52-
│ STORAGE ││ ││ │
53-
│ PVCs 3││ ││ │
54-
╰────────────────────╯╰────────────────────────────────────────────────────╯╰──────────────────────╯
55-
╭─ Command ────────────────────────────────────────────────────────────────────── [ grow ] [ CMD ] ╮
56-
│ ❯ kubectl get pods -A · /ns · :help · ctrl+a for AI │
57-
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
58-
● cli → kubectl · change it any time with /sett… tab panes · enter open · ctrl+p search · f fin
59-
```
30+
<div align="center">
6031

61-
<sub>Real frame, rendered headlessly by `just shot` - every screenshot in these docs is generated from the code, never hand-drawn.</sub>
32+
<img src="assets/screenshot.png" alt="k10s running in a terminal: resource sidebar, pod table with live status, and an action pane for the selected pod" width="960">
33+
34+
<sub>A real terminal capture of `k10s` running - `just screenshot`, on the offline demo backend. Every frame in these docs comes out of the running binary, never hand-drawn.</sub>
35+
36+
</div>
6237

6338
## Why k10s
6439

@@ -298,12 +273,15 @@ The barrier is low on purpose. `just` lists every recipe:
298273
```bash
299274
just dev # run from source
300275
just shot 140 44 # render one frame headlessly - no TTY, no cluster
276+
just screenshot # capture the README hero from a real terminal (vhs)
301277
just check # fmt + vet + test, in the order that fails fastest
302278
```
303279

304280
`cmd/shot` is why UI work here is pleasant: you can iterate on layout, replay
305281
keystrokes (`just shot 140 44 j,j,d`) and diff frames without a terminal or a
306-
cluster. Every screenshot in this README came out of it.
282+
cluster. Nothing in these docs is drawn by hand - the frames come from that
283+
renderer, the hero image from `just screenshot` driving the real binary in a
284+
real terminal.
307285

308286
Good first issues live in [roadmap.md → possible next
309287
steps](docs/roadmap.md#possible-next-steps): more kinds, click-to-sort

assets/screenshot.png

159 KB
Loading

assets/screenshot.tape

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# k10s hero screenshot — a real terminal capture of the running TUI, used at
2+
# the top of the README.
3+
#
4+
# vhs assets/screenshot.tape (or `just screenshot`)
5+
#
6+
# Needs charmbracelet/vhs, a JetBrainsMono Nerd Font install (the header's ⎈
7+
# and the CPU/MEM bars need the glyph coverage) and a local `./k10s` build.
8+
#
9+
# KUBECONFIG points nowhere on purpose: every published frame runs on the
10+
# offline demo backend, so no real cluster ever leaks into the docs. The
11+
# throwaway GIF goes to /tmp — the PNG is the only artifact we keep.
12+
13+
Output "/tmp/k10s-screenshot-scratch.gif"
14+
15+
Set Shell "bash"
16+
Set FontFamily "JetBrainsMono Nerd Font"
17+
Set FontSize 15
18+
Set Width 1600
19+
Set Height 780
20+
Set Padding 20
21+
Set WindowBar Colorful
22+
Set BorderRadius 10
23+
Set Margin 20
24+
Set MarginFill "#16161e"
25+
Set Theme { "background": "#1a1b26", "foreground": "#c0caf5", "cursor": "#c0caf5" }
26+
27+
Env KUBECONFIG "/nonexistent/kubeconfig"
28+
Env K10S_CONFIG "/tmp/k10s-screenshot-config.yaml"
29+
30+
# The launch itself is not interesting — hide it, and let the alt screen hide
31+
# the shell prompt behind it.
32+
Hide
33+
Type "./k10s"
34+
Enter
35+
Sleep 6s
36+
37+
# dismiss the first-run onboarding
38+
Escape
39+
Sleep 2s
40+
Show
41+
Sleep 2s
42+
43+
Screenshot assets/screenshot.png

0 commit comments

Comments
 (0)