Description:
During workspace enhancement my forth monitor (Dell P1917S, square) was released from an important role of a special place for background tasks (OBS, YouTube etc.). Create an always running (independent of primary workspace) information panel - was a long-standing desire. What I got finally:
Overview:
Components:
- Orange Pi One Plus. ARM Cortex-A53 with 4 cores and 1GB LPDDR3. Just enough for running Chromium.
- Armbian is a Linux distribution for embedded devices.
- Cage. A lightweight solution for single-app scenarios. Starts automatically on tty1.
- Chromium in kiosk mode.
- Tab Rotate is a chrome extension that switches tabs one by one, configuration can be fetched from a remote host, tabs can have different update and rotate intervals. Alert Control is a chrome extension that disables javascript alert function. It needs for disabling alerts from broadwyad backed applications. Ublock Origin is just for blocking ads.
- GTK applications inside kubernetes pods available from web browser. Example: gnome-chess. Broadway itself is not a very popular tech and doesn't provide any auth mechanisms. There is gas project that provides LDAP auth and spawns applications for every session/log-in.
- Jenkins CI/CD task for gathering data analytics from different sources (kafka, pandas etc.) and generate pages for Tab Rotate/Chromium.
Snippets:
root@opi1:~# cat /etc/systemd/system/getty@tty1.service.d/override.conf
[Service]
ExecStart=
ExecStart=-/usr/sbin/agetty --autologin cage --noclear %I $TERM
root@opi1:~# grep cage /etc/passwd
cage:x:1000:1000::/home/cage:/home/cage/cage.sh
root@opi1:~# cat /home/cage/cage.sh
#!/usr/bin/env bash
/usr/bin/cage -- /usr/bin/chromium \
--enable-unsafe-webgpu \
--enable-features=Vulkan,UseSkiaRenderer \
--disk-cache-dir=/dev/null \
--disk-cache-size=1 \
--kiosk --start-fullscreen