终端无法直接设置mac屏幕刷新率,但可验证系统是否识别120hz(用system_profiler spdisplaysdatatype | grep -a 5 "resolution|refresh")、确认当前生效值(用ioreg -lw0 | grep -i "refreshrate"或metalhud)、重置显示服务(sudo killall -hup windowserver)以恢复失效的刷新率菜单。

Mac终端无法直接设置屏幕刷新率,但能验证系统是否识别出高刷能力、确认当前生效值、重置显示服务以恢复刷新率菜单——当图形界面卡死、黑屏或选项消失时,这些命令就是唯一可用的干预手段。
验证显示器是否被系统识别出120Hz能力
这一步决定你有没有操作基础。如果终端查不到120Hz,图形界面里也不会有,手动强点也没用。
打开“终端”,输入以下命令并回车:
system_profiler SPDisplaysDataType | grep -A 5 "Resolution\|Refresh"
在输出中找到外接显示器条目(通常带DisplayVendorID-XXXX字样),重点看是否有类似“Refresh Rate: 120.00 Hz”的行。若只显示60.00 Hz或压根没这行,说明线材、EDID或显示器固件未通过底层识别,【此时所有图形界面操作均无效】。
确认当前生效的刷新率数值
图形界面选了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区间,才代表高刷真正生效。
方法二:用ioreg快速核对(无需重启)
运行命令:
ioreg -lw0 | grep -i "refreshrate"
输出中若含“RefreshRate = 120000000”(单位是微秒),即对应120Hz。数值为60000000则为60Hz。
GUI失效时强制重置显示服务
当“系统设置→显示器”页面空白、缩放按钮不响应、外接屏无信号但内置屏正常时,WindowServer可能已卡死。
第一步:尝试软重启显示服务
在终端输入:
sudo killall -HUP WindowServer
该命令会终止当前图形会话并自动重建,耗时约3–5秒。适用于macOS Ventura及以上版本的多数M系列Mac;若提示权限拒绝,说明SIP已启用,跳过此步改用硬重启。
第二步:若上步无效且你确认使用的是macOS Sequoia 15.x
可尝试刷新显示配置缓存:
defaults delete com.apple.windowserver
执行后立即重启Mac。此操作会清除所有自定义分辨率与缩放偏好,但能解决EDID缓存错乱导致的刷新率选项消失问题。











