从“系统偏好设置”中的“显示器”面板中,我可以通过拖动菜单栏从一个显示器到另一个来手动更改主显示器。我想自动化这个过程,并将其作为AppleScript的一部分。
displayplacer list
命令。它会输出命令以将屏幕放在当前配置下。具有origin:(0,0)
的屏幕是带有“白色条”的主显示器。通过脚本、Automator、BetterTouchTool等来运行此终端命令。displayplacer "id:<leftScreenId> res:1920x1080 scaling:on origin:(0,0) degree:0" "id:<rightScreenId> res:1920x1080 scaling:on origin:(1920,0) degree:0"
示例配置文件2将白色条放在右侧监视器的菜单栏上。
displayplacer "id:<leftScreenId> res:1920x1080 scaling:on origin:(1920,0) degree:0" "id:<rightScreenId> res:1920x1080 scaling:on origin:(0,0) degree:0"
还可通过Homebrew进行安装:brew tap jakehilborn/jakehilborn && brew install displayplacer
。/Library/Preferences/com.apple.windowserver.plist
:
DisplayMainOnInternal
键。DisplaySets
键包含显示设置列表。第一个设置是正在使用的(需要检查)。IOFlags
键似乎表示显示器是否为主显示器(值为7)或非主显示器(值为3)。在使用Apple脚本之前,您可以手动更改显示配置,并保存/Library/Preferences/com.apple.windowserver.plist
文件以进行学习。
请注意以下过程未经测试!!!
使用AppleScript逐个更改plist文件中的键以更改主显示器:
/Library/Preferences/com.apple.windowserver.plist
(以防万一)defaults
命令更改选择主显示器的显示设置和IOFlags
键来更改显示设置killall -KILL SystemUIServer
你应该看看是否可以通过AppleScript的用户界面脚本来完成。它允许您操作应用程序的GUI元素;当应用程序不直接支持脚本时非常有用。我想自己测试一下,但我周围没有多余的显示器。
使用AppleScript,您可以调用default
来编写更改主监视器设置的命令。