GNOME Remote Desktop on Wayland

Remote desktop capabilities making a comeback in GNOME on Wayland

Remote desktop under Wayland seems to finally be happening; thanks to work on new APIs 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 25, have been left without a working VNC or even an 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. Åhdahl delivers! He has also created GNOME Remote Desktop, a new user-level systemd service daemon that is 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. Åhahl’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, yet alone be included in a shipping release. Never the less, I’m quite excited to see that there is finally some progress being made on adding remote desktop capabilities back under Wayland!