I'm using connecting TigerVNC Viewer on a MacBook to TigerVNC server on a CentOS Linux box. The MacBook's screen is Retina 2560x1600 native resolution and I have it set to the recommended 1440x900. I also have two 1080p monitors connected. On the server, I specify "-geometry 1440x90".
When I start up vncviewer, it opens on the Mac's build-in screen. The window takes up the full 1440x900, but the CentOS desktop is squeezed into the bottom left quarter. That desktop is completely unresponsive. I can't get it to respond to any typing or clicking.
If I drag vncviewer's window to one of the 1080p monitor, the vncviewer window takes up the full screen, and the CentOS desktop resizes to fit the entire windows. CentOS reports the desktop's display is 1920x1080
If I drag the vncview window back to my built-in Mac display, it is back to being scrunched in the bottom left corner. But with the CentOS display settings panel still open, I can see that CentOS is reporting a display of 1440x900.
Then on the Mac, if I change the Mac's built-in display to be 1680x1050, the CentOS desktop reports being 1680x1050, but still is scrunched in the bottom left corner. It isn't scrunched as tightly, though, when the Mac's display was set to 1440x900.
To make a long story short, it appears that vncviewer is correctly reporting to the configured display size to vnc server, and vnc server is changing the CentOS desktop size to match. But when vncviewer renders that desktop on the built-in display it is using actual Retina pixels, not the virtual pixels it should be using.
Here are some screenshots of the three cases. Is there something I can do differently? Or maybe this is a bug?
Client:
Apple MacBook Pro "Core i5" 2.3 13" Mid-2017
Native Resolution: 2560x1600
Recommended Resolution: 1440x900
Max Recommended Resolution: 1680x1050
TigerVNC Viewer 64-bit v1.9.0 on macOS 10.14.6 Mojave
Server:
CentOS 7 Linux
tigervnc-server.x86_64 1.8.0-13.el7