微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何区分 iTerm2 窗口以使用 Hammerspoon 仅移动/调整其中一个窗口的大小?

我打开了两个 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},}
    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 窗口并仅移动/调整其中一个窗口的大小?

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。