如何通过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来编写更改主监视器的设置。