-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Xvnc backend : Multi monitor and resize support
The Xvnc backend is used to connect xrdp(8)
to VNC servers.
From version v0.9.14 of xrdp, the following features are supported by the Xvnc backend:-
- multi-monitor (multi-head) support.
- server resizes requested by the client.
These features will only be available if they are also supported by the VNC server.
Because both features use the same protocol message, a VNC server which supports one of the features will almost certainly support the other one as well.
At the time of writing, the only known VNC server which supports these features is TigerVNC (version 1.3.0 and later).
The VNC server is asked to configure its screen(s) to match the RDP client configuration.
Providing the same colour depth is selected, the RDP client is resized to match the VNC server screen. If a different colour depth is used, a new session is created using the different colour depth.
Previous versions of xrdp did not resize the RDP client when connecting to an existing session of a different size. Instead, a different session was initiated. This behaviour was found to be confusing, as it is somewhat different from the Xorg backend behaviour.
You cannot simply simulate the old behaviour by using a VNC server which does not support these features.
If you really want to create different sessions for different initial connection sizes, you can change the Policy
setting in sesman.ini
to UBD
- see sesman.ini(5)
. Be aware that changing this setting will change it for all backends you may be using.
If you are using TigerVNC and you do not wish to have the server resize to the client, you will can set disabled_encodings_mask=1
for the connection in xrdp.ini
.
TigerVNC accepts a command-line argument -AcceptSetDesktopSize=0
which should also disable this feature. This is the preferred method, but at the time of writing you need the 1.11 beta version of TigerVNC to use this. See TigerVNC/tigervnc#1036 for technical details
Note that the default behaviour for Policy=Default
in sesman.ini
is effectively different when using the Xvnc
backend. If you have an old version of this file, the comment for this setting may be out of date.
- RFC6143 [March 2011] The Remote Framebuffer Protocol
-
RFB community version describes the
ExtendedDesktopSize
pseudo-encoding andSetDesktopSize
message used to implement this feature.