MacBook外接2K显示器开启HiDPI

MacBook 使用 Retina 技术的屏幕,用久了之后外接的 2K 显示屏(分辨率 2560 * 1440)字很小,感觉很模糊。如果开启显示器的 HiDPI,分辨率会降到 1920 * 1080,但能获得和 MacBook 内置的 Retina 屏幕相似的显示效果。

以下内容在 MacOS Mojave 10.14.1 测试通过。

暂时关闭 SIP

SIP 全称 System Integrity Protection,即系统完整性保护。该机制保护系统核心文件和目录不被修改,即使 root 用户也不行。对显示器配置文件进行修改,首先需要关闭 SIP。

重启 MacBook,在开机时按住 Command + R,进入恢复模式。在终端中执行

csrutil disable

然后重启 MacBook。

注意:关闭 SIP 是不安全的,最后一定要记得重新开启。

开启 HiDPI

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

获取显示器信息

这一步需要获取外接显示器的 DisplayVendorID 和 DisplayProductID。使用这两个命令:

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

首先不外接显示器,输入以上命令,获取 MacBook 自己屏幕的 ID。然后外接显示器,输入同样的命令,多出的 DisplayVendorID 和 DisplayProductID 即是外接显示器的 ID。

注意:这里获取到的 ID 都是十进制的。

生成配置文件

打开 Scaled Resolutions for your MacBooks external Monitor 网站,按照提示填写内容。

  • DisplayProductName:在系统偏好设置中展示的显示器名称;
  • DisplayProductID:上一步中获取到的 DisplayProductID 的十六进制
  • DisplayVendorID:上一步中获取到的 DisplayVendorID 的十六进制
  • Scale Resolutions:这里选择分辨率,注意 HiDPI 要选择双倍的分辨率,例如 1920 * 1080 的 HiDPI,应该选择 3840 * 2160 分辨率,并勾选 HiDPI。我这里选择了两种分辨率:2560 * 14403840 * 2160 + HiDPI

复制生成的内容。

写入系统配置

cd /System/Library/Displays/Contents/Resources/Overrides/
sudo mkdir DisplayVendorID-XXXX
cd DisplayVendorID-XXXX
sudo touch DisplayProductID-YYYY
sudo vi DisplayProductID-YYYY

此处,XXXX 是 DisplayVendorID 的十六进制表示,YYYY 是 DisplayProductID 的十六进制表示。将上一步生成的内容写入到该文件中,重启电脑。

使用 RDM 切换分辨率

下载 RDM 并安装,连接显示器,即可在 RDM 中为外接显示器选择 HiDPI 分辨率(带有 ⚡️ 标识)。注意只能选择已经写入到配置文件中的 HiDPI 分辨率,否则无效。

开启 HiDPI 后,可以退出 RDM,以后每次连接显示器仍然有效。

重新开启 SIP

重启 MacBook,在开机时按住 Command + R,进入恢复模式。在终端中执行

csrutil enable

然后重启 MacBook。

参考链接

目录