AppleScript 无法直接切换 macOS 屏幕分辨率,需借助 displayplacer 工具实现;通过 brew 安装后用 displayplacer list 获取配置,再在 AppleScript 中调用 do shell script 执行,可封装为快捷指令并绑定全局快捷键,稳定兼容 macOS 12–14。
applescript 可以实现 macos 屏幕分辨率的自动化切换,但需注意:macos 原生不提供直接设置分辨率的 applescript 接口,实际是通过调用私有框架或模拟用户操作完成。目前稳定、可复用的方式依赖 displayplacer 工具配合 applescript 封装,而非纯 applescript 脚本。
使用 displayplacer 实现可靠切换
displayplacer 是一个开源命令行工具,能精确读取和设置每块显示器的分辨率、缩放、旋转、位置等参数,且兼容 macOS 12–14(包括 Sequoia 测试版)。AppleScript 仅作为“启动器”,真正执行靠它。
- 先安装
displayplacer:在终端运行brew install displayplacer(需提前装好 Homebrew) - 运行
displayplacer list查看当前显示器配置,复制输出中你想要保存的配置字符串(如:id:0x357A89B6 res:1920x1080 hz:60 color_depth:8 scaling:on origin:(0,0) degree:0) - 将该字符串保存为变量,在 AppleScript 中用
do shell script调用:do shell script "displayplacer 'id:0x357A89B6 res:1920x1080 hz:60 scaling:on'" - 可为不同场景(如“演示模式”“编码模式”“外接4K屏”)预设多组配置,分别封装成独立脚本或快速操作
封装为快速操作并绑定快捷键
把 AppleScript 变成一键可用的系统级功能,无需打开脚本编辑器。
- 打开“快捷指令”应用 → 点击右上角“+”新建快捷指令
- 添加操作:“运行 Shell 脚本”,粘贴
displayplacer命令(如上例) - 关闭“运行前询问”,勾选“在菜单栏中显示”(可选)
- 保存后,前往“系统设置 > 键盘 > 快捷键 > 快捷指令”,为其分配全局快捷键(如 ⌘⌥R)
- 之后按快捷键,即可秒级切换分辨率,无弹窗、无延迟
替代方案:纯 AppleScript 模拟点击(不推荐)
部分旧教程用 AppleScript 控制“系统设置”界面点击,但 macOS 13+ 后 UI 元素变动频繁,极易失效,且需开启辅助功能权限、响应慢、易被中断。
- 需启用“辅助功能”中“允许辅助设备控制你的 Mac”
- 脚本本质是激活“系统设置→显示器”,等待界面加载,再逐级点击“分辨率”下拉、选择项、确认
- 一旦系统设置窗口被遮挡、分辨率列表未加载完成,或 macOS 更新了控件 ID,脚本即崩溃
- 仅适合临时调试,不可用于日常高频切换
注意事项与避坑提示
实际部署前必须验证几项关键细节,否则可能黑屏或失配。
-
ID 不是固定值:同一台显示器每次连接可能分配不同 ID(如 0x357A89B6),建议用
displayplacer list在目标环境下实时获取 -
HiDPI 缩放需显式声明:如要启用“更大文本”效果,必须写
scaling:on;写scaling:off则为标准 DPI -
外接显示器需先识别:拔插后务必先执行一次
displayplacer list或重启 WindowServer(sudo killall -HUP WindowServer),否则新分辨率不出现 - 避免冲突快捷键:Option-Command-+/- 已被系统缩放占用,自定义快捷键请避开此组合


















