Mac High Sierra外接显示器设置(解决字体模糊问题,开启high dpi)

缘起

    前段时间看到同事的mac外接了个27寸的显示器,用起来挺带感的,超级大的屏幕~~~而大屏幕呢,也可以保护眼睛,保护颈椎

    

    于是呢,等到12.12的时候果断入手了一个24寸2K分辨率的屏幕。欢欢喜喜接上外接显示器,我却蒙了,这tm显示效果还不如ubuntu呢,本来以屏幕清晰锐利著称的mac,居然模糊的比ubuntu的模糊风格渲染更模糊,还晃眼睛。。。。。。


    这可忍孰不可忍,果断找找方法怎么提高下外接屏幕的显示质量~~~


折腾过程

    网上搜了下mac外接显示器模糊的问题,找到了一大票文章,然而呢,大部分都是相同的方法,并且都已经不适用于最新版本的high sierra系统。。。这个就非常坑了,只能是一个一个慢慢摸索了,下面列举下这几种方法


1、通过xcode tool的调试功能开启highdpi

各种文章里都会写 可以通过这个命令开启highdpi

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

然后,在显示器的分辨率里,就会出现带hidpi标志的高清分辨率(类似于降低分辨率,提高 清晰度),注意如果没出现可以按option按键,然后选择缩放按钮,就会发现分辨率列表变多了,如下图

然而呢,这个教程现在已经不适用与最新版本的mac系统了,按照操作处理后,并没有hidpi的分辨率出现,更不用说去选择了,所以这种方法直接不可用~~

2、通过设置字体平滑解决字体模糊

    然后呢,继续各种查资料,查到这么一种解决字体模糊的方法,文章介绍说可以通过下面的命令,将系统的字体平滑度调高,从而解决模糊问题,设置命令如下:

defaults -currentHost write -globalDomain AppleFontSmoothing -int 2

删除这个设置的命令如下:

defaults -currentHost delete -globalDomain AppleFontSmoothing

不过呢,很不幸,这种方法也基本没有什么作用,可能是在最新的系统上不可用了吧,sad。。。


3、通过设置显示器强制RGB渲染

    然后呢,继续搜,找到一篇文章说是有可能是mac把外接显示器识别为电视机(TV模式)了,导致显示效果比较差

    看了关于-》系统报告里外接显示器的信息,其实并没有被识别为TV,不过抱着试一试的想法,也设置了一下


    设置方法参考这两个地方如下,注意在高版本系统上需要关闭SIP,具体可以google,其实就是关闭系统的保护,让我们可以写入关键系统文件

http://www.ireckon.net/2013/03/force-rgb-mode-in-mac-os-x-to-fix-the-picture-quality-of-an-external-monitor/comment-page-6#comment-10104 

这是ruby代码 
http://embdev.net/attachment/168316/patch-edid.rb


不幸的是,这种方法试了之后发现也失效了,sad *2.。。。



4、通过RDM工具设置highdpi

    然后呢,只能继续搜咯,绝望.gif 找到了一个有界面的工具,叫做RDM,大家如果使用brew cask的话可以使用brew来安装,这样就可以随时更新咯,否则的话可以在这里下载http://www.appinn.com/mac-retina-displaymenu-for-macbook-pro/

安装完之后,效果如下图,RDM已经内置了很多的分辨率(比系统自带的多得多),其中带闪电标志的为hidpi分辨率,我们只要选择这些分辨率就可以了


注意:在使用之前记得也用下面的命令设置下高清分辨率

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


image.png


然后呢,这个工具终于,久违的,可以用啦,好开心~~~

选择高清分辨率后,屏幕显示效果就非常好了,字体比之前锐利太多~~~

当然,我用这个工具之后发现有个问题,就是和显示器比例相同的分辨率有的不可用,比如1600*900的16:9分辨率选择后就不生效,从而在屏幕变清晰的同时,屏幕两边出现了黑边~~~sad * 3 。。。。


5、设置最佳分辨率

    上面第四部,我们已经获得了很好的显示效果,胜利就在眼前咯,接下来是折腾出在rdm里可以生效的最佳分辨率的hidpi选项


    然后我又找到了一个开源项目,据称是可以通过命令行生成各种自定义分辨率的highdpi分辨率配置文件,从而向RDM中添加自定义分辨率

    项目地址在这https://github.com/syscl/Enable-HiDPI-OSX/ 使用方法比较简单,在这里我就不再赘述

    根据我自己试用的经验,此项目由于2017年基本没有维护,在最新系统上已经不可用了,具体表现就是我们可以成功执行配置文件,但是重启后没有生成想要的highdpi配置(在rdm里选择后依然不生效)


    因此,此方法不推荐,如果你遇到问题了可以一试,如果不行就别折腾了,因为项目基本没人维护


6、高清分辨率配置文件自动生成页面

    上面我们尝试使用开源的命令行工具去生成配置文件,但是最终失败了,只能是继续探索咯,sad* 4.。。。

    于是呢,又找到一篇文章,说是github上有个页面可以生成高清配置文件,同时还支持最新的high sierra系统,立马进去按说明使用了下,居然真的可以了,呵呵哈哈哈,好开心


页面地址在这,https://comsysto.github.io/Display-Override-PropertyList-File-Parser-and-Generator-with-HiDPI-Support-For-Scaled-Resolutions/ ,里边的说明非常详细,只要心细(不要搞混Product id和vender id),生成文件后按照说明拷贝到系统目录下,然后重启,就能在rdm里看到想要的hidpi的分辨率了,比如1600*900


如果这个地址不可用,可以试试我这个https://out0fmemory.github.io/mac_high_dpi/index.html(注意需要翻墙访问)

注意:这种方法依然需要关闭SIP,我们可以在成功之后再开启提高安全性


总结

    至此,我们已经得到很好的外接显示效果了,经过对比,2K的显示器使用1600*900的分辨率效果已经不错了(虽然比内置的还差点),如果你是4K分辨率,那完全可以使用1080p的highdpi模式,效果也是很不错的。

总体上的方案最终是:RDM软件 + hidpi配置生成页面


最后吐槽一句:mac对外接显示器真的很敷衍(或者为了推销自家的死贵的显示器?),你用虚拟机安装个黑苹果,投放到外接显示器就知道了,这简直不能比(在虚拟机里的黑苹果锐利无比,而原生的外接简直一坨翔。。。。)

参考文档

http://liuxiang.logdown.com/posts/153620-solve-the-mac-fonts-on-the-external-monitor-fuzzy-problem

https://www.v2ex.com/t/109983

https://www.v2ex.com/t/124074

https://www.jianshu.com/p/30e6f84ffce8

http://shuai.in/pie/durian/hidpi-mac-os-resolutions/

https://comsysto.github.io/Display-Override-PropertyList-File-Parser-and-Generator-with-HiDPI-Support-For-Scaled-Resolutions/



已有6位网友发表了看法:

1L访客 2018-04-26 09:45:44 回复
所以这个解决方案是降低显示器的分辨率到达清晰的目的.. 好吧 这不是我想要的,不知道过了这么久有新的解决方案出来么?
1L访客 2018-04-26 17:38:13 回复
@访客 这个是没办法的事,包括自带的屏幕也是2560 x 1600压缩到1280 x 800的,这样提升显示精度
2L访客 2018-05-28 10:30:12 回复
找了好多天,终于找到了解决办法。改了分辨率,同时增加了字体平滑度,终于能看清文字了!
感谢楼主
3L访客 2018-08-06 22:21:18 回复
谢谢楼主,也是升级了新系统,按照你说的方法使用rdm确实可以开启hidpi 显示效果完美了,但是最后两步骤,按照操作完成了后,在rdm众仍然没有1600*900的分辨率选项呢,目前只有1680*1050,如有方法 ,请告知 ,谢谢
3Lroot 2018-09-02 18:17:50 回复
@访客 现在也可以试试这个, 好像是从rdm fork出来的,应该会更完善些(注意,博主自己没试过,还有问题的同学可以试试)
https://github.com/usr-sse2/RDM
4Lroot 2018-09-02 18:17:39 回复
现在也可以试试这个, 好像是从rdm fork出来的,应该会更完善些(注意,博主自己没试过,还有问题的同学可以试试)
https://github.com/usr-sse2/RDM

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。