Xkb

XKB 組與級別

  • April 29, 2020

我想擴展我的 XKB 鍵盤佈局以添加自定義綁定。基於 pc104/us 佈局,我想添加如下綁定:

AltGr-a → ä (adiaeresis)
AltGr-e → € (EuroSign)

我想我知道如何使用xkbcomp. 但是,我不確定是否最好將附加綁定放入級別 3 ( setxkbmap -option lv3:ralt_switch) 或組 2 ( setxkbmap -option grp:switch)。優缺點都有什麼?

兩者都有效。主要優點和缺點是兼容性:

  • XKB 本身使用級別 3,例如 forsetxkbmap -layout us -variant eurosetxkbmap -option keypad:oss。將符號放入第 3 級可確保與之兼容。
  • 第 2 組確保與 的兼容性xmodmap,這會在其中放置額外的符號。xmodmap已棄用,但它仍然是快速添加其他綁定的好方法。

這是使用級別 3 的解決方案:

xkbcomp - :0 <<EOF
 xkb_keymap {
   xkb_keycodes { include "evdev+aliases(qwerty)"  };
   xkb_types    { include "complete"  };
   xkb_compat   { include "complete"  };
   xkb_symbols  { include "pc+us+inet(evdev)+level3(ralt_switch)+compose(caps)+keypad(oss)"
     key <LatA> { [ a, A, adiaeresis, Adiaeresis ] };  
     key <LatE> { [ e, E, EuroSign ] };  
     key <LatO> { [ o, O, odiaeresis, Odiaeresis ] };  
     key <LatS> { [ s, S, ssharp ] };  
     key <LatU> { [ u, U, udiaeresis, Udiaeresis ] };  
   };
   xkb_geometry { include "pc(pc104)"  };
 };
EOF

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