piframe/docs/slideshow.md

54 lines
1.7 KiB
Markdown

# Slideshow
The below commands will setup ```fim``` as a slideshow on your display.
## Important Notes
* ```fim``` will crash if there are no photos for it to use as a slideshow
* You will likely want to tweak the ```fim``` command invocation below. These are great settings as a starting point but you'll probably want to make adjustments for your use case.
* This setup uses ```incron``` to restart ```fim``` when photos are deleted from the pictures folder. Without this piece ```fim``` will crash if a picture is removed from the pictures directory prior to ```fim``` rescaning the pictures directory.
## Setup
``` sh
useradd -m -G video -s /usr/sbin/nologin fim
apt install acl
setfacl -m "u:fim:rX" /tank/pictures
setfacl -dm "u:fim:rX" /tank/pictures
apt install fim imagemagick ttf-dejavu
cat > /home/fim/.fimrc <<EOF
_display_status_fmt="%N %?EXIF_DateTimeOriginal?[%:EXIF_DateTimeOriginal:]?";
_info_fmt_str="";
EOF
cat > /usr/local/bin/fim-slideshow.sh <<EOF
#!/bin/bash
/usr/bin/fim -a --cd-and-readdir --slideshow 300 -d /dev/fb0 -T 1 -u -r --no-history --no-commandline /tank/pictures
EOF
chmod a+x /usr/local/bin/fim-slideshow.sh
cat > /etc/systemd/system/fim.service <<EOF
[Unit]
Description=fim slideshow
After=network.target
[Service]
User=fim
PrivateTmp=true
ExecStart=/usr/local/bin/fim-slideshow.sh
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl stop getty@tty1
systemctl disable getty@tty1
systemctl enable --now fim
apt install incron
cat > /etc/incron.d/feh <<EOF
/tank/pictures IN_DELETE systemctl restart fim
EOF
systemctl enable --now incrond
systemctl restart incrond
```