终端无法直接开启高刷模式,但可验证显示器是否被系统识别出120hz能力:运行system_profiler spdisplaysdatatype | grep -a 5 "resolution\|refresh",若输出含“refresh rate: 120.00 hz”,说明底层已识别;否则需检查线材、edid或固件。
macos本身不提供直接用终端“开启高刷新率模式”的开关命令,因为刷新率是否可用,取决于硬件识别、edid信息读取、接口带宽和系统ui限制这四层逻辑。终端无法“启用”一个硬件不支持或系统未枚举的刷新率,但它能帮你验证真实能力、绕过图形界面隐藏项、强制应用已识别但被禁用的选项——这才是终端真正起作用的地方。
确认显示器是否被系统正确识别出高刷能力
这是所有后续操作的前提。如果终端查不到120Hz,那图形界面里也不会有,手动强推也没用。
- 打开“终端”,输入以下命令并回车:
system_profiler SPDisplaysDataType | grep -A 5 "Resolution\|Refresh" - 在输出中找外接显示器或“内建显示器”条目,重点看含 Refresh Rate 的行,例如:
Refresh Rate: 120.00 Hz - 若看到120Hz(或75Hz/144Hz等),说明底层已识别;若只显示60Hz或无该字段,问题出在显示器EDID、线材或固件,需先换线/重启显示器/升级固件
按Option键调出隐藏刷新率后,用终端验证当前生效值
图形界面中通过Option+悬停“缩放”切换出“刷新率”菜单并选中120Hz后,系统未必立刻稳定应用。终端可实时确认当前输出帧率:
- 运行命令:
ioreg -lw0 | grep -i "refreshrate\|IOPowerManagement" - 更直观的方式是启用MetalHUD(GPU调试浮层):
在终端依次执行:
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区间,才代表高刷真正生效
终端强制刷新显示配置(GUI失效时的保底手段)
当设置点不开、反复黑屏、仅内置屏亮但外接屏无信号时,终端可重置显示服务而不必重启:
- 输入命令重启CoreDisplay服务:
sudo killall -HUP WindowServer(macOS Ventura及更新版本需先关闭SIP或使用其他方式,此命令对部分M系列Mac有效) - 更通用的安全做法是清除显示缓存:
defaults delete com.apple.windowserver DisplayResolutionEnabled && killall -HUP WindowServer - 执行后等待10秒,系统会重新枚举显示器能力,此时再进“系统设置 > 显示器”,按住Option键重试刷新率菜单
不推荐:绕过系统限制硬锁120Hz(仅限调试)
macOS没有官方支持的终端命令来“锁定120Hz”,强行覆盖可能引发黑屏、色彩异常或窗口动画卡顿。某些第三方工具(如SwitchResX)底层调用私有API实现,但其命令非系统原生,且M系列芯片兼容性差。除非用于短期测试,否则不建议使用类似:
cgdisplay-switch -r 120 -d DisplayVendorID-XXXX(该命令不存在于标准系统,依赖未签名工具)
真正稳定的高刷体验,靠的是硬件匹配 + 线材合规 + 系统版本到位 + 低电量模式关闭——终端只是帮你看清真相、清掉缓存、验明正身。











