Currently gnome-remote-desktop only supports remote-assistance sessions, where a VNC connection is tied to a physical local session . WIth this use case, the monitor configuration is provided by the server (mutter/gnome-remote-desktop), and this configuration matches the physical session monitor on the server.
In order to support headless remote sessions, clients need to be able to configure a virtual monitor. Support for virtual monitors exists in mutter , however gnome-mote-desktop uses the provided functionality only for RDP connections . RDP protocol also makes it easier to manipulate more virtual monitor parameters (e.g. scale) than VNC.
However, it should be possible to support this functionality for VNC as well, at least in a rudimentary form.
Goal for this Hackweek
The goal is to add virtual monitor support and manipulation for VNC connections. This way a VNC client can specify a virtual monitor, and also change its size (and possibly other output parameters) during the session.
VNC clients can request a change of desktop size with the setDesktopSIze / extendedDesktopSize Hook
This API is supported and implemented by libVNCserver (the library used by gnome-remote-desktop). So we only need to implement callbacks in gnome-remote-desktop to update sizes (, ).
This project is one of its kind!