#!/bin/bash # kiosk-wrapper: uruchamiany jako root set -e XDG_RUNTIME_DIR=/run/kiosk WAYLAND_DISPLAY=${WAYLAND_DISPLAY:-wayland-0} DPMS_PIPE=/run/kiosk-dpms DPMS_FILE=$(find /sys/class/drm -maxdepth 2 -name "dpms" 2>/dev/null \ | xargs grep -l "^On" 2>/dev/null | head -n1) mkdir -p "$XDG_RUNTIME_DIR" chown kiosk:kiosk "$XDG_RUNTIME_DIR" || true chmod 0700 "$XDG_RUNTIME_DIR" || true # Usuń stary pipe jeśli istnieje rm -f "$DPMS_PIPE" mkfifo -m 0666 "$DPMS_PIPE" # Demon DPMS (root) — czyta polecenia on/off z pipe i zapisuje do sysfs # Działa w tle przez cały czas życia serwisu ( while true; do if read -r cmd < "$DPMS_PIPE"; then case "$cmd" in off) echo -n "Off" > "$DPMS_FILE" 2>/dev/null ;; on) echo -n "On" > "$DPMS_FILE" 2>/dev/null ;; esac fi done ) & DPMS_DAEMON_PID=$! export XDG_RUNTIME_DIR export WAYLAND_DISPLAY export DPMS_PIPE # Uruchom cage; po jego zakończeniu zabij demona trap "kill $DPMS_DAEMON_PID 2>/dev/null; rm -f $DPMS_PIPE" EXIT exec /usr/bin/cage -s -- /home/kiosk/kiosk-manager.sh