如何让键盘键的和弦暂时改变键盘映射?

ws_*_*421 10 xkb keyboard-layout xcape

我真的习惯了的“同时vi模式”功能KeyRemap4MacBook它可以让你按住s,并d同时键,然后使用hjk,和l键作为箭头键。当sd被按下时,没有sd事件被触发,但是当我正常输入时,我没有注意到击球sd单独的任何延迟问题。

如何在 Linux(特别是 RHEL 6.4)中重新创建此功能?

我有几个想法:

  1. 如果s+d可以重新映射到修饰符,那么键h, j, k, l+modifier 可以相应地映射。(我现在使用的键盘没有任何备用修饰键可用于代替s+ d,另外,同时 Vi 模式的要点是将所有手指保持在主行上。 CapsLock已重新映射到ControlEscape)。

  2. 理想情况下,我会找到一种方法来使用系统设置或我已经在使用的 XKB 键盘之类的东西。如果这是不可能的,也许可以编写类似于xcape程序的东西(我正在使用它,它可以将键映射到不同的按键和修饰键符号)。 xcape虽然触发了键释放,因此必须对其进行调整以防止sd键太慢。

ws_*_*421 7

所以四年后,我终于对这个问题有了一个粗略的答案。答案是使用拦截工具,它使用 libevdev 抓取键盘输入并在重新发送之前对其进行处理。关于同步键映射,我为拦截工具制作了一个粗略的插件,称为Chorded Keymap,它可以让hjkl在同时按下s和时充当方向键d