0

我打开了两个 iTerm2 窗口,我想通过 Hammerspoon 放置和调整一个窗口,同时让另一个保持原样。

hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Right", function()
    local layout = {
        {"iTerm2", "/in/my/work/dir", nil, hs.geometry.rect(0.0, 0.40, 0.6, 0.6), nil, nil},
    }
    hs.layout.apply(layout)
end)

当我运行上面的代码时,什么也没有发生;Hammerspoon 没有找到我的 iTerm2 窗口,即使它看起来像我的窗口标题中有“/in/my/work/dir”。

当我替换"/in/my/work/dir"为 时nil,Hammerspoon 会移动并调整我所有的 iTerm2 窗口的大小。这是有道理的,因为我只要求所有 iTerm2 窗口而没有指定标题。

当我添加调试代码以将 iTerm2 窗口列表打印到控制台时,我只看到一个 iTerm2 窗口:

hs.fnutils.each(hs.application.runningApplications(), function(app)
    if string.find(app:name(), "iTerm2") then
         print("Found " .. app:name() .. " -- " .. app:title())
    end
end)

这打印:

找到 iTerm2 -- iTerm2

如何使用 Hammerspoon 将 iTerm2 窗口分开并仅移动/调整其中一个窗口的大小?

4

1 回答 1

0

当您传递完整的标题时,这实际上有效,而不仅仅是标题的一部分。我想当文档说“包含窗口标题的字符串”时我被误导了。它必须是完全匹配的。

于 2021-07-15T22:24:20.687 回答