2

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

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)

然后,我回来时重新加载了我的配置并进行了尝试。不幸的是,它不起作用并打开hammerspoon控制台并出现以下错误:

*** 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在错误之前打印。

奇怪的是,一旦它专注于控制台,功能或代码“工作”(即向左移动 m 屏幕),但我没有尝试过其他任何事情。

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


我确实看到了:

Lua Hammerspoon:hs.window.focusedWindow() 分配给变量时为零

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

4

1 回答 1

0

看来这可能是我所拥有的操作系​​统不兼容。确保拥有最新的 OS X 和hammerspoon 软件。

于 2016-03-17T16:14:55.883 回答