最近使用したタブの切り替えを Chrome で機能させたいと思っています。これを行うために、現在 alt-w を最後のタブに切り替える CLUT Chrome ブラウザー拡張機能をインストールし、システムのキーストロークをインターセプトできる 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()
ただし、ハンマースプーンで次のエラーが発生します。
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()