XKB 组与级别

XKB 组与级别

我想扩展我的 XKB 键盘布局以添加自定义绑定。基于 pc104/us 布局,我想添加如下绑定:

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

我想我知道如何使用来实现这一点xkbcomp.但是我尚未决定是否最好将附加绑定放入3级setxkbmap -option lv3:ralt_switch) 或者第2组( setxkbmap -option grp:switch)。优缺点都有什么?

答案1

两者都有效。主要优点和缺点是兼容性:

  • 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

相关内容