Wayland remote desktop · portal-native

Wayland remote desktop — the modern way

A Wayland-native remote desktop host that uses xdg-desktop-portal ScreenCast (PipeWire) for capture and libei for input injection — no X11 fallback hack, no compositor-specific workarounds. Shipping today: on Wayland, Scry works after sign-in, on one screen, with no lock screen.

Free for 24 hours: every feature, no card.

64-bit (x64) Linux · xdg-desktop-portal · PipeWire · libei

64-bit (x64) Linux: open the .deb from your Downloads folder and choose Install. Scry then shows up in your application menu and keeps itself up to date.

Can't install the .deb? Grab the portable Scry.AppImage. Right-click it and open Properties → Permissions, tick Allow executing file as program, then double-click to run (or chmod +x in a terminal).

Sign in after install, and Scry detects whether you're on Wayland or Xorg and selects the right capture backend on first run.

Most remote desktop tools were written when X11 was the default and haven't caught up. They either tell you to log out of Wayland and back into an Xorg session, ship a fragile compositor-specific shim, or fail silently. If you searched wayland remote desktop, pipewire screen capture remote, or remote desktop wayland gnome, this page is about the honest version of how Scry does Wayland.

Status: portal-native Wayland, shipping today

The Linux host auto-detects your session and runs the portal-native path on Wayland: xdg-desktop-portal ScreenCast (PipeWire) for capture, libei for input injection. The portal asks once for screen-share consent, the same dialog you've seen if you've ever shared a screen on a modern Linux video call. On Xorg sessions, the host falls back to x11grab + XTESTautomatically.

The Wayland stack Scry uses

  • xdg-desktop-portal ScreenCast for capture

    The standard freedesktop portal API that GNOME, KDE Plasma and other compositors implement, not a compositor-specific protocol. Frames come out of a PipeWire stream of the display you pick in the portal dialog.

  • PipeWire as the video transport

    The same PipeWire your distro already runs for audio and screen sharing. The capture pipeline encodes through H.264 (libx264) and hands the encoded stream to a WebRTC track.

  • libei for input injection

    Wayland deliberately blocks the X11 xdotool path for security. libei is the emerging standard for synthetic input on Wayland and what the modern portal stack accepts. Same keyboard + mouse + scroll surface, just on the new transport.

  • WebRTC end transport (same as every other Scry client)

    Whether the host is Mac, Windows, or Linux/Wayland, the wire format from the host to the viewer is WebRTC. End-to-end DTLS-SRTP encryption is part of the standard, not bolted on.

Why this matters (beyond keyword optimization)

Wayland is the default on GNOME 46+ and KDE Plasma 6+. If you're on a current distro and haven't touched session settings, you're probably on Wayland right now. Tools that only do X11 either downgrade you to Xorg or fall over.

Going through xdg-desktop-portal also means Scry plays nice with the security model Wayland was designed around: you grant screen-share consent explicitly, the portal records that consent, and revoking it is one switch in your system settings. That's a feature, not a tax.

What this is not (yet)

  • After sign-in only, with no lock screen. Capture starts after you sign in and grant the portal consent. Scry can't reach a Wayland session at its lock screen: the lock screen and switching displays need an X11 desktop.
  • One screen on Wayland. Scry streams the portal-selected display. Switching displays mid-session needs an X11 desktop.
  • End-to-end encrypted (DTLS-SRTP), direct when the network allows. Your two devices negotiate the keys; the relay only forwards already-encrypted packets it cannot read.

Compositor coverage today

GNOME 46+ (Mutter)

Portal ScreenCast + RemoteDesktop fully implemented.

KDE Plasma 6+ (KWin)

Portal stack is current; libei input lands per-compositor.

Sway / wlroots

Portal works via xdg-desktop-portal-wlr; YMMV on libei input until upstream catches up.

Hyprland

Same portal-wlr path as Sway.

Cosmic

Not yet a target.

Wayland, not bolted on.

Portal-native ScreenCast and libei input, over an end-to-end encrypted (DTLS-SRTP) WebRTC connection.

Free for 24 hours: every feature, no card.

Related