Update to use Go based UI
This commit is contained in:
parent
926435f924
commit
d260b81ed4
|
@ -20,10 +20,10 @@ cat > /etc/monit/conf.d/tankfs <<EOF
|
||||||
check filesystem tankfs with path /tank
|
check filesystem tankfs with path /tank
|
||||||
if space usage > 80% then alert
|
if space usage > 80% then alert
|
||||||
EOF
|
EOF
|
||||||
cat > /etc/monit/conf.d/fim <<EOF
|
cat > /etc/monit/conf.d/pf-ui <<EOF
|
||||||
check process fim matching /usr/bin/fim
|
check process pf-ui matching /usr/local/bin/pf-ui
|
||||||
start program = "/usr/bin/systemctl start fim"
|
start program = "/usr/bin/systemctl start pf-ui"
|
||||||
stop program = "/usr/bin/systemctl stop fim"
|
stop program = "/usr/bin/systemctl stop pf-ui"
|
||||||
if does not exist then alert
|
if does not exist then alert
|
||||||
if does not exist for 2 cycles then restart
|
if does not exist for 2 cycles then restart
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -12,174 +12,52 @@ The below commands will setup ```fim``` as a slideshow on your display.
|
||||||
|
|
||||||
``` sh
|
``` sh
|
||||||
|
|
||||||
|
# Setup UI binary
|
||||||
|
DL_URL=$(curl https://git.kemonine.info/api/v1/repos/PiFrame/piframe-go/releases | jq -r '.[0].assets[] | select(.name == "ui") | .browser_download_url')
|
||||||
|
wget $DL_URL -O /usr/local/bin/pf-ui
|
||||||
|
chmod a+x /usr/local/bin/pf-ui
|
||||||
|
|
||||||
|
# Setup systemd service for UI
|
||||||
|
mkdir /etc/systemd/system/getty@tty1.service.d/
|
||||||
|
cat > /etc/systemd/system/getty@tty1.service.d/override.conf <<EOF
|
||||||
|
[Service]
|
||||||
|
ExecStart=
|
||||||
|
ExecStart=-/usr/local/bin/pf-ui
|
||||||
|
StandardInput=tty
|
||||||
|
StandardOutput=tty
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Add fim user and setup fim
|
||||||
useradd -m -G video -s /usr/sbin/nologin fim
|
useradd -m -G video -s /usr/sbin/nologin fim
|
||||||
apt install acl
|
apt install acl
|
||||||
setfacl -m "u:fim:rwX" /tank/pictures
|
setfacl -m "u:fim:rwX" /tank/pictures
|
||||||
setfacl -dm "u:fim:rwX" /tank/pictures
|
setfacl -dm "u:fim:rwX" /tank/pictures
|
||||||
apt install fim imagemagick ttf-dejavu
|
apt install fim imagemagick ttf-dejavu
|
||||||
cat > /home/fim/.fimrc <<EOF
|
cat > /usr/local/etc/fimrc <<EOF
|
||||||
# Ensure simages are auto-centered on the screen
|
# Ensure simages are auto-centered on the screen
|
||||||
_want_autocenter=1;
|
_want_autocenter=1;
|
||||||
# Reduce the amount of ram used by dialing back the image cache
|
# Reduce the amount of ram used by dialing back the image cache
|
||||||
_max_cached_images=1;
|
_max_cached_images=1;
|
||||||
# Rotate screen if the display used (CONFU 5.5 in particular) isn't rotated proper
|
# Rotate screen if the display used (CONFU 5.5 in particular) isn't rotated proper
|
||||||
#_orientation=1;
|
#_orientation=2;
|
||||||
# Turn on/off status bar and similar
|
# Turn on/off status bar and similar
|
||||||
_display_busy=0;
|
_display_busy=0;
|
||||||
_display_console=0;
|
_display_console=0;
|
||||||
_display_status=0;
|
_display_status=0;
|
||||||
_display_status_bar=0;
|
_display_status_bar=0;
|
||||||
_display_status_fmt=0;
|
_display_status_fmt=0;
|
||||||
unbind " ";
|
|
||||||
unbind "!";
|
|
||||||
unbind """;
|
|
||||||
unbind "#";
|
|
||||||
unbind "$";
|
|
||||||
unbind "%";
|
|
||||||
unbind "&";
|
|
||||||
unbind "’";
|
|
||||||
unbind "(";
|
|
||||||
unbind ")";
|
|
||||||
unbind "*";
|
|
||||||
unbind "+";
|
|
||||||
unbind ",";
|
|
||||||
unbind "-";
|
|
||||||
unbind ".";
|
|
||||||
unbind "/";
|
|
||||||
unbind "0";
|
|
||||||
unbind "1";
|
|
||||||
unbind "2";
|
|
||||||
unbind "3";
|
|
||||||
unbind "4";
|
|
||||||
unbind "5";
|
|
||||||
unbind "6";
|
|
||||||
unbind "7";
|
|
||||||
unbind "8";
|
|
||||||
unbind "9";
|
|
||||||
unbind ":";
|
|
||||||
unbind ";";
|
|
||||||
unbind "<";
|
|
||||||
unbind "=";
|
|
||||||
unbind ">";
|
|
||||||
unbind "?";
|
|
||||||
unbind "@";
|
|
||||||
unbind "A";
|
|
||||||
unbind "Any";
|
|
||||||
unbind "B";
|
|
||||||
unbind "BackSpace";
|
|
||||||
unbind "Backspace";
|
|
||||||
unbind "C";
|
|
||||||
unbind "C-a";
|
|
||||||
unbind "C-b";
|
|
||||||
unbind "C-c";
|
|
||||||
unbind "C-d";
|
|
||||||
unbind "C-e";
|
|
||||||
unbind "C-f";
|
|
||||||
unbind "C-g";
|
|
||||||
unbind "C-h";
|
|
||||||
unbind "C-i";
|
|
||||||
unbind "C-j";
|
|
||||||
unbind "C-k";
|
|
||||||
unbind "C-l";
|
|
||||||
unbind "C-m";
|
|
||||||
unbind "C-n";
|
|
||||||
unbind "C-o";
|
|
||||||
unbind "C-p";
|
|
||||||
unbind "C-q";
|
|
||||||
unbind "C-r";
|
|
||||||
unbind "C-s";
|
|
||||||
unbind "C-t";
|
|
||||||
unbind "C-u";
|
|
||||||
unbind "C-v";
|
|
||||||
unbind "C-w";
|
|
||||||
unbind "C-x";
|
|
||||||
unbind "C-y";
|
|
||||||
unbind "C-z";
|
|
||||||
unbind "D";
|
|
||||||
unbind "Del";
|
|
||||||
unbind "Down";
|
|
||||||
unbind "E";
|
|
||||||
unbind "End";
|
|
||||||
unbind "Enter";
|
|
||||||
unbind "Esc";
|
|
||||||
unbind "F";
|
|
||||||
unbind "G";
|
|
||||||
unbind "H";
|
|
||||||
unbind "Home";
|
|
||||||
unbind "I";
|
|
||||||
unbind "Ins";
|
|
||||||
unbind "J";
|
|
||||||
unbind "K";
|
|
||||||
unbind "L";
|
|
||||||
unbind "Left";
|
|
||||||
unbind "M";
|
|
||||||
unbind "N";
|
|
||||||
unbind "O";
|
|
||||||
unbind "P";
|
|
||||||
unbind "PageDown";
|
|
||||||
unbind "PageUp";
|
|
||||||
unbind "Q";
|
|
||||||
unbind "R";
|
|
||||||
unbind "Right";
|
|
||||||
unbind "S";
|
|
||||||
unbind "T";
|
|
||||||
unbind "Tab";
|
|
||||||
unbind "U";
|
|
||||||
unbind "Up";
|
|
||||||
unbind "V";
|
|
||||||
unbind "W";
|
|
||||||
unbind "X";
|
|
||||||
unbind "Y";
|
|
||||||
unbind "Z";
|
|
||||||
unbind "[";
|
|
||||||
unbind "\";
|
|
||||||
unbind "]";
|
|
||||||
unbind "^";
|
|
||||||
unbind "_";
|
|
||||||
unbind "’";
|
|
||||||
unbind "a";
|
|
||||||
unbind "b";
|
|
||||||
unbind "c";
|
|
||||||
unbind "d";
|
|
||||||
unbind "e";
|
|
||||||
unbind "f";
|
|
||||||
unbind "g";
|
|
||||||
unbind "h";
|
|
||||||
unbind "i";
|
|
||||||
unbind "j";
|
|
||||||
unbind "k";
|
|
||||||
unbind "l";
|
|
||||||
unbind "m";
|
|
||||||
unbind "n";
|
|
||||||
unbind "o";
|
|
||||||
unbind "p";
|
|
||||||
unbind "q";
|
|
||||||
unbind "r";
|
|
||||||
unbind "s";
|
|
||||||
unbind "t";
|
|
||||||
unbind "u";
|
|
||||||
unbind "v";
|
|
||||||
unbind "w";
|
|
||||||
unbind "x";
|
|
||||||
unbind "y";
|
|
||||||
unbind "z";
|
|
||||||
unbind "{";
|
|
||||||
unbind "|";
|
|
||||||
unbind "}";
|
|
||||||
unbind "~";
|
|
||||||
EOF
|
EOF
|
||||||
cat > /etc/default/fim_album <<EOF
|
cat > /etc/default/fim_albums <<EOF
|
||||||
/tank/pictures
|
/tank/pictures
|
||||||
EOF
|
EOF
|
||||||
cat > /etc/default/fim_album_index <<EOF
|
cat > /usr/local/bin/pf-fim.sh <<EOF
|
||||||
0
|
|
||||||
EOF
|
|
||||||
cat > /usr/local/bin/fim-slideshow.sh <<EOF
|
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
ALBUM_PATH=\`cat /etc/default/fim_album\`
|
chvt 1
|
||||||
# options inspiration: https://www.raspberrypi.org/forums/viewtopic.php?t=196043
|
|
||||||
tput civis
|
tput civis
|
||||||
/usr/bin/fim --verbose --no-commandline --no-history \
|
exec </dev/tty1 >/dev/tty1 2>/dev/tty1
|
||||||
|
#echo 2 > /sys/class/graphics/fbcon/rotate_all
|
||||||
|
ALBUM_PATH=\`cat /etc/default/fim_albums\`
|
||||||
|
/usr/bin/fim --verbose --no-commandline --no-history --etc-fimrc /usr/local/etc/fimrc \
|
||||||
--device /dev/fb0 --vt 1 \
|
--device /dev/fb0 --vt 1 \
|
||||||
--execute-commands-early "clear" --final-commands "clear" \
|
--execute-commands-early "clear" --final-commands "clear" \
|
||||||
--execute-commands 'while(1){display;sleep "300";next;}' \
|
--execute-commands 'while(1){display;sleep "300";next;}' \
|
||||||
|
@ -187,24 +65,20 @@ tput civis
|
||||||
--cd-and-readdir --recursive \
|
--cd-and-readdir --recursive \
|
||||||
"\$ALBUM_PATH"
|
"\$ALBUM_PATH"
|
||||||
EOF
|
EOF
|
||||||
chmod a+x /usr/local/bin/fim-slideshow.sh
|
chmod a+x /usr/local/bin/pf-fim.sh
|
||||||
cat > /etc/systemd/system/fim.service <<EOF
|
cat > /etc/systemd/system/pf-ui.service <<EOF
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=fim slideshow
|
Description=PiFrame UI
|
||||||
After=getty.target
|
After=getty.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=fim
|
User=fim
|
||||||
ExecStart=/usr/local/bin/fim-slideshow.sh
|
ExecStart=/usr/local/bin/pf-ui
|
||||||
Restart=always
|
Restart=always
|
||||||
RuntimeMaxSec=604800
|
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl daemon-reload
|
|
||||||
systemctl stop getty@tty1
|
|
||||||
systemctl disable getty@tty1
|
|
||||||
cat > /usr/local/bin/no-cursor-tty1.sh <<EOF
|
cat > /usr/local/bin/no-cursor-tty1.sh <<EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
/usr/bin/tput -T screen civis > /dev/tty1
|
/usr/bin/tput -T screen civis > /dev/tty1
|
||||||
|
@ -222,9 +96,6 @@ ExecStart=/usr/local/bin/no-cursor-tty1.sh
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl daemon-reload
|
|
||||||
systemctl enable --now no-cursor-tty1
|
|
||||||
systemctl enable --now fim
|
|
||||||
|
|
||||||
DL_URL=$(curl https://git.kemonine.info/api/v1/repos/PiFrame/piframe-go/releases | jq -r '.[0].assets[] | select(.name == "inotify") | .browser_download_url')
|
DL_URL=$(curl https://git.kemonine.info/api/v1/repos/PiFrame/piframe-go/releases | jq -r '.[0].assets[] | select(.name == "inotify") | .browser_download_url')
|
||||||
wget $DL_URL -O /usr/local/bin/pf-inotify
|
wget $DL_URL -O /usr/local/bin/pf-inotify
|
||||||
|
@ -244,7 +115,11 @@ Restart=always
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
|
systemctl enable --now no-cursor-tty1
|
||||||
|
systemctl enable getty@tty1.service
|
||||||
|
systemctl restart getty@tty1.service
|
||||||
systemctl enable --now inotify-pictures
|
systemctl enable --now inotify-pictures
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -18,4 +18,34 @@ mount /tank
|
||||||
btrfs subvolume create /tank/pictures
|
btrfs subvolume create /tank/pictures
|
||||||
# load pictures via rclone/syncthing/scp/etc (semi-optional)
|
# load pictures via rclone/syncthing/scp/etc (semi-optional)
|
||||||
|
|
||||||
|
# Various tty tweaks
|
||||||
|
cat > /etc/default/console-setup <<EOF
|
||||||
|
# CONFIGURATION FILE FOR SETUPCON
|
||||||
|
|
||||||
|
# Consult the console-setup(5) manual page.
|
||||||
|
|
||||||
|
ACTIVE_CONSOLES="/dev/tty[1-6]"
|
||||||
|
|
||||||
|
CHARMAP="UTF-8"
|
||||||
|
|
||||||
|
CODESET="Uni2"
|
||||||
|
FONTFACE="Terminus"
|
||||||
|
FONTSIZE="32x16"
|
||||||
|
|
||||||
|
VIDEOMODE=
|
||||||
|
|
||||||
|
VIDEOMODE=
|
||||||
|
|
||||||
|
# The following is an example how to use a braille font
|
||||||
|
# FONT='lat9w-08.psf.gz brl-8x8.psf'
|
||||||
|
EOF
|
||||||
|
|
||||||
|
update-initramfs -u
|
||||||
|
|
||||||
|
# IF you need rotation
|
||||||
|
#/boot/firmware/cmdline.txt
|
||||||
|
#fbcon=rotate:2
|
||||||
|
|
||||||
|
systemctl reboot
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in a new issue