Files
arr-tui/dev/screenshots

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).

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, Trakt 19894 (take.sh points arr-tui there with ARR_TUI_TRAKT_URL). Library, search, lists, 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.