diff --git a/install.packages b/install.packages index 1c92159..600e5b5 100644 --- a/install.packages +++ b/install.packages @@ -1,3 +1,6 @@ +gui-apps/swayidle gui-wm/sway -net-wireless/wpa_supplicant +media-gfx/feh media-video/pipewire +net-misc/curl +net-wireless/wpa_supplicant diff --git a/overlay/etc/sway/kiosk.conf b/overlay/etc/sway/kiosk.conf index 590fdde..956f768 100644 --- a/overlay/etc/sway/kiosk.conf +++ b/overlay/etc/sway/kiosk.conf @@ -7,5 +7,13 @@ input * { } exec /usr/lib64/firefox/firefox +exec /usr/bin/photoframe stream + +exec swayidle -w \ + timeout 120 'photoframe show' resume 'photoframe hide' for_window [title="Mozilla Firefox"] fullscreen +for_window [class="photoframe"] fullscreen + +assign [title="Mozilla Firefox"] 1 +assign [class="photoframe"] 2 diff --git a/overlay/usr/bin/photoframe b/overlay/usr/bin/photoframe new file mode 100755 index 0000000..d1ebdab --- /dev/null +++ b/overlay/usr/bin/photoframe @@ -0,0 +1,46 @@ +#!/bin/sh + +photoframe_hide() { + swaymsg 'workspace 1' +} + +photoframe_show() { + # Run on a separate workspace so Firefox can stay fullscreen, too + swaymsg 'workspace 2' + if [ -f /tmp/photoframe.pid ]; then + # feh is already running + return 0 + fi + if [ ! -f /tmp/photoframe-current ]; then + cp /usr/share/feh/images/feh.png /tmp/photoframe-current + fi + feh -FZ --draw-exif --class photoframe /tmp/photoframe-current & + # Wait for the feh window to actually appear ... + swaymsg -t subscribe '["window"]' + # Sometimes, Sway's `for_window ... fullscreen` doesn't work? + swaymsg fullscreen + echo $! > /tmp/photoframe.pid +} + +photoframe_stream() { + while :; do + curl -NsS https://photos.pyrocufflink.blue/stream | + while read url; do + curl -fsL -o /tmp/photoframe-next "${url}" || continue + mv /tmp/photoframe-next /tmp/photoframe-current + done + sleep 30 + done +} + +case $1 in +show) + photoframe_show + ;; +hide) + photoframe_hide + ;; +stream) + photoframe_stream + ;; +esac diff --git a/portage/package.use/photoframe b/portage/package.use/photoframe new file mode 100644 index 0000000..9888bdf --- /dev/null +++ b/portage/package.use/photoframe @@ -0,0 +1,5 @@ +gui-apps/swayidle -systemd +gui-libs/wlroots X +gui-wm/sway X +media-gfx/feh exif inotify +net-misc/curl -alt-svc -ftp -hsts -http3 -imap -pop3 -progress-meter -psl -quic -smtp -tftp -websockets -adns -http2 CURL_QUIC: -*