DPI
Introduction
We try to synchronize the DPI from the client to the server, so that applications will render with the correct settings and "look right" on the client. This may affect fonts, window sizes, cursors sizes, etc.
Caveats:
- support varies greatly depending on the operating system and version, desktop environment, number of monitors attached and their resolution, etc
- with X11, there are far too many places where the DPI can be looked up, many places where it can be overriden
- for virtualized "hardware DPI" which some applications calculate from the virtual monitor dimensions, you will need a patched wiki/Xdummy driver and wiki/FakeXinerama - without a patched dummy driver, the hardware DPI (as reported by xdpyinfo) cannot be updated at runtime and must be set in advance, either in the xorg.conf file or on the xvfb command line
- many applications will not reload the DPI settings, so they must be started after the client connects to get the correct DPI value
Debugging
For wiki/Debugging, some relevant information can be collected from:
- client and server debug output with "-d dpi" command line switch
xdpyinfo
outputxrandr
output
Links
- Physical vs logical DPI on X
- Of DPIs, desktops, and toolkits
- win32 API:
- Scaling Windows - The DPI Arms Race, in particular: Windows 8.1 - More DPI Changes
- About High Resolution for OS X
- Qt: Retina display support for Mac OS, iOS and X11
- xserver forces 96 DPI on randr-1.2-capable drivers, overriding correct autodetection
- please add option to avoid forcing of 96dpi
- xserver forces 96 DPI on randr-1.2-capable drivers, overriding correct autodetection
- Xorg: setting DPI manually
- trac/wiki/DPI/Data - DPI information charts of effects from scaling and monitor sizes on window frame sizes, cursor sizes, etc.
- KDE & Qt Applications and High DPI Displays with Scaling
- how different versions of windows use different icon sizes and where
Related xpra issues
- Ubuntu packaging problems
- #697 gtk screen dimension detection is broken with high dpi displays on windows7 and later
- #163 pass client DPI preference to server (and use sane defaults of 96dpi)
- #976 client display scaling
- #919 frame extents synchronization
- #887 chrome DPI
- #882 DPI with Ubuntu (not fixable as Ubuntu does not use wiki/Xdummy)
- #1086 DPI handling improvements, OSX support
- #1215 patched dummy driver for Debian and Ubuntu
- #1193 bug with client command line switch handling
- #1526 per-monitor DPI with MS Windows clients
- #1933 hidpi awareness for macos
Last modified 4 months ago
Last modified on 10/05/20 06:03:15