It’s not news that the Chrome support for high DPI (hiDPI) has been a work in progress for some time, and within the past year or so, the proliferation of high DPI displays on laptops has made the need for good high dpi support even more important. I have messed with a few beta features before, and some of them ended up making Chrome completely unusable.
I mostly tolerated the lack of high DPI on 13.3” laptop screens, but now that I work with a 32” 4K desktop display, I can no longer use Chrome without true high DPI support. Unfortunately, the old tricks won’t work anymore, but fret not there is a solution that does.
For this tutorial, I have used:
- A Dell 32” 4K display
- A GeForce GTX 760 card (Display Port to Mini-DisplayPort cable)
- Windows 8.0, then Windows 8.1
- Chrome Version 34.0.1847.116 m
Solution for Chrome 37.0.2062.94+, August 2014
Sometime in late August, user have started reporting more changes, and users have reported the the registry changes no longer work. Ubergizmo commenter “Mark” was the first to bring a solution to this thread (thank you!), which I’m going to paste below. He says:
I’m running on the stable releases of Chrome. Yesterday Chrome upgraded to “37.0.2062.94 m” and since then I had the scaling issues. Changing the registry settings didn’t work (Chrome resets them). What _did_ work for me was the following:
* Right-click the Chrome icon shortcut on the taskbar
* Right-click the “Google Chrome” option
* Select “Properties” from the menu
* In the Target input field the path to Chrome is shown. I _added_ the following to this: /high-dpi-support=1 /force-device-scale-factor=1
* In my situation the Target field contains this line:
“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” /high-dpi-support=1 /force-device-scale-factor=1
I have since had the time to check his solution, and it is valid. It is documented on other sites like superuser, which picked up the solution from reddit. This change was linked to a Chrome bug which is described here in the Chromium development bug tracker as Issue 395425. Note that if you have Chrome pinned onto the taskbar, you may have to edit that shortcut, or create a new one and edit it. Beware that if this was indeed a bug, Google may “fix it” and undo these tweaks again.
Solution for Chrome 37, April 2014
Because it is still under active development, the high DPI activation has moved around a few times. Our savvy commenters have pointed our that Chrome 37+ is using a new registry location to ensure that Chrome for both 64bit and 32bit Windows knows that it needs to use HiDPI. According to a blog post on ecomerc.com, the registry locations are:
The post author was kind enough to add a registry ready to go located here (download link). As usual, you need to close all Chrome Windows and processes, then restart the browser.
Solution for Chrome 35.x
The Chrome product support page is not really of much help, but fortunately a friend of mine pointed out that this was an active issue that was being tracked in by the Chromium development community.
I headed there and found updated information including a fix that actually works on my system and that I expect to work on most systems.
The most recent version of Chrome toggles the hiDPI support based on a Windows Registry value. This is why the old tricks don’t work any more.
I know that’s it is a pain to edit the registry files, but fortunately, some handy little files are already available on the Chromium site. Fair warning: this is not something that Google officially supports, and you run registry commands from an unknown source at your own peril.
- Follow these links to download the registry files to Enable >hiDPI and to Disable hiDPI support.
- Once downloaded just double-click on one of the scripts
- You will get a Windows security warning saying that the scripts could not be verified
- Click “Run”
- The Windows User Account Control will ask you to confirm. Click “yes”
- The Registry Editor will issue a warning saying “Adding information can unintentionally change or delete values and cause components to stop working correctly. If you do not trust the source of this information in [file path], do not add it to the registry. Are you sure you want to continue?” Click Yes
- The registry editor should confirm that the “keys and values contained in [file path] have been successfully added to the registry”, in this location: HKEY_CURRENT_USER\Software\Google\Chrome\Profile (value = 0 or 1)
- Close and restart chrome
- HiDPI should be enabled!
Thanks for Eugene Girard for uploading them to the Chrome Google Groups, and to Alex Sorokoletov for fixing an encoding issues on the original scripts.
The good thing with these, is that even if Chrome became or garbled, you could disable hiDPI support without going in blind and angry.
If everything else fails…
By default, Chrome is launched by Windows with some image magnification on hi DPI displays: this is what makes the fonts fuzzy to start with.
Even if you don’t enable Chrome’s built-in hiDPI settings, running Chrome with “Disable display scaling on high DPI settings” will help make the HTML text not blurry — although they may appear very small.
This doesn’t “solve” the hiDPI issue, but it prevents the magnification from happening and you can set the default zoom to 130% (or anything) to compensate for the small size. Because the zoom is done on vector element, everything will look neat on a high-dpi screen.
- Find the Chrome shortcut on your computer, or create one
- Open its properties
- Go to the Compatibility Tab
- Check “Disable display scaling on high DPI settings”
- Click on OK or Apply.
- Close and restart Chrome
- Go in Chrome’s settings
- Search “zoom”
- Set Page Zoom to 150% (or something else) by default
Pending problems in hiDPI mode
I’m glad to report that the steps above helped me setup Chrome with my hiDPI display. However, I have noticed that the Chrome window now sometime refuses to be moved and/or re-sized for some period of time. This has been reported to the developers in this bug report. If you see crazy font spacing, it may be due to this known bug.
If I wait long enough, the freeze magically go away, but this is something that I had never experienced before switching to high DPI mode. In the meanwhile, all HTML functions still work properly and you can read/browse the content.
Keep in mind that hiDPI is still very much under development, so things may change and be unstable until this feature is officially rolled out. If that is of interest, you can follow the code issue tracking #149881 and report bugs. Since the steps showed above don’t seem to work for everyone, reporting issues with your specific configuration may help speed this up.
Finally, even after getting this to work, I noticed that hiDPI support was still better on both IE and Firefox, so you can still fall back on these.
In the past, you could go to the Chrome settings and enable hiDPI from there. Here were the steps, which now no longer work:
- In Chrome, go to “chrome://flags”
- Search “HiDPI Support” in the settings
- Make it go from “Default” to “Enabled”
- Restart Chrome
First of all, it may have worked at some point, but a lot of people got burned out when Chrome turned into a garbled mess which was unreadable. The solution was to go back and fix this by following the same steps, but “blind”. I did it, it wasn’t fun, and re-installing Chrome didn’t solve it since the settings were apparently left in Windows after the uninstall. This option was removed around March 13 2014.
You may also find a second proposition which consists in adding command-line arguments to the Chrome app shortcut to enable HiDPI. They look like this:
There are TWO hyphens, and unfortunately, neither combinations work with the latest builds.
Follow these steps at your own risk. It worked fine for me, but I haven’t had the opportunity to test them on other systems. I hope that it helps you enjoy your new hiDPI display. If all else fails, disable the app scaling as shown in “Additional Notes”, and scale the inside of the webpage by setting up a default zoom value larger than 100%. Without proper support for high-DPI, this is the closest that you will get to it.
If it doesn’t work, or if you have additional questions, drop a comment, and I will help if I can. If not, maybe someone else in the community can pitch in. If a few can pitch in a little, everyone’s computing experience will improve.