修复 macOS Mojave 中严重的字体模糊渲染问题 #OneDevMinute
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
刚升级到 macOS Mojave,就发现几乎所有基于 ElectronJS 的应用程序(例如我选择的代码编辑器VSCode )都存在严重的字体渲染问题。
稍作研究后,不出我所料,我发现苹果在 macOS Mojave 中禁用了文本的子像素抗锯齿功能。它没了。
稍加研究便找到了解决方法,你只需打开你的Terminal应用程序(COMMAND (⌘) + SPACE然后搜索Terminal),并运行以下命令。
defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO
这将启用字体平滑功能——尤其适用于非 Retina 显示屏的外接显示器。你会感谢我的。运行此命令后,你需要注销并重新登录或重启 Mac 才能看到更改。差不多就是这样了。
🧐
解释:里面发生了什么事?!
一些评论者询问我是如何偶然发现这个解决方法的,因此为了提供技术方面的知识,我将更新这篇文章,添加更多细节。
🎯 苹果的 macOS 通常提供一系列defaults可以通过编程方式修改的设置。我每次全新安装操作系统时都有自己一套固定的工作流程。不过,这又是另一个故事了。
🤖 我记得以前用 High Sierra 系统的时候,需要在非苹果液晶显示器上启用子像素字体渲染。AppleFontSmoothing我把这个选项设为“开启”,或者也可以直接添加-int 1这个选项。
🤔 我在 macOS Mojave 里找不到那个设置defaults。我一直在里面找,尤其是在Apple Global Domain设置里,因为以前的设置就在那里。
🙃 啊哈!我发现了一个新设置,它叫做CGFontRenderingFontSmoothingDisabled——这个设置的作用很明显。它禁用平滑字体的渲染。它被设置为,1这意味着它被设置为TRUE或YES。
所以,我只需要碰碰运气,禁用这个字体平滑功能,也就是在非苹果/非 Retina LED 显示屏上启用字体平滑。为此,我编写了以下命令:
defaults write -g CGFontRenderingFontSmoothingDisabled -bool FALSE
- 默认设置— 访问 Mac OS X 用户默认系统
- -g | -globalDomain | NSGlobalDomain — 指定全局域。'-g' 和 '-globalDomain' 可以作为 NSGlobalDomain 的同义词使用。
- CGFontRenderingFontSmoothingDisabled——我想要禁用此设置以启用字体平滑功能。
- -bool [ean] — 允许用户为给定的首选项键指定一个布尔值。该值必须为
TRUE/YEStrue 或 false。FALSE/NO
我运行了这个命令,然后注销并重新登录检查是否有效,结果真的有效!太棒了!我希望苹果公司能修复这个问题,而不是在不久的将来更新中彻底禁用这个选项。
🎉 因为我是VSCode的忠实粉丝,所以我做了个默认设置前后的对比--diff,现在看来设置已经生效了0,而且运行正常,太棒了!
⚠️ 有人建议在General字体设置中启用字体平滑选项,但对我来说没用。这个选项已经启用了,但并没有改善情况。
和平!✌️
本文最初发布于“修复 macOS Mojave 字体渲染问题”页面。
文章来源:https://dev.to/ahmadawais/onedevminute-fixing-terrible-blurry-font-rendering-issue-in-macos-mojave--lck



