0

最近使用したタブの切り替えを 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()
4

1 に答える 1

1

最初の行で「hs.hotkey.new」を使用する必要があります。

また、hokey 関数の前に nil 引数を追加することをお勧めします。現在、ctrl-tab が押された瞬間にバインドし、キーストロークを発行しています。OS は、これらすべてのキーが一度に発生するのを確認します。関数の前に nil を渡すと、ctrl-tab を離したときにホットキーがトリガーされ、alt-w のみが解釈されます。

于 2016-08-30T22:31:12.983 に答える