-
Notifications
You must be signed in to change notification settings - Fork 750
GUACAMOLE-288: Add support for multi-monitor connections on RDP. #1061
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
GUACAMOLE-288: Add support for multi-monitor connections on RDP. #1061
Conversation
…onitors on each RDP connection.
…annot use the clientController.
wow this is huge! i will test asap |
Exciting. Could you write up the technical implementation here? Here's what I gather from looking at the changes here and in the guacamole-server pull request.
That leads me to understand,
Could you clarify if that is correct? If so, how is each tab specifying which monitor/offset to use? |
@corentin-soriano Rather than build on the For example, we could do something like: /* Hint that some_layer is best represented as a separate monitor/display */
guac_protocol_send_set(socket, some_layer,
GUAC_PROTOCOL_LAYER_PARAMETER_PRESENTATION,
GUAC_PROTOCOL_LAYER_PARAMETER_PRESENTATION_DETACHED);
/* Hint that the default layer will only contain other layers and need not have
* a graphical surface */
guac_protocol_send_set(socket, default_layer,
GUAC_PROTOCOL_LAYER_PARAMETER_PRESENTATION,
GUAC_PROTOCOL_LAYER_PARAMETER_PRESENTATION_VOID); to advise compatible clients that a particular layer should be ideally rendered as a separate display in its own right, with its position within any parent layers to be interpreted as hinting for relative location. That would make the same semantics available in a backward-compatible manner, while also allowing the concept of separating out parts of the display to be more broadly applicable (such as for popping out RemoteApp windows). |
I'd like to test your code but I am not a github expert. I have checked out both guacamole-client and guacamole-server locally. How do I put them in the correct state? I suspect --branch is involved. I'd be grateful if you could note how to get the starting line set up and then I'll run with it. |
Should be something like: (and similarly for guacamole-server, just substituting in the correct pull request number for that repo, then autoreconf, configure, make, etc.) |
Wow! It works perfectly. I'd say it is better than stock mstsc because you can add and remove screens at your whim. So far I have tested with Firefox on Kubuntu 24.04, connecting to a Windows 2022 RDS box. Guac + Tomcat are running on Ubuntu 22.04. I only have two identical screens so haven't looked into what happens with varying sizes. I'll move this to our live box soon and get some more testing done with real users. |
Anyone who wishes can test and feedback will be appreciated!
Requires using this branch on guacamole-server: apache/guacamole-server#560
Admin settings:



Add new monitor:
Multiple monitors opened: