macOS 下开启显示器 HiDPI 方法
备份文件
In Google Cloud
系统环境
操作系统:MacOS
显示器型号:DELL2515H
显示器分辨率:2560 * 1440 2K
MacOS 系统获取系统权限方法
MacOS 系统下,某些系统文件夹只有系统有权限读写,称为 System Integrity Protection(SIP),需要提前关闭。
创建相应文件夹和文件
首先在终端获取显示器的 DisplayVendorID 和 DisplayProductID。
1# 获取显示器 DisplayVendorID
2ioreg -l | grep "DisplayVendorID"
3
4# 获取显示器 DisplayProductID
5ioreg -l | grep "DisplayProductID"
在桌面新建一个文件夹,名称格式为 DisplayVendorID-xxxx,其中 xxxx 为显示器 DisplayVendorID 的 16 进制小写
在刚创建的文件夹中新建空白文件,名称格式为 DisplayProductID-xxxx,其中 xxxx 为显示器 DisplayProductID 的 16 进制小写
以上步骤可使用脚本 patch-edid.rb 自动生成。
生成步骤:
- 下载或手动创建文件 patch-edid.rb 到桌面目录
- 打开终端进入桌面目录
- 执行命令
ruby patch-edid.rb
- 脚本会在桌面目录创建好文件夹和文件(文件内容也有,但可能没有效果)
编辑新建的文件
<?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>53358</integer>
<key>DisplayVendorID</key>
<integer>4268</integer>
<key>scale-resolutions</key>
<array>
<data>AAAKAAAABXgAAAABACAAAA==</data>
<data>AAAUAAAACvAAAAABACAAAA==</data>
<data>AAAHgAAABDgAAAABACAAAA==</data>
<data>AAAPAAAACHAAAAABACAAAA==</data>
<data>AAAGQAAAA4QAAAABACAAAA==</data>
<data>AAAMgAAABwgAAAABACAAAA==</data>
<data>AAAFAAAAAtAAAAABACAAAA==</data>
<data>AAAKAAAABaAAAAABACAAAA==</data>
</array>
</dict>
</plist>
该文件是 XML 格式的,在 Mac 中被称为 plist(Property List)文件,即属性列表文件。可以使用工具 PlistPro 来编辑。
文件中共有 8 个 data 标签,其中每两个为一组,即(1,2)、(3,4)、(5,6)、(7,8),每一个 data 标签表示一个分辨率。
1# data 标签解码后
2'''
300000A00 000005A0 00000001 00200000
400001400 00000B40 00000001 00200000
5
600000780 00000438 00000001 00200000
700000F00 00000870 00000001 00200000
8
900000640 00000384 00000001 00200000
1000000C80 00000708 00000001 00200000
11
1200000500 000002D0 00000001 00200000
1300000A00 000005A0 00000001 00200000
14'''
15
16# 转为十进制
17
18'''
192560 1440 1 2097152
205120 2880 1 2097152
21
221920 1080 1 2097152
233840 2160 1 2097152
24
251600 900 1 2097152
263200 1800 1 2097152
27
281280 720 1 2097152
292560 1440 1 2097152
30'''
可见每组 data 标签中,第一个 data 标签为我们需要 HiDPI 的分辨率,第二个 data 标签是第一个标签分辨率的两倍。
可以根据自己的显示器随意填多个 data 标签组,编辑文件时需要填十六进制
使用新建的 HiDPI 分辨率
将新建的文件夹整个拷贝到目录 /System/Library/Displays/Contents/Resources/Overrides/ 中,如果有重复的文件夹,建议先把原来的文件夹备份。重启之后就可以生效了。
可以使用工具 SwitchResX 或 RDM(RetinaDisplayMenu) 来切换不同分辨率。