How to change the Ctrl+0 zoom level in IE10

internet-explorer-10zoom

I often accidentally press zoom shortcuts, so I often use the Ctrl+0 shortcut to return to 100% zoom. However, I have a new laptop, and for some reason with it pressing Ctrl+0 changes the zoom level to 125% instead of 100%. This is unacceptable. How do I change it?

Best Answer

As Ashley mentioned, this is due to the per display dpi scaling in Windows 8. A noble attempt to make things not look so tiny on high dpi displays but in some cases, it breaks the web on "sort of high dpi" screens as many of you are seeing. And you thought IE was done doing that! Well, the folks working on the rendering engine might be, but somebody else is responsible for this one.

The problem is that Internet Explorer assumes if the dpi of the display is high, that you need this "fix" - but, say, on a laptop with a 13" display at 1920x1080, it wants to set 150% as the default zoom. That's insane. I could actually see 125%, but 150% is excessive.

Here is an actual solution which I also posted on the connect bug (https://connect.microsoft.com/IE/feedback/details/804990/internet-explorer-11-auto-zoom-feature-within-ie11#tabs) but thought it would be more useful here.

What you can do is supply a custom monitor.inf file for your display that overrides the "EDID" information (extended display information which includes all kinds of details about the display including its physical size). You are basically telling Windows you display's physical size is larger than it is. This lowers the dpi. A little larger and the dpi will be calculated such that Internet Explorer will default to 125%. Even larger and it will go back to 100% as the default zoom.

The easiest way to do this is if you have two displays where one behaves properly (e.g. in IE, default zoom is 100%). In my case, the internal laptop display was 13" @ 1920x1080 and my external display was 24" @ 1920x1080. The internal display had IE default zoom at 150% but on the external display it was 100%.

You do this by supplying a custom monitor.inf file - the trick is the EDID is a bunch of hex codes - rather than sort it out, you can copy the EDID from the working display to the high dpi display. I'll provide instructions here. If you want to edit the EDID yourself, say to supply a different size and make the default zoom, say 125%, get searchin' on that EDID format. There are some utilities that help you work it out but it also might take some experimentation. Proceed there at your own risk...

However, if you have two displays like I did:

Download this utility: http://www.monitortests.com/forum/Thread-Custom-Resolution-Utility-CRU

It basically queries your attached displays and shows you resolutions, refresh rates, etc...

Use it to save a monitor.inf file of both of your displays. Inside each of these files is a line that has the EDID for each display.

Replace the HKR,EDID_OVERRIDE line in the high dpi monitor.inf file (the one with the problem) with the same line from the other monitor.inf file.

You can't use this file directly, however, because Windows will complain that it isn't digitally signed. You need to turn that system check off (temporarily).

At a command prompt, enter:

shutdown /r /o /f /t 00

System will restart to a "Choose an option" screen.

Select "Troubleshoot" and then "Advanced Options."

Select "Startup Settings" and then "Restart."

When restarting, choose the option to "Disable Driver Signature Enforcement" (should be option 7).

Now, go into your screen resolution settings, right-click, Properties for the high dpi display, choose the Monitor tab, get Properties, Driver tab, then Update the Driver and follow the option (Browse, Let me Pick, Have Disk...) to grab your edited monitor.inf file.

It should work immediately but you might want to restart to turn driver signature enforcement back on.