0

我正在用 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因为否则这些将不起作用。cmdctrl

不禁想到有更好的方法来告诉 Hammerspoon 将修饰符转移到新的箭头键上,而不必手动列出所有修饰符。

在那儿?

4

0 回答 0