Remote desktop under Wayland seems to finally be happening; thanks to work on new Application Programming Interfaces (API) and a new GNOME Remote Desktop service undertaken by Jonas Ådahl!
GNOME’s Vino remote desktop server was left behind when GNOME transitioned their desktop from the X compositor to Wayland. This meant that people who use distributions that stay close to upstream, like Fedora Linux 25, have been left without a working VNC or RDP server for almost a full year.
Jonas Ådahl from Red Hat has been busy adding new D-Bus APIs to libmutter. Mutter is the GNOME window manager and Wayland compositor. The two new APIs, org.gnome.Mutter.RemoteDesktop
and org.gnome.Mutter.ScreenCast
, expose a PipeWire stream containing the contents of the system’s screens. The new APIs can create full-screen streams, or streams for individual windows. Only the former has been implemented.
These new APIs finally allows for services such as RDP and VNC servers and screen recording under Wayland. Once again, Mr. Ådahl delivers! He has also created GNOME Remote Desktop, a new user-level systemd service daemon that’s built on the new RemoteDesktop API in libmutter, plus VNC support from libvncserver. The new service can be used to connect up a remote VNC client to your local screen’s session. GNOME Remote Desktop appears to be a drop-in replacement for Vino server.
The new APIs are still considered experimental, but the adventurous need not wait. You can build Mutter plus its dependencies with Mr. Ådahl’s extensive patches with the --enable-remote-desktop flag. You’ll also need to build gnome-remote-desktop to get any use of the changes.
It’s unclear at this time when these changes will all be integrated into the GNOME codebase, let alone be included in a shipping release. Never the less, I’m quite excited to see that there’s finally some progress being made on adding remote desktop capabilities back under Wayland!