- Ya
- 27 Agosti 2026, 22:14 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 2ac407f
The remote desktop was never locked to a resolution — it tracks the browser window, and always has. guacd honours the client's size and xorgxrdp resizes the X screen live; the session log shows it moving between 1920x1014, 1080x711 and 1280x676 as the window changed. Guacamole also already multiplies by devicePixelRatio, so a HiDPI screen gets its real pixel count. What was missing is any way to ask for MORE desktop than the window has. The SSO endpoint now takes optional width and height and passes them to the connection. resize-method is turned OFF when a size is given, and that is the whole trick: leave it on and the browser sends its own size on the next window resize, guacd obeys, and the chosen resolution is silently undone — the picker would look broken for reasons nobody could see. Without it the size holds and Guacamole scales the display to fit, with its zoom control for 1:1 and scrolling. A test pins that, because it is the one detail that makes this work. Bounds are clamped server-side rather than trusted: the caller is a browser, the token is signed, and the framebuffer is allocated on a VM everyone shares, so an unbounded value is a resource decision, not a formatting one. Width and height must be given together; half a size is a caller bug, and filling in the other half would hand back a desktop shaped like nothing anyone asked for. Omitting both keeps the previous behaviour exactly, so nobody who has not touched the new picker sees any change at all.