System Requirements
Waylo runs on the host — the Linux machine whose desktop you want to reach — and is viewed from any modern browser. Only the host has real requirements; the browser just needs to be reasonably current.
Host
| Component | Requirement | Notes |
|---|---|---|
| Desktop | GNOME | Waylo drives GNOME's compositor (Mutter). Other desktops are not supported. |
| Display server | Wayland or Xorg-on-GNOME | Designed for Wayland; also works in a GNOME-on-Xorg session (including inside xrdp). |
| GNOME Shell | 45–48 recommended | The optional locked-screen extension targets Shell 45–50. |
| Node.js | ≥ 16 | Bundled with the installer — nothing to install on the target (unless you pass --use-system-node). |
| GStreamer | 1.0 + plugins | base, good, bad, ugly, libav. Provides JPEG (MJPEG) and H.264 encoders. |
| OpenSSH server | running on localhost:22 | Waylo verifies logins by SSH to localhost — see Security. |
| PulseAudio / PipeWire | optional | Needed only for desktop audio streaming (pulsesrc). |
Optional: locked-screen extension
To capture the screen while it stays locked, install the
allow-locked-remote-desktop GNOME extension (UUID
allowlockedremotedesktop@kamens.us). Waylo installs it for you during
unattended setup; without it, Waylo falls back to briefly unlocking the screen.
See Unattended Access.
Video encoders
Waylo prefers H.264 and falls back to MJPEG:
- H.264 requires one of
vah264enc(VA-API, hardware — best),x264enc(software), oropenh264enc, plus a browser with the WebCodecsVideoDecoderAPI. - MJPEG needs only the base JPEG encoder and works in any browser. It is the automatic fallback when no H.264 encoder is installed or the browser can't decode H.264.
Browser
- H.264 + audio need WebCodecs (
VideoDecoder/AudioDecoder): recent Chrome, Edge, Safari, and Firefox all qualify. - MJPEG works everywhere, including older browsers, at a higher bandwidth cost.
- Pointer capture uses the Pointer Lock API (standard in all current browsers).
tip
The installer can check for and install the GStreamer and OpenSSH packages for you — see Installation.