dev/screenshots: the tooling for the README screenshots
take.sh builds arr-tui, starts a fake Radarr, Sonarr and SABnzbd with a made-up library (catalog.py, server.py, generated posters), and runs the scene scripts in Ghostty under Xvfb, writing docs/screenshots/. Run on the same day it reproduces the committed pictures byte for byte. make test also shellchecks the scripts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# README screenshots
|
||||
|
||||
`take.sh` makes the pictures in `docs/screenshots/`: it builds arr-tui, starts a fake Radarr,
|
||||
Sonarr and SABnzbd with a made-up library, and runs arr-tui in Ghostty on a virtual X display,
|
||||
following the scene scripts. Nothing real is shown: invented titles, generated posters, dummy API
|
||||
keys (masked in the Config view anyway).
|
||||
|
||||
```sh
|
||||
dev/screenshots/take.sh
|
||||
# on NixOS, with the tools from nixpkgs:
|
||||
nix-shell -p xvfb-run xorg-server xdotool imagemagick oxipng --run dev/screenshots/take.sh
|
||||
```
|
||||
|
||||
Needs Go, Python 3, Ghostty, `xvfb-run` (Xvfb), `xdotool`, ImageMagick 7 and fontconfig with the
|
||||
DejaVu fonts; `oxipng` (optional) compresses the PNGs losslessly. It takes about a minute.
|
||||
|
||||
| File | What it is |
|
||||
|---|---|
|
||||
| `catalog.py` | The made-up library: movies (with file details) and series (with seasons). |
|
||||
| `posters.sh` | Draws a poster per title into `posters/` (gradient, title, year); run by `take.sh` when `posters/` is missing. |
|
||||
| `server.py` | The fake services on 127.0.0.1: Radarr 19891, Sonarr 19892, SABnzbd 19893. Library, search, releases, queues, history, calendar, posters. |
|
||||
| `xshot.sh` | Runs a command in Ghostty under Xvfb and follows a scene script. |
|
||||
| `scenes/*.txt` | What to press and when to take a picture: `key`, `type`, `sleep`, `shot <name>`. |
|
||||
|
||||
To change a picture, edit its scene (the key presses depend on the order of `catalog.py`, e.g.
|
||||
"The Long Orbit" is the 13th movie alphabetically) and run `take.sh` again. Some views show today's
|
||||
date (Calendar, Downloads), so every run changes those pictures a little.
|
||||
Reference in New Issue
Block a user