Skip to content

feat(image): launch wayvnc inside the kiosk session for remote debug#226

Merged
privaloops merged 1 commit intomainfrom
feature/pi-wayvnc
Apr 27, 2026
Merged

feat(image): launch wayvnc inside the kiosk session for remote debug#226
privaloops merged 1 commit intomainfrom
feature/pi-wayvnc

Conversation

@privaloops
Copy link
Copy Markdown
Owner

The kiosk runs two flights up; staring at the HDMI panel to debug
Chromium isn't a feature. Add wayvnc so a VNC viewer on the LAN can
mirror cage's framebuffer.

Approach details:

  • The Debian wayvnc package ships a systemd unit that runs as a
    dedicated 'vnc' user. That user has no access to cage's Wayland
    socket and the unit silently fails while squatting port 5900.
    Disable it on first-boot so it doesn't fight the in-session
    instance.
  • start-kiosk.sh now wraps Chromium in cage -d -- /bin/sh -c, with
    wayvnc started in the background before the chromium exec. wayvnc
    inherits cage's WAYLAND_DISPLAY through the shared environment, so
    it gets a working screen-capture pipe. When Chromium exits, the
    shell exits, the cage session tears down, wayvnc's parent dies,
    and the listener is reaped — no zombies between kiosk restarts.
  • wayvnc 0.9 ships with auth disabled by default; the LAN-only
    exposure is acceptable for a single-tenant arcade appliance. If we
    later want auth, drop a ~/.config/wayvnc/config with credentials.

Connect from a Mac with a real RFB client (RealVNC Viewer / TigerVNC
— the macOS Screen Sharing built-in speaks an Apple dialect that
wayvnc rejects).

The kiosk runs two flights up; staring at the HDMI panel to debug
Chromium isn't a feature. Add wayvnc so a VNC viewer on the LAN can
mirror cage's framebuffer.

Approach details:

- The Debian wayvnc package ships a systemd unit that runs as a
  dedicated 'vnc' user. That user has no access to cage's Wayland
  socket and the unit silently fails while squatting port 5900.
  Disable it on first-boot so it doesn't fight the in-session
  instance.
- start-kiosk.sh now wraps Chromium in `cage -d -- /bin/sh -c`, with
  wayvnc started in the background before the chromium exec. wayvnc
  inherits cage's WAYLAND_DISPLAY through the shared environment, so
  it gets a working screen-capture pipe. When Chromium exits, the
  shell exits, the cage session tears down, wayvnc's parent dies,
  and the listener is reaped — no zombies between kiosk restarts.
- wayvnc 0.9 ships with auth disabled by default; the LAN-only
  exposure is acceptable for a single-tenant arcade appliance. If we
  later want auth, drop a ~/.config/wayvnc/config with credentials.

Connect from a Mac with a real RFB client (RealVNC Viewer / TigerVNC
— the macOS Screen Sharing built-in speaks an Apple dialect that
wayvnc rejects).
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 27, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sprixe-frontend Ready Ready Preview, Comment Apr 27, 2026 7:18am

@privaloops privaloops merged commit c48e968 into main Apr 27, 2026
1 of 2 checks passed
@privaloops privaloops deleted the feature/pi-wayvnc branch April 27, 2026 07:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant