为 mac 连接的 2k 显示器开启 HiDPI
最近入手了 thinkvision 的 24寸显示器 t24h-10,之所以选择这款显示器,除了很好的工业设计和做工外,最主要的是支持 type-c 连接,用来显示的同时,扩展出了 4 个常规的 USB3.0 接口和 1 个 3.5mm 耳麦接口,并且使用 type-c 的话,显示器可以为我的 macbook pro 反向供电。虽然是 2k(2560*1440) 的分辨率,但因为近距离使用还难免有颗粒感,同时显示内容也会偏小,直观感受就是不细腻,心里还是有个疙瘩!还好最近了解到 macOS 上拥有 HiDPI^[Macbook外接2K显示器时,如何开启HiDPI?] 渲染技术,本文就讲解一下如何为自己的 2K 显示器开启 HiDPI 实现 Retina 的效果^[有关retina和HiDPI那点事]。
高PPI(硬件) + HiDPI渲染(软件) = 更细腻的显示效果(retina)
操作平台:
- macbook pro 15寸 2016版
- thinkvision t24h-10
- macOS Mojave (10.14)
关闭 SIP
因为后面的配置中会需要调整 /System/
,System Integrity Protection(SIP) 会禁止操作,所以需要禁用 SIP,来获取对 /System/
的操作权限。
- 重启 mac,出现苹果 logo 之前按住
command
+r
组合键,启动到 recovery 模式 - 菜单栏-实用工具-终端,会打开一个终端窗口
- 输入命令
csrutil disable
即可禁用 SIP^[How to Disable System Integrity Protection (rootless) in Mac OS X] - 重启 mac 进入 macOS 正常模式
开启 HiDPI
使用命令:
sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true
获取显示器的 ID
使用命令获取显示器的 Product ID 和 Vendor ID:
ioreg -lw0 | grep IODisplayPrefsKey
我的 mac 获取的显示器信息结果是:
| | | | | | "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/ATY,Berbice@3/AMDFramebufferVIB/display0/AppleDisplay-30ae-61b5"
- 外接显示器标记为
AppleDisplay
- 内建显示器标记为
AppleBacklightDisplay
因为我只在用外接显示器,所以只得到了外接显示器的信息,上述标记在打印信息的最后出现。
AppleDisplay
的后面有两个十六进制数:
- 前一个也就是 30ae ,是
DisplayVendorID
- 后一个也就是 61b5,是
DisplayProductID
添加显示配置文件
需要访问 SCALED RESOLUTIONS FOR YOUR MACBOOKS EXTERNAL MONITOR 针对自己的显示器按照自己的需求制作显示配置文件。
打开上面的链接会看到如下:
其中右边区域来更改配置,左边显示配置文件的内容。
-
修改
DisplayProductName
后的内容用来更改显示器的名称,比如我的是T24H-10
-
修改
DisplayProductID
,这里修改为刚才获取的61b5
,字母需要小写 -
修改
DisplayVendorID
,这里修改为刚才获取的30ae
,字母需要小写 -
修改
Scale Resolutions
,这里一般使用默认的配置,如果你要添加自己的分辨率,需要注意也要添加 2 倍于目标分辨率的项,观察默认的分辨率配置项都是成对的,一个目标分辨率,在其上有个二倍于目标分辨率的项 -
点击上图左边栏右下角的
DisplayProductID-61b5
按钮(按钮名称会根据 ProductId 命名),就会下载到一个文件DisplayProductID-61b5.plist
(我的这个文件下载到了~/Downloads
下) -
新建一个目录,目录名为
DisplayVendorID-xxxx
,其中xxxx
为上面查到的30ae
:mkdir DisplayVendorID-30ae
-
重命名下载到的配置文件(去掉 .plist 后缀),并放置到刚创建的
DisplayVendorID-30ae
目录下:mv ~/Downloads/DisplayProductID-61b5.plist DisplayVendorID-30ae/DisplayProductID-61b5
-
将
DisplayVendorID-30ae
目录拷贝到/System/Library/Displays/Contents/Resources/Overrides/
下:sudo mv DisplayVendorID-30ae /System/Library/Displays/Contents/Resources/Overrides/
注意⚠️
上面第 8 小步可能在更新 macOS Catalina 后操作不能成功(提示 read-only file system
),评论区有网友提供了解决方案,需要修改系统根目录的权限,使用 mount
命令将目录从 read-only 变为 read-write:
sudo mount -uw /
killall Finder
在 mac 重启后会恢复为原有的权限,亲测可用,感谢网友提供解决方案!
开启 SIP
为了系统安全还是要把 SIP 开启的,更改 SIP 需要重启,正好上面的显示配置也得重启生效。
- 重启 mac,出现苹果 logo 之前按住
command
+r
组合键,启动到 recovery 模式 - 菜单栏-实用工具-终端,会打开一个终端窗口
- 输入命令
csrutil enable
即可开启 SIP - 重启 mac 进入 macOS 正常模式
RDM 调整分辨率
-
点击 http://avi.alkalay.net/software/RDM/ 下载 RDM 最新版,此时是 v2.2
-
安装 RDM
-
运行 RDM 后,菜单栏会出现其图表,点击即可修改分辨率,带小闪电的就是开启 HiDPI 的,比如我的可选项:
最终选择的是 1920 * 1080,这样字体够大,同时整个显示效果够细腻,效果很明显,如果配置为 1920*1080 的分辨率不使用 HiDPI 就会很模糊,使用了 HiDPI 就会细腻了很多,很 Retina!
参考
上面的配置方法主要参考和使用了 SCALED RESOLUTIONS FOR YOUR MACBOOKS EXTERNAL MONITOR。