set -euo pipefail
dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [[ -z "${WSI_F12_INNER:-}" ]]; then
dub build --root="$dir"
adw="$(nix build --no-link --print-out-paths nixpkgs#adwaita-icon-theme)"
exec nix shell nixpkgs#xdotool --command \
xvfb-run -a env WSI_F12_INNER=1 WSI_ADWAITA="$adw" "$0"
fi
demo="$dir/build/f12_cursors_x11"
icons="$WSI_ADWAITA/share/icons"
echo "=== pass A: bare (no theme reachable) ==="
env -u XCURSOR_THEME -u XCURSOR_PATH -u XCURSOR_SIZE \
WSI_AUTO_EXIT=1 WSI_DURATION_MS=6500 "$demo"
echo "=== pass B: Adwaita, size unset ==="
env -u XCURSOR_SIZE XCURSOR_THEME=Adwaita XCURSOR_PATH="$icons" \
WSI_AUTO_EXIT=1 WSI_DURATION_MS=1500 WSI_NO_WARP=1 "$demo"
echo "=== pass C: Adwaita, XCURSOR_SIZE=16 ==="
env XCURSOR_THEME=Adwaita XCURSOR_PATH="$icons" XCURSOR_SIZE=16 \
WSI_AUTO_EXIT=1 WSI_DURATION_MS=1500 WSI_NO_WARP=1 "$demo"
echo "=== pass D: Adwaita, XCURSOR_SIZE=48, full storm ==="
env XCURSOR_THEME=Adwaita XCURSOR_PATH="$icons" XCURSOR_SIZE=48 \
WSI_AUTO_EXIT=1 WSI_DURATION_MS=6500 "$demo"
echo "=== pass E: Adwaita, xdotool-driven ==="
env XCURSOR_THEME=Adwaita XCURSOR_PATH="$icons" XCURSOR_SIZE=48 \
WSI_AUTO_EXIT=1 WSI_DURATION_MS=8000 WSI_NO_WARP=1 "$demo" &
pid=$!
sleep 1.5
for z in 0 4 1 4 2 4 3 4 5 4 6 7 8; do
x=$((21 + (z % 3) * 160 + 80))
y=$((21 + (z / 3) * 160 + 80))
xdotool mousemove "$x" "$y"
sleep 0.35
done
wait "$pid"