guacamole-server icon indicating copy to clipboard operation
guacamole-server copied to clipboard

GUACAMOLE-288: Add support for multi-monitor connections.

Open corentin-soriano opened this issue 1 year ago • 10 comments

Allows as is to add multiple monitors of the same dimensions in RDP protocol if the server supports it. I haven't looked at the VNC part yet.

Client side PR : https://github.com/apache/guacamole-client/pull/1061

POC: image

corentin-soriano avatar Oct 20 '24 09:10 corentin-soriano

it will be great if we bring that to main

Pierre-Gronau-ndaal avatar Apr 15 '25 18:04 Pierre-Gronau-ndaal

it will be great if we bring that to main

Yes, that is the plan, once the code is finalized and has been fully reviewed.

necouchman avatar Apr 15 '25 19:04 necouchman

Frequently resizing a monitor window, e.g. by using Maximize and Restore down of the window in quick succession, can cause a RDP disconnect with the following message in the guacd logs:

GUAC_ASSERT in guac_rdp_gdi_desktop_resize() failed at gdi.c:172.

Assertion code

Is it possible to wait for the flush or just discard the affected window instead of crashing the connection?

Vertganti avatar Jun 26 '25 08:06 Vertganti

Frequently resizing a monitor window, e.g. by using Maximize and Restore down of the window in quick succession, can cause a RDP disconnect with the following message in the guacd logs:

GUAC_ASSERT in guac_rdp_gdi_desktop_resize() failed at gdi.c:172.

Assertion code

Is it possible to wait for the flush or just discard the affected window instead of crashing the connection?

Which version of freerdp are you using? If you are on v3, can you update it to at least version 3.8.0?

corentin-soriano avatar Jul 07 '25 07:07 corentin-soriano

I'm using the Dockerfile from the repository which defaults to FreeRDP 2. The exact version is 2.11.7. I can try using FreeRDP 3 to see if that improves anything.

Vertganti avatar Jul 07 '25 07:07 Vertganti

I'm using the Dockerfile form the repository which defaults to FreeRDP 2. The exact version is 2.11.7. I can try using FreeRDP 3 to see if that improves anything.

This is potentially a bug in FreeRDP. This assertion is mandatory in version 2. Are you sure you can't reproduce this with a single monitor?

corentin-soriano avatar Jul 07 '25 08:07 corentin-soriano

I don't think I tried it with one monitor. Will do that as well once I have the time.

Vertganti avatar Jul 07 '25 08:07 Vertganti

I'm using the Dockerfile form the repository which defaults to FreeRDP 2. The exact version is 2.11.7. I can try using FreeRDP 3 to see if that improves anything.

This is potentially a bug in FreeRDP. This assertion is mandatory in version 2. Are you sure you can't reproduce this with a single monitor?

I was able to reproduce it with one monitor with the FreeRDP 2 build.

EDIT: It does not reproduce with FreeRDP 3, independent of the number of monitors.

Vertganti avatar Jul 07 '25 11:07 Vertganti

@necouchman @corentin-soriano Thanks for adding this feature! Do you plan to merge it into the main branch?

lirannisani avatar Sep 04 '25 06:09 lirannisani

@necouchman @corentin-soriano Thanks for adding this feature! Do you plan to merge it into the main branch?

I still have some things to finalize before we can merge. I haven't had time to continue lately but the subject has not been forgotten!

corentin-soriano avatar Sep 04 '25 08:09 corentin-soriano