Remote desktop and screen casting in Wayland

Introduction

Remote desktop and screen sharing in libmutter is split into two separate, but optionally combined parts: screen casting, and remote control. Both are exposed via their own D-Bus APIs. The data transfer and format negotiation of the screen casting is done by PipeWire.

API

Applications that want to implement features related to screen casting and/or desktop sharing should use corresponding APIs provided by xdg-desktop-portal. Two related APIs are provided; org.freedesktop.portal.ScreenCast for managing screen casting sessions, and org.freedesktop.portal.RemoteDesktop for managing remote desktop (i.e. remote control) sessions. They can also be combined to create a remote desktop session with screen casting functionality.

You can find the screen cast API here and the remote desktop API here.

Remote Desktop

Remote desktop functionality is not implemented in mutter but in GNOME Remote Desktop. GNOME Remote Desktop currently supports "screen share", also known as "remote assistance" mode through VNC or RDP. VNC support is provided via LibVNCServer and RDP support is provided via FreeRDP.

VNC mode supports either authentication using a VNC password, or via a prompt allowing the user sharing the desktop to interactively grant permission.

RDP mode supports authentication using a username and password pair.

Installing

GNOME Remote Desktop will likely be installed together with GNOME via your distribution.

Enabling

Open Settings, select Sharing, and enable Remote Desktop. This should automatically enable the service and you should immediately be able to connect via RDP. There is no longer any user interface for enabling VNC support; instead use the command line utility grdctl.

Reporting bugs

If you encounter unexpected crashes, screen casting or remote desktop access not functioning as expected, please report bug.

Bugs should either be reported to mutter or GNOME Remote Desktop depending on where the bug is found.

Remote Login

For more information about creating a new remote session see Remote Login

Projects/Mutter/RemoteDesktop (last edited 2022-10-12 09:24:02 by TobiasSchönberg)