feat: rebuild the desktop interface in clipbin's style
Replaces the placeholder shell with a sidebar app in the web Clipbin's look: a session library, a session timeline (footage, missing and cleaned-up spans, bookmarks, a draggable clip selection exported on keyframes), clips and settings. Geist Mono and Lucide icons are embedded. The core gains the library model and formatting; sample data is opt-in for interface work, and scripts/rig/screenshot-ui.sh captures each screen headlessly.
This commit is contained in:
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
# Screenshots each Clipbin screen in the headless rig, for reviewing the
|
||||
# interface on machines without a display.
|
||||
#
|
||||
# scripts/rig/screenshot-ui.sh [output-dir] [screen...]
|
||||
#
|
||||
# Screens: sessions, session, clips, settings, failed, empty. Uses the sample
|
||||
# library (CLIPBIN_SAMPLE_LIBRARY) except for "empty".
|
||||
set -euo pipefail
|
||||
|
||||
repo="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
out="${1:-${TMPDIR:-/tmp}/clipbin-screens}"
|
||||
shift || true
|
||||
screens=("$@")
|
||||
[[ ${#screens[@]} -eq 0 ]] && screens=(sessions session clips settings failed empty)
|
||||
mkdir -p "${out}"
|
||||
|
||||
cargo build --locked -p clipbin-desktop --manifest-path "${repo}/Cargo.toml"
|
||||
app="${repo}/target/debug/clipbin-desktop"
|
||||
|
||||
for screen in "${screens[@]}"; do
|
||||
env=(CLIPBIN_SAMPLE_LIBRARY=1)
|
||||
case "${screen}" in
|
||||
sessions) ;;
|
||||
session) env+=(CLIPBIN_ROUTE=session:2) ;;
|
||||
clips) env+=(CLIPBIN_ROUTE=clips) ;;
|
||||
settings) env+=(CLIPBIN_ROUTE=settings) ;;
|
||||
failed) env+=(CLIPBIN_SAMPLE_STATUS=failed) ;;
|
||||
empty) env=() ;;
|
||||
*) echo "unknown screen ${screen}" >&2; exit 2 ;;
|
||||
esac
|
||||
CLIPBIN_RIG_WIDTH="${CLIPBIN_RIG_WIDTH:-1600}" CLIPBIN_RIG_HEIGHT="${CLIPBIN_RIG_HEIGHT:-1000}" \
|
||||
"${repo}/scripts/rig/headless.sh" bash -c "
|
||||
kill \$(cat \"\${CLIPBIN_RIG_DIR}/game.pid\")
|
||||
env ${env[*]} '${app}' > '${out}/${screen}.log' 2>&1 &
|
||||
sleep 3
|
||||
grim '${out}/${screen}.png'
|
||||
kill %1" 2> /dev/null
|
||||
echo "${out}/${screen}.png"
|
||||
done
|
||||
Reference in New Issue
Block a user