#!/bin/bash # Start X server in the background /usr/bin/Xorg :0 -nocursor vt1 -nolisten tcp -keeptty & XPID=$! sleep 2 # Check if X started if ! kill -0 $XPID 2>/dev/null; then echo 'ERROR: Xorg failed to start' exit 1 fi export DISPLAY=:0 export HOME=/home/archipelago # Allow archipelago user to connect xhost +SI:localuser:archipelago 2>/dev/null # Disable screen blanking xset s off 2>/dev/null xset -dpms 2>/dev/null xset s noblank 2>/dev/null # Hide cursor unclutter -idle 3 -root & # Kill any stale Chromium instances before starting pkill -u archipelago -f 'chromium.*kiosk' 2>/dev/null sleep 1 # Run Chromium as archipelago user in a restart loop while true; do sudo -u archipelago env DISPLAY=:0 HOME=/home/archipelago chromium --kiosk \ --app=http://localhost/kiosk \ --noerrdialogs \ --disable-infobars \ --disable-translate \ --no-first-run \ --check-for-update-interval=31536000 \ --disable-features=TranslateUI,MetricsReporting,AutofillServerCommunication,PasswordManagerEnabled \ --disable-session-crashed-bubble \ --disable-save-password-bubble \ --disable-suggestions-service \ --disable-component-update \ --enable-gpu-rasterization \ --num-raster-threads=2 \ --renderer-process-limit=2 \ --window-size=9999,9999 \ --window-position=0,0 \ --start-fullscreen \ --disable-background-networking \ --disable-background-timer-throttling \ --disable-backgrounding-occluded-windows \ --disable-breakpad \ --disable-metrics \ --disable-metrics-reporting \ --disable-domain-reliability \ --js-flags="--max-old-space-size=128" \ --user-data-dir=/var/lib/archipelago/chromium-kiosk sleep 3 done # Cleanup kill $XPID 2>/dev/null