#!/usr/bin/env bash
set -euo pipefail
# Run inside the same headless-desktop session as the real Electron app.
# Arguments: output directory, side (base/head), mode (hold/double).
out="$1/$(date -u +%Y%m%dT%H%M%S)-$2-$3"
mkdir -p "$out"
window=$(xdotool search --onlyvisible --name '^T3 Code' | head -1)
xdotool windowfocus --sync "$window"
xdotool mousemove 1850 1000
ffmpeg -y -loglevel error -f x11grab -framerate 30 -video_size 1920x1080 -i "$DISPLAY" -c:v libx264 -preset ultrafast -crf 20 -pix_fmt yuv420p "$out/raw.mp4" > "$out/record.log" 2>&1 &
recorder=$!
sleep 2
if [ "$3" = hold ]; then
  xset r rate 300 30
  xdotool keydown Control_L keydown q
  sleep 2
  xdotool keyup q keyup Control_L
else
  xdotool key --delay 40 ctrl+q ctrl+q
fi
sleep 5
kill -INT "$recorder" 2>/dev/null || true
wait "$recorder" || true
ffmpeg -y -loglevel error -i "$out/raw.mp4" -vf "drawbox=x=0:y=66:w=615:h=60:color=black:t=fill,drawbox=x=0:y=990:w=iw:h=90:color=black:t=fill,drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:text='$2 - Linux Electron 44.10.1 - 1920x1080 - light theme':x=30:y=1004:fontsize=24:fontcolor=white,drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:text='Quit mode Hold | $3 Ctrl-Q interaction begins at 2 seconds':x=30:y=1040:fontsize=22:fontcolor=white" -c:v libx264 -crf 20 -pix_fmt yuv420p -movflags +faststart "$out/recording.mp4"
echo "$out"
