enable being able to refresh screen evey x mins

This commit is contained in:
Karl 2025-06-02 12:11:07 +01:00
parent b838cc1acd
commit 4069c8d625
5 changed files with 58 additions and 0 deletions

View File

@ -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.)

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,4 @@
#!/bin/bash
export DISPLAY=:0
/usr/bin/xdotool key F5

View File

@ -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 <<EOF | sudo tee "$SERVICE_UNIT" > /dev/null
[Unit]
Description=Refresh Screen
[Service]
Type=oneshot
ExecStart=/usr/bin/refresh-screen
EOF
cat <<EOF | sudo tee "$TIMER_UNIT" > /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