hs.hotkey
API 不提供能够传播捕获的 keydown 事件的功能。API 可以,但使用hs.eventtap
它会涉及监视每个 keyDown
事件。
我将指出一个有点相关的GitHub 问题中提到的内容:
如果您希望组合键对大多数应用程序执行某些操作,而不是针对少数特定应用程序,则最好使用窗口过滤器或应用程序观察器并在活动应用程序更改时启用/禁用热键。
换句话说,对于你想要实现的,建议你使用hs.window.filter
API在进入应用程序时启用热键绑定,并在离开应用程序时禁用它,即:
-- Create a new hotkey
local yourHotkey = hs.hotkey.new({ "cmd" }, "0", function()
hs.eventtap.keyStrokes("000000000000000000")
end)
-- Initialize a Google Chrome window filter
local GoogleChromeWF = hs.window.filter.new("Google Chrome")
-- Subscribe to when your Google Chrome window is focused and unfocused
GoogleChromeWF
:subscribe(hs.window.filter.windowFocused, function()
-- Enable hotkey in Google Chrome
yourHotkey:enable()
end)
:subscribe(hs.window.filter.windowUnfocused, function()
-- Disable hotkey when focusing out of Google Chrome
yourHotkey:disable()
end)