Mac OS X 10.9.X 开启任意HiDPI
本帖最后由 paranoid2006 于 2014-7-18 09:00 编辑坛子里面已经有10.8.X的解决方案.这里是针对10.9.X方法很简单.
1.开启HiDPI
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool YES
2.获取你的显示器的两个 ID:
DisplayVendorID和DisplayProductID
打开终端, 命令:ioreg -l 输出一堆信息后,搜索DisplayVendorID 和DisplayProductID
比如我的显示器是DELL E2314H,这两个值是DisplayVendorID : 4268 DisplayProductID:61517
OK.在桌面上新建一个文件夹,名字格式是:DisplayVendorID-XXXX,其中XXXX是你的DisplayVendorID的16进制值小写.比如4268是10ac
于是,我会新建一个 DisplayVendorID-10ac的文件夹,然后在这个文件夹里面新建一个空白文件.名字格式是
DisplayProductID-YYYY,自然YYYY就是你的DisplayProductID的16进制了.
我新建的文件是 DisplayProductID-f04d.
最好下载我提供的模板编辑.附件中有PlistPro工具,编辑方便.
重点就是这个 XML文件的规范
下面是范例:
<?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>61517</integer>
<key>DisplayVendorID</key>
<integer>4268</integer>
<key>scale-resolutions</key>
<array>
<data>
AAAGQAAAA4QAAAABACAAAA==
</data>
<data>
AAAMgAAABwgAAAABACAAAA==
</data>
<data>
AAAFoAAAAyoAAAABACAAAA==
</data>
<data>
AAALQAAABlQAAAABACAAAA==
</data>
</array>
</dict>
</plist>
最后面那一坨,<array>和</array>以及里面的data如何来的
比如我想使用1600*900这个HiDPI,那么我就需要生成两个分辨率,其中一个是1600*900,一个是其双倍,3200*1800.
1600,900两个值的16进制是00000640 00000384 ;
3200,1800两个值的16进制是00000C80 00000708;
后面加上 00000001 00200000
于是会得到
00000640 00000384 00000001 00200000
00000C80 00000708 00000001 00200000
用附件中的PlistPro编辑这个DisplayProductID-f04d,计算并填写你想要的分辨率.
最后,把这个 DisplayVendorID-10ac 文件夹,拷贝到
/System/Library/Displays/Overrides/
注销就可以看到了.可以安装RDM或者SwitchResX切换.推荐使用RDM,在任务栏,方便快捷.
因为我的屏幕是16:9的,所以我默认加了四个分辨率(有四个data).不按照屏幕比例添加的分辨率会导致黑边
1600*900
3200*1800
1440*810
2880*1620
各位可以根据自己的屏幕规格来添加.改完注销就可以测试,无需重启.开启HiDPI后, 在关于本机-更多信息-显示器 里面看到的分辨率是x2之后的.
附件:
SwitchResX 4.4.1序列号:
Name : Franklin Williams
Code : B4C8F4D13843146D
或者
Name : Billy Hancock
Code : 309CC495384B4490
恭喜。
我2天前已搞定。谢谢您写的教程。
不明觉厉 请问开启之后显示效果会有怎么样的变化???比较好奇~~ 问下,是否是分辨率X2后的数值,必须在显卡接受范围内的,不然无效。
Mac 10.9.X 开启任意HiDPI
bluesrain 发表于 2014-7-17 18:51 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif问下,是否是分辨率X2后的数值,必须在显卡接受范围内的,不然无效。
不是,就是字面分辨率要显卡能输出。比如1600*900(HiDPI)要求显卡能输出1600*900以上分辨率。不要用x2计算。我的HD4000最高只能输出2560*1600
看来需要是集显 独显开不了 paranoid2006 发表于 2014-7-17 19:37 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
不是,就是字面分辨率要显卡能输出。比如1600*900(HiDPI)要求显卡能输出1600*900以上分辨率。不要用x2计算 ...
按照教程,可以开启1440*900的一半的HiDpi,就是720*450分辨率的。确实清晰,可是分辨率不对。高级的2560*1600,降到一半是1280*800,识别不到;2880*1800,也识别不到。 看看,谢谢分享! 这和SwitchResX+RDM弄出来有区别吗 不懂但是觉得相当好 bluesrain 发表于 2014-7-17 20:50 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
按照教程,可以开启1440*900的一半的HiDpi,就是720*450分辨率的。确实清晰,可是分辨率不对。高级的2560 ...
这个得你显示器原生分辨率高才行。实际显示分辨率只能<=你显示器的分辨率 照着教程做了 其他地方没感觉出差别 倒是有个地方觉得改了反而没有原来的好 就是英文输入法的那个美国国旗 改完就看不清了 另外在偏好设置里面也没有找到相对应的分辨率 不太明白,,比如如果显示器分辨率默认是 1920*1080那X2还能超越显示器极限? lunacory 发表于 2014-7-17 23:15 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
这个得你显示器原生分辨率高才行。实际显示分辨率只能
显示器原生最大1440*900,显卡最大2560*1600,求问最佳设置方式 bluesrain 发表于 2014-7-17 23:47 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
显示器原生最大1440*900,显卡最大2560*1600,求问最佳设置方式
老老实实1440*900吧……你显示器原生分辨率不高的话,鼓捣HiDPI毫无意义。 这么牛逼啊 不顶不行啊 對於我要求完美的人 唉… baicross 发表于 2014-7-17 22:46 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
这和SwitchResX+RDM弄出来有区别吗
同问?!!!!!! RDM啊!!!!!!!