我试图使用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
似乎将变量从局部变为全局没有任何区别,并且错误仍然存在。
答案 0 :(得分:0)
似乎它可能与我的操作系统不兼容。确保使用最新的OS X和Hammerspoon软件。