Dual monitors on Windows - How do I set a different DPI or text size on each monitor?
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)
For lower DPI 2nd monitor (100% scale)
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%.
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:
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).
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...
Related videos on Youtube
Comments
-
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?
-
Ƭᴇcʜιᴇ007 over 10 yearspossible duplicate of Set DPI of individual applications in Windows
-
AshleyF about 10 yearsI unmarked the answer on this question as it appears Windows 8.1 now supports multiple DPI settings.
-
-
Joey over 14 yearsImagine what a program would have to try of it spans both monitors. Or is moved from one to the next ...
-
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 over 14 yearsI 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 over 14 yearsThis 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 about 13 yearsA 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 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 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 over 11 yearsThe 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 over 11 yearsYou 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 over 10 yearsSee also Olly's new answer ;-)
-
Ƭᴇcʜιᴇ007 over 10 years@Arjan Check out: superuser.com/a/422387/23133
-
Jason Goemaat over 10 yearsFunny 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 over 10 yearsIn Windows 8.1 having two different dpi settings does work.
-
Gabatronic over 10 yearsInterestingly, 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' over 9 yearsAre 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 over 9 yearsIf 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 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 almost 9 yearspanning/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 over 8 yearsThat's good news about Windows 10, and thanks for a very well written answer!
-
Danny Staple about 8 yearsSetting 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 almost 8 yearsIs 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 over 7 yearsThis 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 over 7 yearsSee here for MS explanation - blogs.windows.com/buildingapps/2016/10/24/…
-
phuclv almost 7 yearsbut it won't work for dpi settings like 125% or 150%