Files
ansible/roles/pi_kiosk/templates/openbox-menu.xml.j2
Martin Bauer 831a1b50a4 Run the kiosk on Chromium, and take the stray media server off musicdolphin
Chromium: same page, same machine, idle, Firefox 24.2% of a core against Chromium's
11.4%. The build comes from archive.raspberrypi.com (a "+rpt" version) and is patched
for this board's V3D GPU; Debian ships a much older chromium, so the archive matters.
The whole userland here is 32-bit armhf on a 64-bit kernel, which Firefox handles worse
than Chromium does. --use-gl=egl, --enable-gpu-rasterization, --ignore-gpu-blocklist
and --enable-zero-copy are what keep rasterization on the GPU: Chromium's blocklist
does not recognise this driver and silently falls back to software without them.
pi_kiosk_browser: firefox still works, as the fallback if an update ever regresses.

Debug mode also gains xdotool, scrot and --remote-debugging-port=9222 (on 127.0.0.1),
because firing XTEST key events at a window lands about half the time and a benchmark
you cannot verify the state of is worse than none.

pi_squeezeserver gains an absent path, and mediapis.yml derives its state from
mediapi_has_squeezeserver, which defaults to false for the whole group. false means
"actively remove", not "skip": musicdolphin has been running a Logitech Media Server
that no playbook installs and nothing talks to - every squeezelite in the fleet points
at pi_squeezelite_squeezeserver (192.168.178.80, the server) - while costing ~30 MB
resident and ~47 MB of swap on a 2 GB Pi that also drives the kiosk. The absent path
stops it, purges the package, unregisters it from sysdweb, drops the port 80 -> 9000
redirect and deletes its database and logs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 15:13:16 +02:00

33 lines
1.1 KiB
Django/Jinja

<?xml version="1.0" encoding="UTF-8"?>
<!--
Managed by ansible (pi_kiosk role). Replaces Debian's default Openbox menu, which
points at a desktop's worth of applications that are not installed here. Right-click
the desktop to open it; in kiosk mode there is no pointer to do that with, which is
the point.
-->
<openbox_menu xmlns="http://openbox.org/3.4/menu">
<menu id="root-menu" label="{{ inventory_hostname }}">
<item label="Terminal">
<action name="Execute"><command>x-terminal-emulator</command></action>
</item>
<separator/>
<item label="Open the MusicMouse page">
<action name="Execute">
<command>{{ pi_kiosk_browser_command }} {{ pi_kiosk_url }}</command>
</action>
</item>
<item label="Open it full-screen (kiosk)">
<action name="Execute">
<command>{{ pi_kiosk_browser_command }} --kiosk {{ pi_kiosk_url }}</command>
</action>
</item>
<separator/>
<item label="Restart Openbox">
<action name="Restart"/>
</item>
<item label="End this X session (it restarts)">
<action name="Exit"/>
</item>
</menu>
</openbox_menu>