mac终端无法直接开启promotion高刷,但可验证识别状态(system_profiler命令查120hz)、解锁隐藏刷新率菜单(sudo defaults write displayresolutionenabled true后重启)、用metalhud实时确认生效(metalhud on显示120.00 hz且帧率稳定115–120 fps),或强制重载显示服务(sudo killall -hup windowserver)。

Mac终端无法直接“开启”ProMotion高刷模式,因为该功能由硬件与系统底层图形栈协同调度,终端不提供开关式指令;但可通过命令验证识别状态、解锁隐藏选项、强制刷新显示服务或绕过GUI限制,使已具备条件的Mac真正跑满120Hz。
确认显示器是否被系统真实识别出120Hz能力
这是所有后续操作的前提。终端查不到120Hz,图形界面里也不会有,强行设置无效。
打开“终端”,输入以下命令并回车:
system_profiler SPDisplaysDataType | grep -A 5 "Resolution\|Refresh"
在输出中查找“内建显示器”或外接显示器条目,重点确认是否存在形如“Refresh Rate: 120.00 Hz”的行;若只显示60Hz或完全无该字段,说明EDID未协商成功——换DP1.4/雷雳4线缆、重启显示器、升级固件后再试。
解锁外接显示器的高级刷新率菜单(GUI失效时的终端保底方案)
当按Option键悬停“缩放”仍不出现“刷新率”菜单,大概率是系统禁用了非标准分辨率枚举。此时需终端强制启用:
在终端中执行:
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true
输入管理员密码后,重启Mac。重启后再次进入“系统设置 → 显示器”,再按住Option键悬停“缩放”,即可看到原本隐藏的120Hz(HiDPI)等选项。
【该操作需管理员权限,且重启后才生效;若误执行,可用sudo defaults delete /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled恢复】
实时验证当前刷新率是否真跳变至120Hz
方法一:用MetalHUD浮层直观查看(推荐)
在终端依次执行:
echo 'metalhud(){ case "$1" in on|enable) launchctl setenv MTL_HUD_ENABLED 1;; off|disable) launchctl setenv MTL_HUD_ENABLED 0;; *) echo "MetalHUD is $(launchctl getenv MTL_HUD_ENABLED | sed "s/1/enabled/g; s/0/disabled/g")";; esac }' >> ~/.zshrc && source ~/.zshrc
然后输入:
metalhud on
MetalHUD第二行将明确显示“Refresh Rate: 120.00 Hz”,第三行帧率稳定在115–120 FPS区间,才算真正生效。
方法二:快速轮询当前值(无需安装工具)
在终端运行:
while true; do ioreg -lw0 | grep -i "refreshrate" | head -1; sleep 0.5; done
保持Safari网页快速滚动,观察输出值是否在60Hz ↔ 120Hz之间动态跳变;若始终卡在60Hz,说明低电量模式未关闭或macOS版本低于Monterey 12.0。
强制重置显示服务(黑屏/外接屏无信号时应急)
当外接显示器反复黑屏、仅内置屏亮、或“显示器”设置页空白时,可尝试软重载显示子系统:
执行:
sudo killall -HUP WindowServer
此命令会终止并立即重启窗口服务,不重启系统,也不丢失未保存文档;M系列Mac上成功率较高,Intel机型需先确认SIP状态。
更安全的替代操作是清除显示缓存:
defaults delete com.apple.windowserver DisplayResolutionCache











