#!/usr/bin/env bash
# sway-apps.sh — startar chromium på rätt workspace när sway är redo.
# Körs via "exec" i sway.conf.

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONF="$SCRIPT_DIR/kiosk.conf"

# Vänta tills WiFi-adapter har en IP-adress (max 40 s)
LOCAL_IP=""
for _i in $(seq 1 40); do
  LOCAL_IP=$(ip route get 8.8.8.8 2>/dev/null \
    | awk '{for(i=1;i<=NF;i++) if($i=="src"){print $(i+1);exit}}')
  [ -n "$LOCAL_IP" ] && [ "$LOCAL_IP" != "127.0.0.1" ] && break
  sleep 1
done
[ -z "$LOCAL_IP" ] && LOCAL_IP="localhost"

KIOSK_URL="http://${LOCAL_IP}:5000/display"
ADMIN_URL="http://${LOCAL_IP}:5000/admin"
KIOSK_INTERNAL_DISPLAY="on"

if [ -f "$CONF" ]; then
  # shellcheck disable=SC1090
  . "$CONF"
fi

CHROMIUM_FLAGS="--kiosk --ozone-platform=wayland --noerr --no-first-run \
  --disable-infobars --disable-session-crashed-bubble \
  --disable-features=Translate --disable-web-security \
  --autoplay-policy=no-user-gesture-required --no-sandbox \
  --disable-background-timer-throttling \
  --disable-renderer-backgrounding \
  --disable-backgrounding-occluded-windows"

# Vänta tills kiosk-servern svarar
until curl -sf -o /dev/null "$KIOSK_URL" 2>/dev/null; do sleep 1; done

# --- Pre-seed Chromium-profil: stäng av translate ---
mkdir -p /tmp/kiosk-display/Default
python3 - <<'PYEOF'
import json, os
f = '/tmp/kiosk-display/Default/Preferences'
p = json.load(open(f)) if os.path.exists(f) else {}
p.setdefault('translate', {})['enabled'] = False
p.setdefault('translate_blocked_languages', ['sv','en'])
json.dump(p, open(f, 'w'))
PYEOF

# --- Workspace 1 (HDMI-A-1): kiosk-display ---
swaymsg workspace 1
sleep 0.3
swaymsg exec "chromium $CHROMIUM_FLAGS \
  --user-data-dir=/tmp/kiosk-display \
  $KIOSK_URL"

# --- Workspace 2 (eDP-1): admin ---
if [ "$KIOSK_INTERNAL_DISPLAY" = "on" ]; then
  sleep 1
  swaymsg workspace 2
  sleep 0.3
  swaymsg exec "chromium $CHROMIUM_FLAGS \
    --user-data-dir=/tmp/kiosk-admin \
    $ADMIN_URL"
fi

# Återvänd fokus till kiosk-display
sleep 1
swaymsg workspace 1
