入手一台新2K显示器后,直接连接MacbookPro字体太小,看着很不舒服,查阅网上教程后发现可以开启1080HiDPI模式,这样显示屏看着会比较舒服。记录一下设置过程。

1.关闭系统完整性保护(SIP)

重启mac,开机的时候按住command+R进入恢复模式,然后打开终端输入csrutil disable关闭SIP。
等修改完分辨率后可以重复上述操作,在终端输入csrutil enable保证电脑的安全性。

2.开启HiDPI

打开终端 键入

sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool YES

回车后,输入当前系统管理员的密码,继续回车确认。

3.获取你的显示器的两个 ID

DisplayVendorID和DisplayProductID
打开终端, 命令分别是:

ioreg -l | grep "DisplayVendorID"
ioreg -l | grep "DisplayProductID"

上面的两个命令会返回两个带10进制数字的结果,记下来,转换成16进制数字,其中第一个是用来命名文件夹的,第二个是用来命名文件的。在桌面上新建一个文件夹,名字格式是:DisplayVendorID-XXXX,其中XXXX是你的DisplayVendorID的16进制值小写。然后在这个文件夹里面新建一个空白文件,名字格式是DisplayProductID-YYYY,其中YYYY就是你的DisplayProductID的16进制。

4.编写DisplayProductID-YYYY文件

示例如下:

<?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>DisplayProductName</key>
  <string>PHL 272B8</string>
  <key>DisplayProductID</key>
  <integer>16652</integer>
  <key>DisplayVendorID</key>
  <integer>2351</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>

或:

<?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>10496</integer>
        <key>DisplayVendorID</key>
        <integer>8547</integer>
        <key>scale-resolutions</key>
        <array>
                <data>
                AAAKAAAABkAAAAABACAAAA==
                </data>
                <data>
                AAAUAAAADIAAAAABACAAAA==
                </data>
                <data>
                AAAKAAAABDgAAAABACAAAA==
                </data>
                <data>
                AAAUAAAACHAAAAABACAAAA==
                </data>
                <data>
                AAAHgAAABDgAAAABACAAAA==
                </data>
                <data>
                AAAPAAAACHAAAAABACAAAA==
                </data>
                <data>
                AAAGkAAABBoAAAABACAAAA==
                </data>
                <data>
                AAANIAAACDQAAAABACAAAA==
                </data>
                <data>
                AAAGQAAAA4QAAAABACAAAA==
                </data>
                <data>
                AAAMgAAABwgAAAABACAAAA==
                </data>
                <data>
                AAAFoAAAA4QAAAABACAAAA==
                </data>
                <data>
                AAALQAAABwgAAAABACAAAA==
                </data>
                <data>
                AAAINAAAA4QAAAABACAAAA==
                </data>
                <data>
                AAAQaAAABwgAAAABACAAAA==
                </data>
        </array>
</dict>
</plist>

注意:修改里面的DisplayVendorID和DisplayProductID成你自己的。

最后面那一坨,和以及里面的data如何来的,比如我想使用1600900这个HiDPI,那么我就需要生成两个分辨率,其中一个是1600900,一个是其双倍,3200*1800.1600,900两个值的16进制是00000640 00000384 ;3200,1800两个值的16进制是00000C80 00000708;后面加上 00000001 00200000于是会得到00000640 00000384 00000001 0020000000000C80 00000708 00000001 00200000
第二个范例中,设定的分辨率是:
2560x1600 2x (16:10)
2560x1080 2x (21:9)
1920x1080 2x (16:9)
1680x1050 2x (16:10)
1600x900 2x(16:9)
1440x900 2x(16:10)
2100x900 2x(21:9)

5.将文件夹复制到指定位置

最后,把这个 DisplayVendorID-XXXX 文件夹,拷贝到/System/Library/Displays/Contents/Resources/Overrides/(10.10及以下是 /System/Library/Displays/Overrides/ )重启系统就可以看到了。可以安装RDM在任务栏切换,方便快捷,各位可以根据自己的屏幕规格来添加。

参考资料:简书:Mac系统HiDPI问题知乎:请教一下如何在 macOS 下开启自定义 HiDPI?Enable HiDPI脚本开启1080HiDPI为 macOS 10.15 开启 HiDPI,让 2K 显示器更舒适