question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Display Scaling and Calibration

See original GitHub issue

Update: 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 to Manual, 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:closed
  • Created 2 years ago
  • Comments:23 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
NinFanBoyFTWcommented, Apr 11, 2022

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

1reaction
PhoenixIVcommented, Apr 7, 2022

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.

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to calibrate your monitor: An in-depth guide
Use Windows Search to search for display calibration. Select Calibrate display color from the results. Follow the on-screen instructions. Here's ...
Read more >
How to Calibrate Your Monitor for Accurate Colors: 4 Easy ...
To open the Display Color Calibration tool on Windows 10, click the Start Menu, then type Calibrate Display Color in the search bar....
Read more >
How to calibrate your monitor in Windows 10
How to calibrate your monitor in Windows 10 ; 1. Right-click on the desktop and select Display settings ; 2. Click "Advanced display...
Read more >
How to calibrate your monitor
The quickest and easiest way to calibrate your display is to stare at a number of test patterns and use your monitor's onscreen...
Read more >
DisplayCAL—Display Calibration and Characterization ...
First, the display behavior is measured and adjusted to meet user-definable target characteristics, like brightness, gamma and white point. This step is ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found