38 lines
1.1 KiB
Bash
38 lines
1.1 KiB
Bash
#!/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
|