Files
Kiosk-on-Debian/rotate.sh
T
2026-06-26 14:51:25 +02:00

103 lines
3.3 KiB
Bash

#!/bin/bash
export DISPLAY=:0
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
CSV_FILE="$SCRIPT_DIR/playlist.csv"
time_to_minutes() {
local hh=$(echo "$1" | cut -d: -f1)
local mm=$(echo "$1" | cut -d: -f2)
echo $(( 10#$hh * 60 + 10#$mm ))
}
while true; do
if [ ! -f "$CSV_FILE" ]; then
sleep 10
continue
fi
NOW_STR=$(date +"%H:%M")
NOW=$(time_to_minutes "$NOW_STR")
tail -n +2 "$CSV_FILE" | while IFS=';' read -r dauer von bis zoom_prozent url; do
dauer=$(echo "$dauer" | tr -d '\r' | xargs)
von=$(echo "$von" | tr -d '\r' | xargs)
bis=$(echo "$bis" | tr -d '\r' | xargs)
zoom_prozent=$(echo "$zoom_prozent" | tr -d '\r' | xargs)
url=$(echo "$url" | tr -d '\r' | xargs)
[ -z "$url" ] && continue
if [ -z "$zoom_prozent" ] || [ "$zoom_prozent" -eq 0 ]; then
zoom_prozent="100"
fi
if [ "$zoom_prozent" -eq 100 ]; then
zoom_factor="1.0"
elif [ ${#zoom_prozent} -eq 2 ]; then
zoom_factor="0.$zoom_prozent"
else
vorkomma=$(echo "$zoom_prozent" | sed 's/..$//')
nachkomma=$(echo "$zoom_prozent" | grep -o '..$')
zoom_factor="${vorkomma}.${nachkomma}"
fi
START=$(time_to_minutes "$von")
END=$(time_to_minutes "$bis")
IN_WINDOW=0
if [ $START -le $END ]; then
if [ $NOW -ge $START ] && [ $NOW -le $END ]; then
IN_WINDOW=1
fi
else
if [ $NOW -ge $START ] || [ $NOW -le $END ]; then
IN_WINDOW=1
fi
fi
if [ $IN_WINDOW -eq 1 ]; then
# Monitor aufwachen lassen & Cursor verstecken erzwingen
xset s off
xset s noblank
xset -dpms
xset dpms force on
xsetroot -cursor_name blank
# Stoppe laufende Instanzen (ohne dieses Skript selbst zu killen)
pkill -9 -v -f "$$" -f chromium
pkill -9 -v -f "$$" -f brave
# ==========================================
# BROWSER-AUSWAHL (Hier flexibel umschalten)
# ==========================================
# OPTION A: Brave Browser (Inkl. nativem Cookie-Blocker)
brave-browser --kiosk --no-first-run --new-window \
--ignore-certificate-errors \
--test-type \
--force-device-scale-factor="$zoom_factor" \
--user-data-dir=/tmp/brave-kiosk \
--disk-cache-dir=/tmp/brave-cache --disk-cache-size=1 \
--enable-features=BraveAdblockCookieListCp \
--autoplay-policy=no-user-gesture-required \
"$url" &
# OPTION B: Chromium (Falls gewünscht, Zeile oben auskommentieren und hier die Raute entfernen)
#chromium --kiosk --no-first-run --new-window \
# --ignore-certificate-errors \
# --test-type \
# --force-device-scale-factor="$zoom_factor" \
# --user-data-dir=/tmp/chromium-kiosk \
# --disk-cache-dir=/tmp/chromium-cache --disk-cache-size=1 \
# --autoplay-policy=no-user-gesture-required \
# --lang=de-DE \
# --accept-lang=de-DE,de,en-US,en \
# "$url" &
sleep "$dauer"
fi
done
done