Project Description

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 [1], however gnome-mote-desktop uses the provided functionality only for RDP connections [2]. 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

https://vncdotool.readthedocs.io/en/0.8.0/rfbproto.html#setdesktopsize

https://vncdotool.readthedocs.io/en/0.8.0/rfbproto.html#extendeddesktopsize-pseudo-encoding

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 ([3], [4]).

Resources

[1] https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698

[2] https://gitlab.gnome.org/GNOME/gnome-remote-desktop/-/commit/de8d0f63e882a92482bba00f3c11281b313cff84

[3] https://github.com/LibVNC/libvncserver/blob/1d1153f09db5f71f887ec25b827a98af52f0573e/rfb/rfb.h#L357

[4] https://gitlab.gnome.org/GNOME/gnome-remote-desktop/-/issues/90

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 21

Activity

  • over 1 year ago: dgdavid joined this project.
  • over 1 year ago: vliaskovitis started this project.
  • over 1 year ago: vliaskovitis originated this project.

  • Comments

    Similar Projects

    This project is one of its kind!