如何通过AppleScript更改主显示?
时间:2020-03-05 18:54:54 来源:igfitidea点击:
在"系统偏好设置"的"显示"窗格中,我可以通过将菜单栏从一个显示拖到另一个来手动更改主监视器。我想使它自动化,并将其作为AppleScript的一部分。
解决方案
回答
就像我们可以告诉System Events.app使Mac进入睡眠状态一样,我们也可以告诉Image Events.app弄乱显示器。图像事件应用程序提供"显示"集合。每个显示都有一个带有许多好东西的"配置文件"。但是,我刚才提到的所有内容都是只读的,因此我没有在脚本中执行此操作的好方法。
我们可能在Automator Hit记录中有更好的运气,运行System Preferences,转到Displays,将菜单栏拖动到另一个屏幕,然后单击Stop。我敢打赌,一定会起作用。
回答
我们应该查看是否可以通过AppleScript的用户界面脚本执行此操作。它允许我们操纵应用程序的GUI元素。当应用不直接支持脚本编写时很有用。我会自己测试,但周围没有多余的显示器。
这是MacTech的一个很好的概述。
回答
显示由/ 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
(如果有) - 通过使用" defaults"命令更改显示集,以选择主显示(" DisplaySets"和" IOFlags"键)。
- 重新启动窗口服务器:
killall -KILL SystemUIServer
。
回答
使用AppleScript,我们可以调用default
来编写更改主监视器的设置。