This post was updated 1308 days ago and some of the ideas may be out of date.
一、前言:
大家平时用macbook开发的时候一般都喜欢外接一个显示器开发吧?这里我用了一台2k的显示器,我们要开启hidpi模式。
你们会问到为什么要开启hidpi模式呢?我的2k显示器是2560*1440分别率,如果采用默认的设置,那么在显示器上面的字会特别的小。如果我们开启显示器的hidpi模式就类似于macbook的retina模式,那么就会在图像大小不变的情况下,变的特别清晰。
我在升级最新的10.13.4后,我的2k显示器的分别率恢复默认了,SwitchResX软件不起作用了,因此我打算采用另一种轻量级的方式去开启2k显示器的hidpi模式。如果你的SwitchResX因为升级系统出问题了,或许这篇文章可以帮到你。
二、方法:
2.1 准备工具
1.PlistEdit Pro
2.RDM
3.16进制和10进制转换工具
这里工具我就不提供下载了,大家支持正版吧。
2.2 关闭System Integrity Protection SIP
我们重启macbook,在开机的时候按command+R进入恢复模式,然后我们在终端输入
csrutil disable
当我们设置完分辨率后可以再输入以下命令打开,保证安全性。
csrutil enable
2.3 开启macbook的hidpi
打开终端输入
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool YES
回车后,需要输入管理员密码,然后再回车,完毕。
2.4 获取2k显示器的DisplayVendorID和DisplayProductID
我们先不插外界显示器的连接线,获取macbook自己屏幕的ID,然后再插上外接显示器获取外界显示器的ID。
在终端输入如下命令
ioreg -l | grep "DisplayVendorID"
ioreg -l | grep "DisplayProductID"
我经过显示器的拔插就可以筛选出外接显示器的两个ID。DisplayVendorID为2513,DisplayProductID为32795
我们新建一个名字为DisplayVendorID-XXXX的文件夹,其中XXXX是DisplayVendorID的16进制小写即9d1,则文件夹名字为DisplayVendorID-9d1。然后再创建一个空白文件,这里你们可以直接用我的模板进行修改。传送门->点我下载
我们将这个文件命名为DisplayProductID-YYYY,其中YYYY即DisplayProductID的16进制小写即801b。
2.5 编辑DisplayProductID-YYYY文件
我们使用PlistEdit Pro去打开这个文件,然后在DisplayProductID和DisplayVendorID处填写这两个值的10进制原始值,然后下面按照如下规则去设置对应的分辨率。
例如我这里要设置 1920 * 1080 hidpi 的设置,我设置 1920 * 1080 和 3840 * 2160 两种。
1920的16进制是00000780,1080的16进制是00000438,后面需要拼接上00000001 00200000
即:
00000780 00000438 00000001 00200000
3840的16进制是00000F00,2160的16进制是00000870,后面需要拼接上00000001 00200000
00000F00 00000870 00000001 00200000
我们将这个数据添加到文件中去。
文件中添加了几个例子。
如图:
然后我们把这个文件夹拷贝到/System/Library/Displays/Contents/Resources/Overrides/中去
----------------------2021年04月22日更新-----------------------
macOS Big Sur系统不允许修改硬盘文件,需要采取以下方式
首先打开终端执行下面命令
sudo su
记得输入密码,在输入新建文件夹命令
mkdir -p /Library/Displays/Contents/Resources/Overrides/
然后把上面的文件夹拷贝到这个文件夹中去,然后重启电脑就可以了。
2.6 使用RDM进行切换
三、总结
工欲善其事,必先利其器。macbook配上一个2k甚至5k的显示器,无疑是可以提高程序员的工作效率的。以上是借鉴网上的一些文章,整理了一下,提供给大家一个方便的解决方案。
四、参考文献:
《有关retina和HiDPI那点事》
《如何在 Mac OS X 10.11 下开启自定义 HiDPI?》
《Mac OS X 10.11 开启任意显示器 开启HiDPI方法》
参与讨论