2016-08-30 89 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

相關問題