commits
tags
#!/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