为 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/ 的操作权限。

  1. 重启 mac,出现苹果 logo 之前按住 command + r 组合键,启动到 recovery 模式
  2. 菜单栏-实用工具-终端,会打开一个终端窗口
  3. 输入命令 csrutil disable 即可禁用 SIP^[How to Disable System Integrity Protection (rootless) in Mac OS X]
  4. 重启 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"
  1. 外接显示器标记为 AppleDisplay
  2. 内建显示器标记为 AppleBacklightDisplay

因为我只在用外接显示器,所以只得到了外接显示器的信息,上述标记在打印信息的最后出现。

AppleDisplay 的后面有两个十六进制数:

  1. 前一个也就是 30ae ,是 DisplayVendorID
  2. 后一个也就是 61b5,是 DisplayProductID

添加显示配置文件

需要访问 SCALED RESOLUTIONS FOR YOUR MACBOOKS EXTERNAL MONITOR 针对自己的显示器按照自己的需求制作显示配置文件。

打开上面的链接会看到如下:

其中右边区域来更改配置,左边显示配置文件的内容。

  1. 修改 DisplayProductName 后的内容用来更改显示器的名称,比如我的是 T24H-10

  2. 修改 DisplayProductID ,这里修改为刚才获取的 61b5,字母需要小写

  3. 修改 DisplayVendorID ,这里修改为刚才获取的 30ae,字母需要小写

  4. 修改 Scale Resolutions,这里一般使用默认的配置,如果你要添加自己的分辨率,需要注意也要添加 2 倍于目标分辨率的项,观察默认的分辨率配置项都是成对的,一个目标分辨率,在其上有个二倍于目标分辨率的项

  5. 点击上图左边栏右下角的 DisplayProductID-61b5 按钮(按钮名称会根据 ProductId 命名),就会下载到一个文件 DisplayProductID-61b5.plist(我的这个文件下载到了 ~/Downloads 下)

  6. 新建一个目录,目录名为 DisplayVendorID-xxxx ,其中 xxxx 为上面查到的 30ae

    mkdir DisplayVendorID-30ae
    
  7. 重命名下载到的配置文件(去掉 .plist 后缀),并放置到刚创建的 DisplayVendorID-30ae 目录下:

    mv ~/Downloads/DisplayProductID-61b5.plist DisplayVendorID-30ae/DisplayProductID-61b5
    
  8. 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 需要重启,正好上面的显示配置也得重启生效。

  1. 重启 mac,出现苹果 logo 之前按住 command + r 组合键,启动到 recovery 模式
  2. 菜单栏-实用工具-终端,会打开一个终端窗口
  3. 输入命令 csrutil enable 即可开启 SIP
  4. 重启 mac 进入 macOS 正常模式

RDM 调整分辨率

  1. 点击 http://avi.alkalay.net/software/RDM/ 下载 RDM 最新版,此时是 v2.2

  2. 安装 RDM

  3. 运行 RDM 后,菜单栏会出现其图表,点击即可修改分辨率,带小闪电的就是开启 HiDPI 的,比如我的可选项:

最终选择的是 1920 * 1080,这样字体够大,同时整个显示效果够细腻,效果很明显,如果配置为 1920*1080 的分辨率不使用 HiDPI 就会很模糊,使用了 HiDPI 就会细腻了很多,很 Retina!

参考

上面的配置方法主要参考和使用了 SCALED RESOLUTIONS FOR YOUR MACBOOKS EXTERNAL MONITOR


macOS

1443 字

2019-01-02 17:20 +0800