我正在用 Hammerspoon 构建一个箭头簇
ctrl
+ a/s/d/w 模拟左/下/右/上箭头
这就是我现在的位置
-- Arrow cluster for lefties
local arrowHotkeys = {
a = hs.keycodes.map.left,
s = hs.keycodes.map.down,
d = hs.keycodes.map.right,
w = hs.keycodes.map.up
}
for key, arrow in pairs(arrowHotkeys) do
hs.hotkey.bind({ 'ctrl' }, key, function()
hs.eventtap.keyStroke(nil, arrow)
end)
-- On macOS, alt+arrow moves over a word
-- cmd+arrow mover over a line
-- alt+shift+arrow selects a word
-- cmd+shift+arrow selects a line
hs.hotkey.bind({ 'ctrl', 'alt' }, key, function()
hs.eventtap.keyStroke('alt', arrow)
end)
hs.hotkey.bind({ 'ctrl', 'cmd' }, key, function()
hs.eventtap.keyStroke('cmd', arrow)
end)
hs.hotkey.bind({ 'ctrl', 'cmd', 'shift' }, key, function()
hs.eventtap.keyStroke({'cmd', 'shift'}, arrow)
end)
hs.hotkey.bind({ 'ctrl', 'alt', 'shift' }, key, function()
hs.eventtap.keyStroke({'alt', 'shift'}, arrow)
end)
end
一切正常。然而——正如你所看到的——我不得不重新映射所有的shift
//组合,alt
因为否则这些将不起作用。cmd
ctrl
不禁想到有更好的方法来告诉 Hammerspoon 将修饰符转移到新的箭头键上,而不必手动列出所有修饰符。
在那儿?