Der plan ist für eine – ja genau eine bestimmte – Anwendung einen Pi aufzusetzen, der innerhalb eines Ordners Bilder als Slideshow zeigt und beim Anstecken eines USB Sticks mit Bildern diese lokal kopiert und dann diese als neue Slideshow nimmt.
Was braucht man:
- Raspberry Pi mit Raspian und folgenden paketen:
- feh, nodm, xutils (xset)
Das ganze läuft unter dem User “pictures” also legen wir diesen an, ob mit oder ohne Passwort, alles egal. Auf jeden Fall wird der in nodm (/etc/default/nodm) als startuser eingetragen (das sind nur die geänderten Zeilen):
NODM_ENABLED=true NODM_USER=picture
Dann bekommt der user picture ein .xession:
xset s off xset -dpms xset s noblank feh --quiet --fullscreen --borderless \\ --hide-pointer --slideshow-delay 30 \\ /home/picture/Pictures
Dass die entsprechenden Directories existieren müssen ist klar, oder?
So, jetzt fehlt nur noch ein Script um beim Anstecken eines Dongles, den Inhalt auf die SD Karte zu kopieren:
/etc/udev/rules.d/usbstick.rules enthält:
ACTION=="add", KERNEL=="sd[a-z][0-9]", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbstick-handler@%k"
Der usbstick handler ist in /lib/systemd/system/usbstick-handler@.service:
[Unit] Description=Mount USB sticks BindsTo=dev-%i.device After=dev-%i.device [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/local/bin/automount %I ExecStop=/usr/bin/pumount /dev/%I
Es gibt ein /usr/local/bin/automount:
#!/bin/bash PART=$1 rm -r /home/picture/Pictures/* /usr/bin/pmount --umask 000 --noatime -w --sync /dev/${PART} /media/usb cp -r /media/usb/* /home/picture/Pictures/ /usr/bin/pumount /dev/${PART} killall -HUP feh
So, was könnte man da nicht noch alles machen: ne Taste anschliessen, eine Script, das das alles steuert auch mit vom USB Stick laden, ein Fallback bildchen… aber mei. S’geht ja schon…
“Wie, und das war jetzt supasimple????”