当前位置: 首页 > 教程 > Mac软件教程 > Hammerspoon Mac如何进行多窗口布局?

Hammerspoon Mac如何进行多窗口布局?

Hammerspoon mac这是一款macOS平台的自动化工具,可以帮助我们大大提高效率,适用于窗口管理、音乐播放、应用管理,甚至是网络请求……基本可以做到指哪打哪。应用场景:常用软件使用快捷键启动、高效快速的窗口管理、高效的音乐播放控制等。

Hammerspoon Mac如何进行多窗口布局?

当您想要一直打开多个应用程序,并以特定方式安排他们的窗口时,您可以使用hs.layout扩展名:

 local laptopscreen = "Color LCD"
 local windowLayout = {
 {"Safari", nil, laptopscreen, hs.layout.left50, nil, nil},
 {"MAIl", nil, laptopscreen, hs.layout.right50, nil, nil},
 {"iTunes", "iTunes", laptopscreen, hs.layout.maximized, nil, nil},
 {"iTunes", "MiniPlayer", laptopscreen, nil, nil, hs.geometry.rect(0, -48, 400, 48)},
 }
 hs.layout.apply(windowLayout)

为了解决这个问题,我们首先在Mac上创建一个带有主屏幕名称的变量。您可以:name()hs.screen对象上使用该方法找到这些名称(例如hs.screen.allScreens()[1]:name(),在Hammerspoon控制台中键入)。

然后,我们创建一个描述我们想要的布局的表。表中的每个条目windowLayout都是另一个表,它选择我们感兴趣的窗口,并指定它们所需的位置和大小。

表格中的第一项是我们希望影响的应用程序的名称,第二项是我们希望影响的窗口的标题。这些项目中的任何一项都可以nil,但不能两者兼而有之。如果应用程序名称是,nil那么我们将在所有应用程序中匹配给定的窗口标题。如果窗口标题项是,nil那么我们将匹配给定应用程序的所有窗口。

第三项是放置窗口的屏幕名称

第四,第五和第六项用于以不同方式描述匹配窗口的布局。只有这些项目中的一个可具有一个值,并且该值应为包含四个项目,一个表xywh(水平位置,垂直位置,宽度和高度,分别地)。

第四项是将给予的矩形hs.window:moveToUnit()。的xyw,和h该矩形的值,是值之间0.0并且1.0,允许你位置的窗口作为显示器的级分,而不必关心显示器的精确分辨率(例如hs.layout.left50是一个预先定义的矩形{x=0, y=0, w=0.5, h=1})。

第五项是一个矩形,它将被赋予hs.window:setFrame()并且应该将位置/大小值指定为屏幕上的像素位置,但不考虑OS菜单栏和底座。

第六项类似于第五项,但它确实考虑了OS菜单栏和停靠。这在上面的例子中显示,它将iTunes Mini Player窗口放在屏幕的最左下方,即使底座在那里。请注意,我们使用hs.geometry.rect()辅助函数来构造rect表,并且y值为负,这意味着窗口的顶部应该在显示屏底部上方48个像素处开始。

这可能看起来是一组相当复杂的选项,但值得花一些时间学习,因为它允许极其强大的窗口布局,特别是对系统事件的反应(例如插入监视器时屏幕数量的变化,或者甚至只需按一个特定的热键即可恢复窗户的健全状况。

更多Mac软件教程,尽在macdown!

相关文章