Display Scaling and Calibration
See original GitHub issueUpdate: The display scaling & calibration features are now released in v.0.10.0. See http://bluegrams.com/blog/2022/09/display-scaling-and-calibration-with-screenruler.html for explanation.
As the current version of ScreenRuler has various issues with display scaling (issues #28, #31, #45, #51), high-DPI monitors and calibration, version 0.10.0 tries to introduce a new scaling/ calibration mechanism.
This feature is currently tested. You can find a pre-release build here: https://sourceforge.net/projects/screenruler/files/pre-release/ScreenRuler-v.0.10.0-Portable.zip/download. Please try it out and give feedback below, especially if something does not work as expected.
Detailed explanation
Since v.0.10, ScreenRuler is per-monitor DPI-aware by default, i.e. it …
- … automatically and dynamically scales the UI according to Windows’ display scaling settings of the current monitor
- … can adjust ruler scales according to Monitor pixel densities
The latter feature can be configured in the app via the ruler calibration dialog, which can be accessed either via the context menu (Calibrate Ruler) or by pressing Ctrl+K
.
Ruler calibration provides multiple built-in DPI scaling behaviors with different characteristics that are suitable for different use cases:
-
Use scaled pixels
: Ruler scales will be based on the virtual/logical DPI values provided by Windows (i.e. 96dpi by default). Additionally, the ruler scale will be scaled corresponding to Windows’ display settings for scaling on high-DPI monitors (e.g. assuming 120dpi for a scaling of 125%).- When to use? Use this mode to measure items that are scaled by the OS and/or unaware of monitor pixel densities. Measurements in this mode might not correspond to physical “off-screen” dimensions.
-
Automatic (per-monitor)
: Ruler scales will be based on the raw DPI values of each monitor, as provided by the OS. Note that raw DPI values might differ slightly for each monitor and might not match virtual or scaled DPI values directly. In this mode, the ruler scale is dynamically adjusted to the raw pixel density of the current monitor.- When to use? This mode should provide the most accurate mapping from physical “off-screen” dimensions to “on-screen” dimensions. Use this mode to accurately measure items in physical dimensions (such as inches, centimeters etc.)
-
Manual
: Manually specify monitor DPI values on which ruler scales will be based. There are two ways to do this: You can directly specify a custom DPI value in the ruler calibration dialog under Monitor DPI -> Horizontal Scaling (DPI)/Vertical Scaling (DPI). Or, you can calibrate ruler scales from the current dimensions of the ruler under the Measuring Unit tab (see Examples). Ruler scales will always be computed from this fixed pixel density value independent of current display scaling or monitor DPI.- When to use? Use this mode to calibrate ruler scales independent of OS-based automatic display scaling or monitor pixel densities. Useful e.g. if automatic scale adaptations fail or to adjust to an application-specific scale.
-
Manual (per-monitor)
: Similar toManual
, however, instead of specifying one global DPI value, allows different configurations for each connected monitor. Select the monitor to calibrate from the dropdown below the scaling behavior selection.- When to use? To calibrate ruler scales in multi-display setups where each display requires a different calibration. Especially useful if automatic scale adaptations fail.
Issue Analytics
- State:
- Created 2 years ago
- Comments:23 (7 by maintainers)
Hi so I just tested everything out and it works great. I tried turning off and on displays to see if it would hold the per display calibration and everything is working perfectly. Thanks so much
I would solve the scaling options window like this:
On the left: Display a list of all monitors. These are selectable.
On the right: Once selected, a configuration window appears for just that monitor.
Hardware-IDs and their settings are saved even when currently not connected.