在“系统偏好设置”的“显示”窗格中,我可以通过将菜单栏从一个显示拖动到另一个显示来手动更改主监视器。我想将其自动化并使其成为AppleScript的一部分。
答案 0 :(得分:4)
显示由/Library/Preferences/com.apple.windowserver.plist
首选项文件控制:
DisplayMainOnInternal
键的板载屏幕。DisplaySets
键包含显示集列表。第一组是使用的(事实要检查)。IOFlags
键似乎表示显示是否为主显示(值为7)或不显示(值为3)。在使用Apple Script之前,您可以手动更改显示配置,并保存/Library/Preferences/com.apple.windowserver.plist
文件的副本以进行研究。
请注意,以下程序尚未经过测试!!!
使用AppleScript,plist文件中的键会单独更改,以便更改主显示:
/Library/Preferences/com.apple.windowserver.plist
(如果是)DisplaySets
命令IOFlags
和defaults
键)
killall -KILL SystemUIServer
答案 1 :(得分:1)
您应该看看是否可以通过AppleScript的用户界面脚本执行此操作。它允许您操作应用程序的GUI元素;当应用程序不支持直接编写脚本时很有用。我自己测试一下,但周围没有任何额外的显示器。
答案 2 :(得分:0)
就像你可以告诉System Events.app让你的Mac睡觉一样,你可以告诉Image Events.app弄乱你的显示器。 Image Events应用程序提供“显示”集合。每个显示器都有一个带有很多好东西的“配置文件”。但是,我刚刚提到的所有内容都是只读的,所以我没有一个很好的方法可以在脚本中完成它。
你可能在Automator中有更好的运气 - 点击记录,运行系统偏好设置,转到显示,将菜单栏拖动到另一个屏幕,然后点击停止。我打赌有些东西会起作用。
答案 3 :(得分:0)
使用AppleScript,您可以调用default
来编写设置以更改主监视器。
答案 4 :(得分:0)
我写的工具displayplacer完成了此操作。
根据需要配置屏幕,将“白条”拖动到macOS系统设置中的主屏幕,然后执行displayplacer list
。它将输出运行命令以将屏幕置于其当前配置。带有origin:(0,0)
的屏幕是带有“白条”的主要显示。通过脚本,Automator,BetterTouchTool等运行此终端命令。
示例配置文件1将白色条放在左侧监视器的菜单栏上。
displayplacer "id:<leftScreenId> res:1920x1080 scaling:on origin:(0,0) degree:0" "id:<rightScreenId> res:1920x1080 scaling:on origin:(1920,0) degree:0"
示例配置文件1将白色条放在右侧监视器的菜单栏上。
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