私は今init.lua
Hammerspoon で自分のキューを書いていて、私のキューのいくつかを他のキューに再マッピングしたいと思っています。具体的には、macOS でバックスラッシュ キーと削除キーを切り替えたいと考えています。
ただし、単純な削除とバックスラッシュは適切に機能しますが、アプリのフォーカスを別のアプリに切り替えてそこに何かを入力し、元のアプリに戻ると、削除キー (実際には切り替えたときのバックスラッシュ キー) が機能しなくなります。代わりに、フォーカスを中止する前にアプリ内の文字を削除します (つまり、最後から 2 番目にフォーカスされたアプリ)。しかし、そこに何かを入力してからもう一度削除しようとすると、突然削除が問題なく再び機能します。
なぜ突然機能しなくなったのだろうか。ただし、バグかもしれません。とにかく、ここでinit.lua
削除とバックスラッシュを切り替えます。
local VK_BACKSLASH = 0x2a
local VK_DELETE = 0x33
keyEventtap = hs.eventtap.new({
hs.eventtap.event.types.keyDown
}, function(event)
local bundleId = string.lower(hs.application.frontmostApplication():bundleID())
local keyCode = event:getKeyCode()
local flags = event:getFlags()
if keyCode == VK_DELETE then
if flagsMatches(flags, {'shift'}) then
event:setKeyCode(VK_BACKSLASH)
event:setFlags({shift=true})
else
event:setKeyCode(VK_BACKSLASH)
end
elseif keyCode == VK_BACKSLASH then
event:setKeyCode(VK_DELETE)
end
end)
keyEventtap:start()
ここで何が欠けていますか...?