How do I make Windows scale the taskbar correctly after I switch to monitors with different DPIs?

26,152

Do you have the notebook monitor set as your default?

If your default monitor is set at 1920x1200 and you undock your notebook, then the default resolution of 1920x1200 is going to be scaled onto your non-default notebook monitor of 3200x1800.

But if you setup your notebook as your default monitor and undock then Windows will not need to transfer "default" control of explorer.exe, render and rescale the desktop from your other monitors resolution settings.

So, dock the notebook and set it as your default monitor. Make all the personalized settings you like for it as your default monitor. Setup your other monitors and then undock. The notebook monitor should maintain its settings, look and feel after being undocked.

Now dock and check the other monitors. Everything should work fine from now on.

Share:
26,152

Related videos on Youtube

gregmac
Author by

gregmac

Professional software developer since 2000. Have worked on many open-source projects, and am currently employed as a senior web application developer.

Updated on September 18, 2022

Comments

  • gregmac
    gregmac over 1 year

    I have a laptop that has a native 3200x1800 15" high-DPI display, and a docking station connected to two 1920x1200 23" monitors.

    If I sign in while the external monitors are disconnected, the task bar scales up on the 3200x1800 display and looks about the size I'd expect. However, if I then plug in the external monitors, most (but not all) apps seem to scale just fine, but the windows desktop and taskbar look enormous (for best effect, click to view full image and compare the font size of Recycle bin and taskbar to window contents):

    Desktop, signed in with external monitors disconnected


    If I sign in with the external monitors connected, then everything looks fine on them:

    Desktop, signed in with external monitors connected

    But when I disconnect the docking station, the opposite problem happens, and the taskbar/desktop looks tiny on the laptop screen, while most other apps scale as expected.


    Is there a way to set this up so I get correct scaling on all monitors, regardless of what's connected when I initially sign in/boot up?

    I'm fine with not using the laptop display at all while the external monitors are connected.

    I'm thinking the problem is just that Explorer itself isn't re-scaling when the DPI changes. Is there any way to force a rescale without logging in again, or is this simply a bug/limitation in Windows?


    EDIT 2015-10-25

    Updated with more photos.

    I took actual photos of the screen (while my colleagues mocked me and sent me links to how to use the print screen button..) because taking a screenshot of a mixed-DPI desktop while trying to debug a DPI problem is not exactly straight-forward.

    Resolution and scaling settings:

    Resolution and scaling settings

    Boot while docked

    When booted from docked, the laptop is small. The laptop screen scaling remains the same even when disconnected, regardless of what the main monitor is set to.

    Docked after boot from docked

    Boot while not docked

    When not docked, the laptop looks fine:

    Undocked after boot from undocked

    But the external monitors, when plugged in, look crazy:

    Docked after boot from undocked

    (keep in mind, these are 23" monitors, which are almost 13" vertical height)

    Comparing

    I think it's pretty clear just how huge the start menu is on the external monitors, but it's a bit harder to appreciate just how tiny the taskbar is on the laptop. This side-by-side image I think shows this (again, the Start8 menu makes it obvious, but it's the taskbar itself that is really tiny):

    tiny taskbar side-by-side


    EDIT 2015-11-03: Retest with Windows 10

    I have retested this with Windows 10 (10.0.10240).

    The most obvious good part: the scaling settings (size of items) actually work quite well, and there is a per-monitor scaling setting (that actually clearly works, unlike Windows 8's confusing "Let me choose one scaling level for all my displays" setting).I was very easily able to make it so everything is essentially the same physical size regardless of monitor.

    I've only used this for about an hour, but so far:

    Boot while docked

    • (Good) Scaling stays consistent, even docking and undocking
    • (Bad) Mouse pointer on 1920x1200 displays is comically huge: about the size of a "large" icon.

    Boot while undocked

    • (Good) Scaling stays consistent, even docking and undocking
    • (Good) Mouse pointer is fine on all monitors
    • (Bad) Tooltips over notification bar, for example, are tiny on 4k display
    • Handful of other non-DPI-aware apps that appear tiny on 4k display, and phyiscally are expected size on 1920x1200 displays but all text is scaled to about 75% of normal

    Windows 10 verdict

    Better than Windows 8, but not quite there.

    I've gone back to the old setup, once again, of just always running my 4k monitor at 1080p.

    The fact that scaling acts differently depending on boot method, and that something as fundamental as the mouse pointer doesn't even scale correctly, tells me that this is just not a normal scenario that Microsoft is designing for. I feel like at this rate, by the time the software issues are fixed, the price of 4k monitors will drop to the point that the 1920x1200's are at now, and the better solution will just be to run all 4k monitors.

    • gregmac
      gregmac over 9 years
      My kinda wasteful workaround is to just force the laptop display to always run at 1920x1080. Doesn't look quite as nice but at least it's usable. This is far from the ideal solution, however, so the question still stands.
    • mm201
      mm201 about 9 years
      As far as I'm aware, this is a bug/limitation in Windows. I also just tested this scenario in the Windows 10 technical preview and it seems that the taskbar issue has been fixed. (Desktop icons are still huge.) (Note that this reply was previously posted by me as an answer, at a time before I had permission to post replies. @starbox correctly pointed out that it's not an answer so I deleted it.)
    • qasdfdsaq
      qasdfdsaq over 8 years
      Does just closing and restarting Explorer work? It's not great but a potential workaround.
    • Rich
      Rich over 8 years
      "Does just closing and restarting Explorer work?" -- no :-(
    • harrymc
      harrymc over 8 years
      In Control Panel / Appearance and Personalization / Display, is "Let me choose one scaling level for all my displays" checked?
    • Rich
      Rich over 8 years
      @harrymc - "is "Let me choose one scaling level for all my displays" checked?" - no.
    • gregmac
      gregmac over 8 years
      It has been a while (question is almost a year old), but I believe I tried it both with and without that setting. If I have time I'll try it again when I'm at work on Monday. I'll also see if a screenshot (or maybe photo) of the whole desktop with monitors connected helps illustrate things, and update the post if so.
    • Alex S
      Alex S over 8 years
      @gregmac - Do share if this works out
    • harrymc
      harrymc over 8 years
      Start8 may not be DPI-aware. What happens if you use another one such as Classic Shell.
    • gregmac
      gregmac over 8 years
      It's not just Start8 though -- It's the taskbar itself that is tiny. Other non-DPI-aware apps also have the same issues that are visible with Start8. At this point, I am leaning to the conclusion that while high-DPI is supported, a mix of DPI is simply not well supported yet, even by Windows. Maybe the situation is better in Win10 (haven't tried yet) but right now, I'm happier with the experience of constant DPI even though it means running my 4k monitor as 1080p.
    • gregmac
      gregmac over 8 years
      For example, even DPI-aware apps -- like Explorer windows -- which do change DPI when dragged across monitors, don't do it fluidly: the entire window is either high-DPI or not. As you start moving the window from a low DPI to high DPI monitor, it is normal size on the first and tiny on the second, then once it's halfway across it rescales, and now is normal on the second but huge on the first. I don't regularly have windows span montiors, but I do move things around a lot, and having some apps jarringly rescaling while others (non-DPI-aware) are the wrong size is just too annoying for me.
    • harrymc
      harrymc over 8 years
      One monitor can only support one DPI, so it's entirely logical that a non-DPI-aware window will look different when dragged between monitors of differing DPI. I would guess that the taskbar weirdness is the result of a partial DPI-aware implementation by Microsoft. Windows 10 is supposed to much improve DPI handling which becomes totally automatic. All upgrades to Windows 10 I have personally seen passed smoothly and well (if considering it, you could see if any of the posts on this forum under the windows-10 tag could pertain to you), and the upgrade can be undone (but might take hours).
  • Rich
    Rich over 8 years
    Thanks -- I do have one of my low-res external monitors set as default when I'm docked (because it's the central one). I'll try changing that and report back here.
  • Rich
    Rich over 8 years
    This does work, but there are several problems: 1) I don't really want my laptop as the main monitor, as it's off to one side 2) this causes the task bar to disappear from the other monitors, as discussed at length at social.technet.microsoft.com/Forums/office/en-US/…
  • Rich
    Rich over 8 years
    I think that multi-monitor mixed-DPI support in Windows 8 is simply flaky and unreliable. MS have tried their best, but it's inherently a very complicated proposition. Their decision to hide all config and disallow users from tweaking Windows' guesses about what the users want just makes things worse :-(
  • gregmac
    gregmac over 8 years
    I did try setting that as my default monitor but it made absolutely no difference for me (unlike Rich, apparently -- which likely means there are driver/hardware-specific issues also complicating this). I'll upvote but I can't really accept the answer, as it didn't work for me. I did my Windows 10 testing leaving the notebook (4k) monitor as default as well, FWIW: results are edited in original question.
  • blackjack929
    blackjack929 over 8 years
    As someone who has spent 30 years (let's say 20 for GUI) working with Microsoft products, I can GUARANTEE that this will NOT solve EVERYONES mixed DPI issue. I shoot for Pareto's 80/20 rule. It has always worked for me with some form of tweaking. With today's 4k monitors coexisting with other DPI (1080) monitors, managed by Windows X, I would expect better integration and control too. But we are all here because of Microsoft. Whether it's driver specific, hardware or system, let's support each other in maintaining our sanity and finding answers.