dustin/photoframe2/pipeline/pr-main This commit looks goodDetails
The `photoframe` script was based on the one used by the original
Buildroot-based photo frame system. I've split it into two processes,
though: one to listen to the URL stream and download new photos as
instructed by the server, and another to actually display the photos.
Getting `feh` and Firefox to both be fullscreen at the same time was
difficult, and only works if they are on separate Sway workspaces. Thus,
"activating" the slide show means switching to the workspace where `feh`
is and "deactivating" it means switching back to Firefox's workspace.
_systemd-networkd_ uses a randomly-generated ID as the DHCP client
identifier by default. On Aimee OS, it is not able to persist this ID
between boots; I think it may derive the value from the machine ID. To
avoid getting a new IP address every boot, we can configure it to use
the MAC address of the device as the DHCP client ID.
This commit introduces the _kiosk.service_ unit, which launches `sway`
to start a Wayland session, which in turn launches Firefox. The
`policies.json` file configures Firefox in a sort of kiosk mode,
disabling most features and blocking all but the desginated sites.
Unfortunately, running `firefox --kiosk` doesn't actually work: Firefox
apparently runs, but doesn't draw anything on the screen.
Note that we have to launch Firefox by its "real" path, since
`/usr/bin/firefox` is a Bash script, and Bash is not installed.
Fortunately, the wrapper script doesn't do anything we really care
about, so bypassing it is fine.
We need the Broadcom firmware from the _linux-firmware_ package (and
nothing else). We also need _wpa_supplicant_, to configure the WiFi
connection. Finally, we need to configure _systemd-networkd_ to manage
the network device.