2016-08-30 91 views
0

我感觉已经决定让最近使用的标签切换工作在Chrome上。为此,我安装了CLUT Chrome浏览器扩展程序,该扩展程序目前将alt-w映射到最后一个选项卡,并安装了Hammerspoon,它允许拦截系统按键。MRU浏览器选项卡切换与Hammerspoon(Lua + Mac问题)

在init.lua我有这样的代码:

local ctrlTab = hotkey.new({"ctrl"}, "tab", function() 
    hs.eventtap.keyStroke({"alt"}, "w") 
end) 
chromeWatcher = hs.application.watcher.new(function(name, eventType, app) 
    if eventType ~= hs.application.watcher.activated then return end 
    if name == "Google Chrome" then 
    ctrlTab:enable() 
    else 
    ctrlTab:disable() 
    end 
end) 

chromeWatcher:start() 

不过,我在Hammerspoon得到这个错误:

attempt to index a nil value (global 'hotkey') 

stack traceback: 
    /Users/vonwao/.hammerspoon/init.lua:1: in main chunk 
    [C]: in function 'xpcall' 
    ...app/Contents/Resources/extensions/hs/_coresetup/init.lua:410: in function 'hs._coresetup.setup' 
    (...tail calls...) 

我搜索,但无法弄清楚这是什么错误表示。

编辑 - 这是最终的解决方案,如果其他人想MRU选项卡上的MAC转换:

local ctrlTab = hs.hotkey.new({"ctrl"}, "tab", nil, function() 
    hs.eventtap.keyStroke({"alt"}, "w") 
end) 
chromeWatcher = hs.application.watcher.new(function(name, eventType, app) 
    if eventType ~= hs.application.watcher.activated then return end 
    if name == "Google Chrome" then 
    ctrlTab:enable() 
    else 
    ctrlTab:disable() 
    end 
end) 

chromeWatcher:start() 

回答

1

您应该使用“hs.hotkey.new”的第一行。

另外,我建议你在hokey函数之前添加一个nil参数 - 你当前绑定的时刻是按下ctrl-tab键,然后发出一个击键。操作系统将会看到所有这些键一次发生。如果你在函数前传递一个零,当你释放ctrl-tab时,你的热键会触发,只有alt-w会被解释。

+0

谢谢。有效! – Otto

相关问题