element90
2 天前
macos 一键切换横竖屏(分辨率、刷新率...)需要安装一些工具和编写脚本,我这里可以提供。
你需要先安装 homebrew , 然后使用以下命令进行安装和使用
```bash
# 安装
brew tap jakehilborn/jakehilborn && brew install displayplacer
# 查看
displayplacer list
```
以我得为例,我有两个显示器(内置+外置),所以最后会显示这样一段配置命令:
displayplacer "id:CD734E9A-7030-FBE1-D6EB-D493D1CCC796 res:1680x1050 color_depth:4 enabled:true scaling:on origin:(0,0) degree:0" "id:0E89A38C-1F87-6851-6F11-2497A1657713 res:2560x1440 hz:59 color_depth:8 enabled:true scaling:off origin:(1680,0) degree:0"
一般第一个("CD734E9A-7030-FBE1-D6EB-D493D1CCC796")就是内置的显示器配置,而"0E89A38C-1F87-6851-6F11-2497A1657713",则是第二个外置显示屏。
你可以通过 mac 的显示器偏好手动调整你的显示器设置,然后执行 displayplacer list 命令后,复制其配置信息,将其封装成 bash 脚本:
```bash
funcion screen_vertical() {
# 垂直的配置,以我得为例,我将外置显示器垂直 90 度 -> degree:90
displayplacer "id:CD734E9A-7030-FBE1-D6EB-D493D1CCC796 res:1680x1050 color_depth:4 enabled:true scaling:on origin:(0,0) degree:0" "id:0E89A38C-1F87-6851-6F11-2497A1657713 res:2560x1440 hz:59 color_depth:8 enabled:true scaling:off origin:(1680,0) degree:90"
}
function screen_horizontal() {
# 默认/横向的配置,第一次执行 displayplacer list 时显示的配置,或者你可以再次调整出正常配置后执行 displayplacer list 再看一遍 -> degree:0
displayplacer "id:CD734E9A-7030-FBE1-D6EB-D493D1CCC796 res:1680x1050 color_depth:4 enabled:true scaling:on origin:(0,0) degree:0" "id:0E89A38C-1F87-6851-6F11-2497A1657713 res:2560x1440 hz:59 color_depth:8 enabled:true scaling:off origin:(1680,0) degree:0"
}
```
把上述 bash 放到~/.zshrc(zsh shell) 或者~/.bashrc(bash shell) , 一般现在 macos 用的是 zsh shell, 这样你开机之后就可以直接再终端直接使用 screen_vertical 和 screen_horizontal 切换显示器(垂直/横向)配置。
做到这里也只是完成终端/脚本切换。
可以通过自定义快捷键触发脚本,我这里使用的是 Alfred (想象大部分 mac 用户都会安装它)
打开 Alfred 的配置,点开 Workflows ,在左侧面板最下方点击 "+" 号,添加一个自定义的 workflow (添加时问你创建的模板,选择 Blank Workflow 即可),然后基本上填写 name 然后点击 create 即可。
右击空白处点 Triggers->Hotkey ,创建一个 hotkey 触发方式,里面设置自己想触发的组合快捷键
继续右击空白处点 Actions->Run Script ,在 Script 处追加一行命令,比如 screen_vertical 或者 screen_horizontal 然后保存
然后再用鼠标将面板上的两个组件连接在一切,这就完成了一个快捷键切换配置,你可以同样的方式再添加一个 workflow ,来完成不同快捷键切换不同配置(横竖屏)