首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hammerspoon切换MRU浏览器选项卡(Lua+Mac问题)

使用Hammerspoon切换MRU浏览器选项卡(Lua+Mac问题)
EN

Stack Overflow用户
提问于 2016-08-31 01:41:31
回答 1查看 447关注 0票数 0

我觉得我下定决心要让最近最常用的标签切换功能在Chrome上运行。为了做到这一点,我安装了CLUT Chrome浏览器扩展,它目前将alt-w映射到最后一个选项卡,并安装了Hammerspoon,它允许拦截系统按键。

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

代码语言:javascript
复制
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中得到了这个错误:

代码语言:javascript
复制
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标签:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 06:31:13

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39233870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档