Initial
This commit is contained in:
100
showslide.sh
Normal file
100
showslide.sh
Normal file
@@ -0,0 +1,100 @@
|
||||
#!/bin/bash
|
||||
##
|
||||
# Zeigt zufaellig ausgesuchte Dateien aus einem Verzeichnis im Vollbild an
|
||||
#
|
||||
# Reagiert auf Dateien in SIGNALDIR:
|
||||
# abbruch = Abbruch des Scripts nach aktuellem Bild/Film
|
||||
#
|
||||
# 2024-01-26, misc
|
||||
# 2024-02-08, misc: timeout raus, staendige Schleife mit Reaktionsmoeglichkeit
|
||||
#
|
||||
|
||||
WORKDIR="/home/misc/sc/workdir"
|
||||
SIGNALDIR="/home/misc/sc/signals"
|
||||
PICTIME=90 # wie lange soll ein Bild stehen bleiben
|
||||
MOVTIME=90 # wie lange soll ein Film stehen bleiben
|
||||
WEBTIME=90 # wie lange sollen Webseiten stehen bleiben
|
||||
|
||||
HASSURL="https://hass.xxx.de/dashboard-datendashboard/0" # URL für Home Assistant Dashboard
|
||||
NIEDURL="https://www.niederschlagsradar.de/de-de/region/8000203" # URL für Niederschlagsradar
|
||||
|
||||
if [ $XDG_SESSION_TYPE == "wayland" ]; then
|
||||
|
||||
sleep 5; # warten nach Start
|
||||
cd /home/misc/bilder
|
||||
LOOP=1
|
||||
|
||||
while [ $LOOP -eq 1 ]; do
|
||||
PID=9999999
|
||||
|
||||
if [ "x-$URL" == "x-" ]; then
|
||||
# Naechster Dateiname per Zufall bestimmen und loggen
|
||||
FILE=`ls | sort -R | tail -1`
|
||||
EXT=${FILE##*.}
|
||||
echo `/bin/date "+%Y-%m-%d %H:%M:%S"` $FILE >> $WORKDIR/shown.log
|
||||
else # URL soll angezeigt werden
|
||||
EXT="URL"
|
||||
echo `/bin/date "+%Y-%m-%d %H:%M:%S"` $URL >> $WORKDIR/shown.log
|
||||
fi
|
||||
|
||||
# Nach Endung mit richtigem Programm aufrufen
|
||||
case $EXT in
|
||||
jpg | JPG | gif | GIF | png | PNG | jpeg | JPEG)
|
||||
# timeout $PICTIME swayimg -f --scale=fit "$FILE"
|
||||
swayimg -f --scale=fit "$FILE" &
|
||||
PID=$!
|
||||
SHOWTIME=$PICTIME
|
||||
;;
|
||||
|
||||
MOV | mov | MP4 | mp4)
|
||||
# timeout $MOVTIME vlc -f --repeat --no-video-title --no-audio "$FILE"
|
||||
vlc -f --repeat --no-video-title --no-audio "$FILE" &
|
||||
PID=$!
|
||||
SHOWTIME=$MOVTIME
|
||||
;;
|
||||
|
||||
URL)
|
||||
chromium-browser "$URL" --kiosk --start-maximized &
|
||||
PID=$!
|
||||
SHOWTIME=$WEBTIME
|
||||
URL=""
|
||||
;;
|
||||
|
||||
*)
|
||||
# unbekannte ext, wir machen nix aber loggen
|
||||
echo `/bin/date "+%Y-%m-%d %H:%M:%S"` $FILE >> $WORKDIR/notshown.log
|
||||
;;
|
||||
esac
|
||||
|
||||
# echo `/bin/date "+%Y-%m-%d %H:%M:%S"` $PID > $WORKDIR/pid.log
|
||||
COUNTER=0
|
||||
while kill -0 $PID 2> /dev/null; do
|
||||
((COUNTER++))
|
||||
|
||||
if [ $COUNTER -gt $SHOWTIME ]; then
|
||||
kill -15 $PID
|
||||
else
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
if [ -e $SIGNALDIR/hass ]; then
|
||||
rm $SIGNALDIR/hass
|
||||
kill -15 $PID
|
||||
URL=$HASSURL
|
||||
fi
|
||||
|
||||
if [ -e $SIGNALDIR/niederschlag ]; then
|
||||
rm $SIGNALDIR/niederschlag
|
||||
kill -15 $PID
|
||||
URL=$NIEDURL
|
||||
fi
|
||||
|
||||
if [ -e $SIGNALDIR/abbruch ]; then
|
||||
rm $SIGNALDIR/abbruch
|
||||
kill -15 $PID # kill SIGTERM, geht meist
|
||||
LOOP=0
|
||||
fi
|
||||
done; # solange PID aktiv
|
||||
done; # LOOP
|
||||
|
||||
fi
|
||||
Reference in New Issue
Block a user