How to turn on HiDPI mode on external display in macOS
When the Mac is connected to a high-resolution 2K monitor, for example, the DELL U2518D in my hand has a default resolution of 2560*1440, which is stuffed into a 25-inch screen. The text is actually a bit small.
But what I want should be:
If you directly use the Scale method to lower the resolution, for example, to 1080p:
In this way the text is large, but the edges will be blurred, because there is no HiDPI support like the Mac built-in screen.
So the function of enabling HiDPI as written in this article is to zoom in + clarity:
How to turn on the external display HiDPI, take macOS 10.15 as an example:
Disable SIP
- Power off, turn on and hold cmd+R to enter the recovery mode.
- Open the terminal in the utility.
- Input
csrutil disable
- Restart normally
Turn on HiDPI
Enter the system normally, open the terminal, and enter:
sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true
Query the external monitor number
- Query vendor:
ioreg -l | grep "DisplayVendorID"
- Query the current display:
ioreg -l | grep "DisplayProductID"
In this step, you will find the inner screen. Pay attention to the distinction. The one on the far right here is the outer screen.
In addition, when you change the display interface in the future, such as changing from HDMI to DP/mDP, etc., the DisplayProductID above will change and need to be reset.
Set HiDPI profile
- First convert the above two IDs to hexadecimal numbers. Just find a mobile calculator, or search for an online conversion tool on the web.
Which is:
`DisplayVendorID 4268 - 10ac`<br/>
`DisplayProductID 16700 - 413c`
- Create a new file anywhere (such as the desktop) and name it:
DisplayProductID-413c
Replace 413c above with your ID.
- Copy the xml below, paste it into the file above, and edit it with a text tool such as Notepad.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DisplayProductID</key>
<integer>16700</integer>
<key>DisplayVendorID</key>
<integer>4268</integer>
<key>scale-resolutions</key>
<array>
<data>AAAKAAAABaAAAAABACAAAA==</data>
<data>AAAFAAAAAtAAAAABACAAAA==</data>
<data>AAAPAAAACHAAAAABACAAAA==</data>
<data>AAAHgAAABDgAAAABACAAAA==</data>
<data>AAAMgAAABwgAAAABACAAAA==</data>
<data>AAAGQAAAA4QAAAABACAAAA==</data>
<data>AAAKAgAABaAAAAABACAAAA==</data>
<data>AAAKrAAABgAAAAABACAAAA==</data>
<data>AAAFVgAAAwAAAAABACAAAA==</data>
</array>
</dict>
</plist>
Replace the values under DisplayProductID and DisplayVendorID in xml with your own, and use decimal numbers directly here.
- Copy the configuration file to the system directory.
This directory has permission restrictions, so first run in the terminal:sudo mount -uw /
- Open the system folder, you can use Finder’s Go to Folder:
/System/Library/Displays/Contents/Resources/Overrides/
- Find the folder corresponding to your DisplayVendorID, and paste the newly created file into it
If there is no Vendor folder, just create a new folder according to the naming method of the red box above, and then paste the Product file.
Install RDM software
This is a software to modify the resolution, link:
https://avi.alkalay.net/software/RDM/
Restart
Select resolution in RDM
The one with ⚡️ in the picture is the newly opened resolution that supports HiDPI.
Here, choose 1920*1080, and you’re done!
DONATE:
https://www.patreon.com/avantcontra
There are many articles, patches, source code and some advanced Patron-only content there.
Or you can get a source code/patch directly in gumroad.
https://gumroad.com/avantcontra
MORE articles in my site:
https://floatbug.com