Skip to main content

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

ComponentRequirementNotes
DesktopGNOMEWaylo drives GNOME's compositor (Mutter). Other desktops are not supported.
Display serverWayland or Xorg-on-GNOMEDesigned for Wayland; also works in a GNOME-on-Xorg session (including inside xrdp).
GNOME Shell45–48 recommendedThe optional locked-screen extension targets Shell 45–50.
Node.js≥ 16Bundled with the installer — nothing to install on the target (unless you pass --use-system-node).
GStreamer1.0 + pluginsbase, good, bad, ugly, libav. Provides JPEG (MJPEG) and H.264 encoders.
OpenSSH serverrunning on localhost:22Waylo verifies logins by SSH to localhost — see Security.
PulseAudio / PipeWireoptionalNeeded 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), or openh264enc, plus a browser with the WebCodecs VideoDecoder API.
  • 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.