Dual monitors on Windows - How do I set a different DPI or text size on each monitor?

230,874

Solution 1

DPI settings affect the entire desktop, regardless of number or arrangement of monitors. You cannot have two different DPI settings on two monitors.

Update:

This is untrue as of Windows 8.1, which adds many DPI scaling enhancements, including per-display DPI settings. Although some may not find the implementation offers enough control.

Solution 2

A bit of a hack is:

If you are always using a certain application on one screen, you can set that application to ignore DPI settings. For example, I have Visual Studio on my big monitor set to ignore DPI (100%). Everything else on my retina laptop monitor is at 145%.

The setting "Disable display scaling on high DPI settings" is under compatibility under the properties menu of the application exe.

Solution 3

It finally does work in Windows 10 although many apps still would not scale correctly. It works almost as good as on OSX.

For higher DPI 1st monitor (200% scale)

enter image description here

For lower DPI 2nd monitor (100% scale) enter image description here

It is important NOT to use following scaling (it should be set to 100%). By default using MacBook retina driver pack it would be set to 150/200%. enter image description here enter image description here enter image description here enter image description here

Solution 4

Note: Windows 8.1, contrary to Microsoft's claims, does not truly support running multiple DPI's on separate monitors.

I have a laptop with windows 8.1 and 3840x2160 16" screen. In order for dialog boxes, windows etc. to be a usable size it must run at 200% scale (comparable real estate to a typical 16" 1080p display but with UI elements, text, and photos all rendered sharper).

When apps are moved from the laptop monitor onto the external monitor, as soon as more than half of teh window is dragged over the window is resized. The problem with this is the menu bars, cursor, etc. are not natively redrawn at the new DPI setting, the entire application window, toolbars and all is drawn at 200DPI then bitmap resized to 50% in order to fit on the external monitor. Only the 200% DPI scale is being used at once, whereas other DPIs for external monitors are [poorly] virtualized. A very blurry bilinear scaling is used, and text is completely unreadable on the external monitor. This means the benefit of things like cleartype text (which relies on 1:1 pixel rendering and actually uses sub-pixel anti aliasing) is not achievable when mixed DPIs are used.

A select few applications (IE, powerpoint) are listed per-monitor DPI aware. In this case, the contents of the windows are redrawn at the correct size and cleartype within the apps still functions but the menu bars, title bar, even the cursor are still drawn at 200% scale -- rendering them unusably large on external monitors. I suspect this exception was made so that fullscreen presentations could still be done without the blurry bitmap scaling. With 200% scale toolbars though, these apps are not usable for anything other than fullscreen mode.

At this point there is no getting around having to restart the computer to change DPI every time you plug into external monitor and use external monitor only.

Solution 5

You (should) be able to. In Linux you could do it like this:

  1. Create a X VNC Server with the size of two times the smaller screen. For example: you have two monitors, same size, but 1920 and 1600 pixels wide: you make a virtual server of two times the better one: 3840px wide (1080px height).

  2. Open two VNC clients against the server you just created. Put one in each screen. Full screen. Scale 1:1. Scroll the window on the right to show the rightmost part of the Vnc server. Since the pixels are different size, everything will look bigger in the screen of 1600px. Zoom out that one until sizes fits.

This is obviously very simple and has grave drawbacks (no direct rendering, probably slow, etc). But if you could do the same with proper framebuffers and such...

Share:
230,874

Related videos on Youtube

AshleyF
Author by

AshleyF

Ops engineer in the cloud.

Updated on September 17, 2022

Comments

  • AshleyF
    AshleyF over 1 year

    My laptop is a 15" wide screen running at 1600x1050, and in addition to that I connect an external 19" LCD which runs at 1280x1024. The problem with this setup is that if I increase the text size to make the laptop screen readable, the text on the external LCD is huge. Normal text on the LCD results in tiny text on the laptop.

    What options do I have to get around this?

  • Joey
    Joey over 14 years
    Imagine what a program would have to try of it spans both monitors. Or is moved from one to the next ...
  • Josip Medved
    Josip Medved over 14 years
    @Johannes: For me it would be enough if DWM would control scaling (as it does for non-DPI aware applications). Final result would be blurry at best but it would be good enough for support monitor.
  • AshleyF
    AshleyF over 14 years
    I figured this was going to be impossible, but was hoping there was some third-party solution out there. If anyone wants to make some money, here is a problem that need solving. :)
  • Ian Boyd
    Ian Boyd over 14 years
    This is the correct answer - the answer is "no". And imagine if a program's window was spanning 2 or 3 monitors at once - it is essentially impossible for a program to draw parts of itself at different DPI/Font settings. Windows would have to be resigned - getting rid of the notion of font and DPI preferences in order for this to ever work.
  • Ian Boyd
    Ian Boyd about 13 years
    A common mistake people make is to take the resolution of the monitor (in pixels) and divide it by the size of the monitor (in inches), and use that number as the DPI setting for Windows.
  • Ian Boyd
    Ian Boyd over 11 years
    @ChrisSmith Problem with using DWM to scale window contents is that text becomes fuzzy and hard to read. And i hate the fuzzies.
  • Chris Smith
    Chris Smith over 11 years
    @Ian Boyd - Fuzziness is caused by rendering at too low a DPI (i.e. standard because the app can't do anything else) and scaling up. There isn't enough image data there for each new pixel at the higher size so the video hardware fills in the blanks. That wouldn't be a problem if you rendered at a really high DPI and scaled down. That's how antialiasing works in modern real time 3d rendering.
  • studgeek
    studgeek over 11 years
    The case of a window spanning multiple monitors is an edge case, most users put windows on one monitor or another. So by having DPI per monitor you could optimize for most windows, then when a window spans monitors the app would just pick one monitor's DPI. Non-optimal, but its the edge case.
  • Lord_Navro
    Lord_Navro over 11 years
    You can have different dpi depending on screen, but apparently not on Windows. I'm having this problem with the Retina Macbook Pro hooked up to another screen. It works perfectly in Mac OS X as it scales according to screen's native DPI and resolution but not in Windows 7/8 as it wants the same dpi on the whole desktop. This is an issue in Windows because either you have to live with too large text in one display or too small text in the other.
  • Arjan
    Arjan over 10 years
    See also Olly's new answer ;-)
  • Ƭᴇcʜιᴇ007
    Ƭᴇcʜιᴇ007 over 10 years
    @Arjan Check out: superuser.com/a/422387/23133
  • Jason Goemaat
    Jason Goemaat over 10 years
    Funny that a lot of these answers are "that's impossible" when it is done in Windows 8, although it still isn't perfect. As for spanning monitors, it simply picks the DPI of the monitor where the top-left of the window is positioned. The problem I have is with RDP to windows 7. The retina display is too small and moving it to a 1920x1080 tv as the second display makes it look even smaller.
  • Josip Medved
    Josip Medved over 10 years
    In Windows 8.1 having two different dpi settings does work.
  • Gabatronic
    Gabatronic over 10 years
    Interestingly, I understand chrome doesn't do the display scaling properly since it's rendering the fonts off-screen or something. So the 145% thing for chrome is probably not that great (still probably pretty good though) :-)
  • G-Man Says 'Reinstate Monica'
    G-Man Says 'Reinstate Monica' over 9 years
    Are you using Windows 8.1? If so, you're just restating information that has been presented here multiple times already. If you're not using Windows 8.1, please provide specifics (what OS are you using, and how did you set different resolutions on two monitors?). Because people have been trying to do that for the past 5+ years without success (until eight months ago).
  • moritzebeling
    moritzebeling over 9 years
    If I have 13" my main laptop's and 19" external monitor, does that mean everything I see on my laptop's monitor will be too big?
  • ToolmakerSteve
    ToolmakerSteve almost 9 years
    @G-Man: he's saying he changed the resolution on the second monitor. Giving up on using the monitor's full native resolution. Most (all?) discrete graphics cards driving external monitors can be run at lower resolutions. (An extreme example would be dropping a 3840 x 2160 display by half, to 1920 x 1080.) Depending on the monitor, the result may be horrible blur, or quite useable. Changing the resolution implicitly changes the DPI. It means sacrificing some of the quality of the higher DPI device, in order to have two screens with similar characteristics.
  • ToolmakerSteve
    ToolmakerSteve almost 9 years
    panning/scrolling is not relevant. If a display and its driver is capable of changing resolution, then it is the resolution change (sacrificing the full detail of the display) that makes this approach work. Such a workaround can be done today, where supported by hardware, without panning/scrolling.
  • AshleyF
    AshleyF over 8 years
    That's good news about Windows 10, and thanks for a very well written answer!
  • Danny Staple
    Danny Staple about 8 years
    Setting to matching resolutions (as opposed to the manufacturer recommended ones) has had the best results in terms of matching size, although there's an impact in font blockiness and smoothing.
  • mimo
    mimo almost 8 years
    Is there also way to get it sorted with different ratio? I need to set my laptop display (15" full HD) to 125%, to be able to see anything. But my external display (27" full HD) I want to keep to 100% text size, to utilize big screen. But on this configuration the external display got blurry text. Is there a fix for that? Thanks
  • levi
    levi over 7 years
    This looks to be the case in Windows 10 as well. The only way I could fix the blurred text on the external monitor, was to plug in the external display, and then sign out/in, or restart the computer.
  • levi
    levi over 7 years
    See here for MS explanation - blogs.windows.com/buildingapps/2016/10/24/…
  • phuclv
    phuclv almost 7 years
    but it won't work for dpi settings like 125% or 150%