diff --git a/kiosk_skeleton/boot/kioskbrowser.ini b/kiosk_skeleton/boot/kioskbrowser.ini index 28d58e2..662ace2 100644 --- a/kiosk_skeleton/boot/kioskbrowser.ini +++ b/kiosk_skeleton/boot/kioskbrowser.ini @@ -17,6 +17,8 @@ reboot_time = 04:00 ; configure screen to power on/off as specific time of day (time format in 24 hours) ;screen_off_time=23:00 ;screen_on_time=07:00 +; configure chrome to refresh the page every x minutes +;refresh_screen_every_x_min=15 [wifi] ; If you need more complex WiFi settings (like WPA2-Enterprise, hidden SSIDs, etc.) diff --git a/kiosk_skeleton/build.sh b/kiosk_skeleton/build.sh index 5d7586c..643c850 100755 --- a/kiosk_skeleton/build.sh +++ b/kiosk_skeleton/build.sh @@ -80,6 +80,7 @@ systemctl enable nginx systemctl enable ssh systemctl enable kiosk-sechedule-screen.service systemctl enable schedule-reboot.service +systemctl enable screen-refresh.service # generate a version info/build info file diff --git a/kiosk_skeleton/etc/systemd/system/screen-refresh.service b/kiosk_skeleton/etc/systemd/system/screen-refresh.service new file mode 100644 index 0000000..31a0c4c --- /dev/null +++ b/kiosk_skeleton/etc/systemd/system/screen-refresh.service @@ -0,0 +1,10 @@ +[Unit] +Description=Refresh Screen +After=graphical.target + +[Service] +Type=oneshot +User=pi +Environment=DISPLAY=:0 +Environment=XAUTHORITY=/home/pi/.Xauthority +ExecStart=/usr/bin/refresh-screen \ No newline at end of file diff --git a/kiosk_skeleton/usr/bin/refresh-screen b/kiosk_skeleton/usr/bin/refresh-screen new file mode 100644 index 0000000..e40c0c3 --- /dev/null +++ b/kiosk_skeleton/usr/bin/refresh-screen @@ -0,0 +1,4 @@ +#!/bin/bash + +export DISPLAY=:0 +/usr/bin/xdotool key F5 \ No newline at end of file diff --git a/kiosk_skeleton/usr/bin/setup-refresh-timer b/kiosk_skeleton/usr/bin/setup-refresh-timer new file mode 100644 index 0000000..c3c8305 --- /dev/null +++ b/kiosk_skeleton/usr/bin/setup-refresh-timer @@ -0,0 +1,41 @@ +#!/bin/bash + +INI_FILE="/boot/kioskbrowser.ini" +REFRESH_INTERVAL=$(awk -F '=' '/^\[screen\]/ { in_screen=1; next } + in_screen && /^\[/ { in_screen=0 } + in_screen && $1 ~ /refresh_screen_every_x_min/ { gsub(/ /, "", $2); print $2 }' "$INI_FILE") + +# Safely check if REFRESH_INTERVAL is a positive integer +if [[ "$REFRESH_INTERVAL" =~ ^[0-9]+$ ]] && (( REFRESH_INTERVAL > 0 )); then + echo "Setting up screen refresh every $REFRESH_INTERVAL minutes..." + + SERVICE_UNIT="/etc/systemd/system/screen-refresh.service" + TIMER_UNIT="/etc/systemd/system/screen-refresh.timer" + + cat < /dev/null +[Unit] +Description=Refresh Screen + +[Service] +Type=oneshot +ExecStart=/usr/bin/refresh-screen +EOF + + cat < /dev/null +[Unit] +Description=Run screen refresh every $REFRESH_INTERVAL minutes + +[Timer] +OnBootSec=1min +OnUnitActiveSec=${REFRESH_INTERVAL}min +Persistent=false + +[Install] +WantedBy=timers.target +EOF + + sudo systemctl daemon-reload + sudo systemctl enable --now screen-refresh.timer +else + echo "Invalid or missing refresh interval" +fi \ No newline at end of file