From 03c048e9584d471ab074258030b30d74a27d9cc2 Mon Sep 17 00:00:00 2001 From: ssmithx Date: Wed, 1 Jul 2026 16:22:45 +0000 Subject: [PATCH] fix(kiosk): pass XDG_RUNTIME_DIR so Chromium can reach PipeWire-Pulse The launcher's sudo -u archipelago invocation set DISPLAY/HOME but not XDG_RUNTIME_DIR, so Chromium's audio backend couldn't find the PipeWire-Pulse socket at /run/user//pulse/native. It silently fell back to raw ALSA "default", which also failed ("Connection refused"), producing no HDMI audio at all with no visible error since --noerrdialogs suppresses it. Co-Authored-By: Claude Sonnet 5 --- image-recipe/configs/archipelago-kiosk-launcher.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/image-recipe/configs/archipelago-kiosk-launcher.sh b/image-recipe/configs/archipelago-kiosk-launcher.sh index 2f34a33e..562d607c 100644 --- a/image-recipe/configs/archipelago-kiosk-launcher.sh +++ b/image-recipe/configs/archipelago-kiosk-launcher.sh @@ -93,8 +93,14 @@ else GPU_FLAGS="--disable-gpu --num-raster-threads=1" fi +ARCHIPELAGO_UID=$(id -u archipelago) + while true; do - sudo -u archipelago env DISPLAY=:0 HOME=/home/archipelago chromium --kiosk \ + # XDG_RUNTIME_DIR must be passed explicitly — without it Chromium's audio + # backend can't find PipeWire-Pulse's socket at /run/user//pulse/native, + # falls back to raw ALSA "default", fails to connect, and produces no audio + # at all with no visible error (--noerrdialogs suppresses it). + sudo -u archipelago env DISPLAY=:0 HOME=/home/archipelago XDG_RUNTIME_DIR=/run/user/$ARCHIPELAGO_UID chromium --kiosk \ --app=http://localhost/kiosk?safe_area_x=${KIOSK_SAFE_AREA_X_PX:-0}\&safe_area_y=${KIOSK_SAFE_AREA_Y_PX:-0} \ --noerrdialogs \ --disable-infobars \