如何设置显示器以通过键盘快捷键或"热键"进行更改?



我在macOS上使用2台显示器。在"系统偏好设置">>"显示>>外观"下,我可以更改显示设置,以便显示器并排、一个在另一个之上等。

我经常需要将设置从并排更改为另一个下方,并且每次都必须进入"系统偏好设置"并手动更改它很痛苦。

如何设置它,以便在我按下某些"热键"或键盘快捷键时自动执行?

我可以访问 Alfred for Mac,因此可以在自定义工作流程中编码,这应该有助于实现这一目标。

任何想法将不胜感激!

下面是一个调用 python 脚本以在显示集之间切换的脚本。它仅设置为更改第二个显示器的相对位置,但可以轻松扩展以使用三个或更多显示器。

请注意,您不必精确地了解新职位。Quartz 将自动调整事物,以提供显示空间无缝接触的最接近的配置。

set displaySet to first item of ¬
(choose from list {"On left", "On right", "On top", "On bottom"} ¬
with prompt "Choose position for second display.")
(* assuming 1280 x 800 pixel displays *)
if displaySet is "On top" then
changeSecondDisplayOrigin(0, -800)
else if displaySet is "On bottom" then
changeSecondDisplayOrigin(0, 800)
else if displaySet is "On left" then
changeSecondDisplayOrigin(-1280, 0)
else
changeSecondDisplayOrigin(1280, 0)
end if

on changeSecondDisplayOrigin(x, y)
do shell script "
/usr/bin/python <<END
import objc
import Quartz
from Quartz.CoreGraphics import CGGetActiveDisplayList
from Quartz.CoreGraphics import CGBeginDisplayConfiguration
from Quartz.CoreGraphics import CGConfigureDisplayOrigin
from Quartz.CoreGraphics import CGCompleteDisplayConfiguration
(activeErr, activeDisplays, displayCount) = Quartz.CGGetActiveDisplayList(2, None, None);
secondDisplay = activeDisplays[1];
(configErr, displayConfigRef) = CGBeginDisplayConfiguration(None);
moveErr = CGConfigureDisplayOrigin(displayConfigRef, secondDisplay, " & x & ", " & y & ");
completeErr = CGCompleteDisplayConfiguration(displayConfigRef, 2);
END"
end changeSecondDisplayOrigin

最新更新