-
-
Notifications
You must be signed in to change notification settings - Fork 168
Experimental support for setdesktopsize / extendeddesktopsize #107
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: master
Are you sure you want to change the base?
Conversation
When enabled with the -setdesktopsize option this allows clients like novnc and tigervnc to request a change of framebuffer resolution to fit that of the client window. On the server this is implemented by leaving the physical display resolution as-is, but setting a new framebuffer resolution and scaling that framebuffer to the physical display using RANDR calls. As a result the view on the physical display may look a bit distorted due to the scaling, but looks perfect on the remote client. (While that is normally the opposite case) When last client disconnects original framebuffer resolution is restorted. Implementation currently limited to computers with a single screen attached. Signed-off-by: Floris Bos <[email protected]>
|
Thanks! Before any further review: please make sure the code builds with an older LibVNCServer version, too. |
Signed-off-by: Floris Bos <[email protected]>
|
Fair enough. Added some #if's |
|
Is there any update on this PR? |
|
Having this feature work would be a major plus. Please let me know what kind of support you require to get this working. |
|
It would be super nice if someone could tackle and sort out the remaining known limitations maxnet mentioned so we not merge in something half-baked :-) |
|
This @maxnet PR is linked to one ticket but not merged yet: |
|
Code looks very good in my opinion, and it all is working fine for me.
I vote for merging this patch as is. The limitations are not severe at all:
I will be including this hook when I package x11vnc for EasyBuild, since I consider it a crucial feature, and this now allows me to run true Xorg remote desktops for HPC clusters with full hardware acceleration (GLX, EGL, Vulkan, all without involving VirtualGL). easybuilders/easybuild-easyconfigs#24662 |
When enabled with the -setdesktopsize option this allows
clients like novnc and tigervnc to request a change of
framebuffer resolution to fit that of the client window.
On the server this is implemented by leaving the physical
display resolution as-is, but setting a new framebuffer
resolution and scaling that framebuffer to the physical
display using RANDR calls.
As a result the view on the physical display may look a bit
distorted due to the scaling, but looks perfect on the remote
client. (While that is normally the opposite case)
When last client disconnects original framebuffer resolution
is restorted.
Known limitations:
Implementation currently limited to computers with a single
screen attached.
Only works on X servers/drivers with RANDR support
Does not always work properly on headless sytems with no monitor attached. (Needs some investigation)
Needs a recent libvncserver with the setdesktopsize hook support recently merged.
Closes #91