Keyboard-Layout

如何讓鍵盤按鍵的和弦臨時更改鍵盤映射?

  • November 10, 2017

我已經習慣了KeyRemap4MacBook的“同步 Vi 模式”功能,它可以讓您同時按住sd鍵,然後使用hjkl鍵作為箭頭鍵。當sd一起按下時,不會觸發sd觸發事件,但是當我正常鍵入時,我沒有註意到擊中sd單獨出現任何延遲問題。

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

我有幾個想法:

  1. 如果s+d可以重新映射到修飾符,那麼鍵hjkl+ 修飾符可以相應地映射。(我現在使用的鍵盤沒有可用的備用修飾鍵代替s+ d,加上同時 Vi 模式的要點是將所有手指保持在主行上。 CapsLock已經重新映射到Controland Escape)。
  2. 理想情況下,我會找到一種方法來使用系統設置或我已經在使用的 XKB 鍵盤之類的東西。如果這是不可能的,也許可以編寫類似於xcape程序的東西(我正在使用它,它可以將鍵映射到不同的按鍵和修飾鍵符號)。 xcape但是觸發鍵釋放,因此必須對其進行調整以防止sd鍵太慢。

所以四年後,我終於對這個問題有了一個粗略的答案。答案是使用攔截工具,它使用 libevdev 來抓取鍵盤輸入並在重新發出之前對其進行處理。關於同時鍵映射,我為攔截工具製作了一個粗略的外掛,稱為Chorded Keymap,它可以讓h, j, k,在同時按下和l時起到箭頭鍵的作用。s``d

你不能用標準工具來做到這一點,你必須寫一些東西(可能很多xserver都會受到影響,如果你想讓它在X之外工作,就會有核心變化)。

這樣做的原因是設計所基於(和優化)的想法不包括正常鍵的和弦或從修飾符發出字元。

引用自:https://unix.stackexchange.com/questions/107352