0

我下定决心要让最近使用的选项卡切换适用于 Chrome。为此,我安装了 CLUT Chrome 浏览器扩展程序,它当前映射 alt-w 以切换到最后一个选项卡,并安装了 Hammerspoon,它允许拦截系统击键。

在 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...)

我搜索了,但无法弄清楚这个错误是什么意思。

编辑 - 这是最终解决方案,如果其他人想要在 Mac 上切换 MRU 选项卡:

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()
4

1 回答 1

1

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

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

于 2016-08-30T22:31:12.983 回答