| name | second-screen-gallery |
| description | Display rendered claw-draws-claw videos as a passive fullscreen gallery on a dedicated second monitor, including CRT post-processing before playback. Use when you need to pick the newest rendered artwork, prepare a CRT-styled playback copy, launch or relaunch the gallery player on a named external display, or replace the previous gallery playback on macOS without affecting unrelated mpv processes. |
Second Screen Gallery
Use this skill to exhibit already-rendered claw-draws-claw videos on a dedicated external monitor.
Keep the setup simple and reliable:
- prefer
mpv as the playback engine
- target the display by name, not display index
- generate the CRT-styled playback file before touching the display
- treat the gallery as a simple replaceable player, not a media daemon
- launch the new gallery player first, then stop the previous gallery player
- never kill unrelated
mpv processes
- keep playback muted, looping, fullscreen, and visually quiet
Quick Start
Use these directories throughout the workflow:
DATA_DIR — where claw-draws-claw writes renders. Defaults to $HOME/.claw-draws-claw.
SKILL_DIR — the directory containing this SKILL.md file.
Assume the source renders live at:
$DATA_DIR/gallery/<timestamp>/claw-draws-claw.mp4
The CRT playback copy should live next to the source video as:
$DATA_DIR/gallery/<timestamp>/claw-draws-claw-crt.mp4
The gallery player keeps state in:
${TMPDIR:-/tmp}/second-screen-gallery/
Workflow
Step 1 — Verify prerequisites
Confirm these tools are available:
ffmpeg
mpv
/usr/sbin/system_profiler
If any are missing, stop and report what needs to be installed.
Step 2 — Choose the source video
Default behavior: use the newest file matching:
$DATA_DIR/gallery/*/claw-draws-claw.mp4
If the user specifies a particular render, use that file instead.
Step 3 — Prepare the CRT playback copy and display it
Run:
bash "$SKILL_DIR/scripts/play-latest-art.sh"
Or, for a specific source file:
bash "$SKILL_DIR/scripts/play-latest-art.sh" \
"$DATA_DIR/gallery/<timestamp>/claw-draws-claw.mp4"
This script:
- finds the newest source render when no explicit file is given
- creates or refreshes
-crt.mp4 when the source is newer than the CRT copy
- keeps the currently playing gallery art up while preprocessing happens
- launches a new gallery player for the prepared CRT file
- then stops the previously recorded gallery player if it is still alive
Step 4 — Report the result
Report:
- which source render was chosen
- which CRT file was produced or reused
- which display was targeted
- whether a previous gallery player was replaced
Environment knobs
Use these environment variables when needed:
CLAW_DRAWS_CLAW_DATA_DIR — override the source gallery root
SECOND_SCREEN_GALLERY_SCREEN — override the target display name (default: Wokyis)
SECOND_SCREEN_GALLERY_SOURCE_BASENAME — override the source filename to search for
SECOND_SCREEN_GALLERY_CRT_SUFFIX — override the CRT filename suffix
SECOND_SCREEN_GALLERY_STATE_DIR — override the gallery state directory
SECOND_SCREEN_GALLERY_PID_FILE — override the current gallery pidfile path
SECOND_SCREEN_GALLERY_PREV_PID_FILE — override the previous gallery pidfile path
SECOND_SCREEN_GALLERY_TITLE — override the gallery window title used for process verification
Scripts
scripts/play-latest-art.sh — pick newest source render, ensure CRT output exists, launch the new gallery player, then stop the previously recorded gallery player
scripts/launch-second-screen-gallery.sh — launch a gallery mpv process on the named display and record its PID
scripts/crt-filter.sh — apply the CRT-style ffmpeg pass
Edge Cases
- If the target display is disconnected, stop with a clear error instead of falling back to the main display.
- If no source render exists yet, stop and say that no artwork is available.
- If CRT processing fails, do not launch the unprocessed original unless the user explicitly asks.
- If the previous pidfile is missing or stale, continue without failing.
- If the previous PID does not look like the gallery player, do not kill it.
Gotchas
- Do not identify the display by ordinal position; use the display name.
- Do not assume a CRT copy is fresh; regenerate it when the source video is newer.
- Do not stop the previous gallery player until the new one is already up.
- Do not kill arbitrary
mpv processes; only stop the previously recorded gallery PID after verifying it looks like the gallery player.
- Keep this skill focused on exhibition; art generation belongs to
claw-draws-claw.