为什么Hammerspoon在不应该返回聚焦窗口时为零?

时间:2016-03-15 19:31:34

标签: macos lua

我试图使用hammerspoon来控制我的窗口(在MAC OSX上),但是遇到了一些问题。直接从getting started页面复制了用于向左移动聚焦窗口的代码:

hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Left", function()
  local win = hs.window.focusedWindow()
  local f = win:frame()
  local screen = win:screen()
  local max = screen:frame()

  f.x = max.x
  f.y = max.y
  f.w = max.w / 2
  f.h = max.h
  win:setFrame(f)
end)

然后我重新加载配置并尝试了。不幸的是,它没有工作并打开锤子控制台,出现以下错误:

*** ERROR: hs.hotkey callback error: /Users/my_secret_username/.hammerspoon/init.lua:25: attempt to index a nil value (local 'win')
stack traceback:
    /Users/my_secret_username/.hammerspoon/init.lua:25: in function </Users/my_secret_username/.hammerspoon/init.lua:23>

它说我的变量是零,但我不明白为什么它应该是零。我尝试在变量win之后插入一个(我在Hammerspoon中假设的)一个打印语句hs.console.printStyledtext(win)来检查它,但除了在错误之前打印nil之外,它还会抛出相同的错误。

奇怪的是,功能或代码&#34;工作&#34; (一旦屏幕向左移动),一旦它聚焦在控制台上,但我没有尝试过。

有没有人见过这种类型的bug并且能够修复它?

我确实看到了:

Lua Hammerspoon: hs.window.focusedWindow() is nil when assigned to a variable

似乎将变量从局部变为全局没有任何区别,并且错误仍然存​​在。

1 个答案:

答案 0 :(得分:0)

似乎它可能与我的操作系统不兼容。确保使用最新的OS X和Hammerspoon软件。