XKBグループとレベル

XKBグループとレベル

XKBキーボードレイアウトを拡張してカスタムバインディングを追加したいです。 pc104/usのレイアウトに基づいて次のバインディングを追加したいと思います。

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

私はこれを使ってこれを達成する方法を知っているとxkbcomp思います。レベル3setxkbmap -option lv3:ralt_switch)またはグループ2setxkbmap -option grp:switch)。長所と短所は何ですか?

答え1

どちらも有効です。主な利点と欠点は互換性です。

  • setxkbmap -layout us -variant euroXKB自体はforまたはなどのレベル3を使用しますsetxkbmap -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

関連情報