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

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.


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.