macOS开启HiDPI外接2K显示器(解决字体发虚问题)

1.前言:

购置了一台2K显示器,但通过HDMI直接连接时的显示效果让人难以接受,因此我们需要启用苹果系统的HiDPI模式,以实现更完美的显示效果。

那么,为什么要启用HiDPI模式呢?2K显示器的分辨率为2560*1440,如果使用默认设置,显示器上的文字会显得特别小。我尝试过使用最新版的SwitchResX来强制将分辨率设置为1080P,但实际效果并不理想。虽然大小适应了,但字体看起来模糊。在查阅了许多资料后,我总结出了这篇文章中介绍的最简单的启用HiDPI模式的方法。希望这篇文章对你有帮助。

2.解决办法:

2.1 打开系统HiDPI (通过终端运行)

要启用系统的HiDPI,可通过在终端中运行以下命令:

bash 复制代码
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool YES

如果使用4K或更高分辨率的显示器,macOS通常原生支持HiDPI,您只需下载RDM即可。如果无法启用或找不到适当的分辨率,可以考虑使用配置文件。

2.2 禁用SIP (适用于macOS 10.11及以上版本)

从macOS 10.11 El Capitan开始,系统默认启用System Integrity Protection(SIP),以防止系统文件被修改。由于配置文件需要放在系统文件夹中,因此需要禁用SIP。

  • 开机或重启后,在听到开机声音后按住Command + R组合键,进入macOS恢复模式。

  • 在屏幕上方的菜单中选择 Utlities > Terminal 以打开终端。

  • 输入并执行以下命令:

    bash 复制代码
    csrutil disable
  • 然后重新启动系统,继续下一步。

在完成所有设置后,出于安全考虑,建议重新启用SIP。按照以上步骤进入恢复模式,输入并执行 csrutil enable

值得一提的是,最初我完成了这一步后直接使用SwitchResX的设置方法来强制开启1080P分辨率,但效果并不理想。尽管调整了显示大小,但所有显示都显得模糊不清。因此,我提供以下设置方法。

2.3 获得显示器信息

获得显示器信息有很多种方法,在这里用最简单的,我们分别需要获得显示器的 VendorID 和 ProductID (制造商ID 和 产品ID),在终端运行:
ioreg -lw0 | grep IODisplayPrefsKey | grep -o '/[^/]\+"$'

输出大概是这样的:

> ioreg -lw0 | grep IODisplayPrefsKey | grep -o '/[^/]\+"$'
/AppleBacklightDisplay-610-a029"
/AppleDisplay-10ac-d0ff"

第一条AppleBacklightDisplay-610-a029是MBP的内置显示屏。

第二条是外接显示器。如果你合上屏幕,这样只会输出正在使用的外接显示器。

着重在第二条,/AppleDisplay-10ac-d0ff" 这里的10acd0ff是两个十六进制数。第一个为VendorID,第二个为ProductID。电脑不同,显示的数值不同,这里的数值是我的电脑为例。

2.4 生成配置文件夹

2.4.1 简单方法

①生成配置文件

这一步的配置如果自己输入比较复杂,建议直接采用一键生成的方式进行配置,参考大神的制作

具体按下图设置,分辨率你直接按下图填入即可,两个ID需要根据你的实际情况进行填写。

点击生成之后就已经生成了配置文件了。

②创建配置文件夹

这一步简单,直接创建一个空白文件夹,重命名DisplayVendorID-xxx这里的xxx就是你上一步的VendorID。

③将①中的配置文件复制到②中的文件夹中

④将③中的文件夹拷贝到以下路径的文件夹中

# OS X 10.11及以上
DIR=/System/Library/Displays/Contents/Resources/Overrides
# OS X 10.10及以下
DIR=/System/Library/Displays/Overrides

到这里为止,准备工作就基本完成了。

如果这里的一键生成配置ok的话,直接跳到2.5即可。

如果这里的一键生成配置失效的话,就只能用2.4.2的复杂方法进行手动配置。

2.4.2 复杂方法

其实也不复杂,按照如下图所示,直接建立一个空白文档,将代码复制进去即可。

<?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>DisplayVendorID</key>
    <integer>xxxx</integer>           
    <key>DisplayProductID</key>
    <integer>xxxx</integer>           
    <key>scale-resolutions</key>
    <array>
        <data>AAAHgAAABDgAAAABACAAAA==</data>    <!-- 1920x1080 -->
        <data>AAAPAAAACHAAAAABACAAAA==</data>
        <data>AAAPAAAACHAAAAABACAAAA==</data>    <!-- 3840x2160 -->
        <data>AAAeAAAAEOAAAAABACAAAA==</data>
    </array>
</dict>
</plist>

文件配置完成之后就按照2.4.1中的②③④操作即可。

2.5 使用RDM进行切换

重启系统打开RDM,这就可以进行切换了。

如图:

3 最后总结

这个方法是我自己尝试过不仅能够调节分辨率,而且也不会出现字体发飘的现象,而且应该是比较安全的一个方法。

相关推荐
Macdo_cn5 小时前
My Metronome for Mac v1.4.2 我的节拍器 支持M、Intel芯片
macos·音视频
吹泡泡的派大星6 小时前
从0-1搭建mac环境最新版
macos
zhouwu_linux6 小时前
MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。
linux·运维·macos
丁总学Java6 小时前
在 macOS 的 ARM 架构上按住 Command (⌘) + Shift + .(点)。这将暂时显示隐藏文件和文件夹。
macos
青木川崎6 小时前
Mac下常用命令
macos
ClaNNEd@6 小时前
Mac端homebrew安装配置
macos·brew
nicekwell7 小时前
macos sequoia 禁用 ctrl+enter 打开鼠标右键菜单功能
macos
丁总学Java12 小时前
在 Mac ARM 架构的 macOS 系统上启用 F1 键作为 Snipaste 的截屏快捷键
macos·snipaste
天下皆白_唯我独黑15 小时前
brew Nushell mac升级版本
macos
刘什么洋啊Zz20 小时前
MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用
人工智能·macos·ai·ollama·deepseek