XKBキーボードレイアウトを拡張してカスタムバインディングを追加したいです。 pc104/usのレイアウトに基づいて次のバインディングを追加したいと思います。
AltGr-a → ä (adiaeresis)
AltGr-e → € (EuroSign)
私はこれを使ってこれを達成する方法を知っているとxkbcomp
思います。レベル3(setxkbmap -option lv3:ralt_switch
)またはグループ2(setxkbmap -option grp:switch
)。長所と短所は何ですか?
答え1
どちらも有効です。主な利点と欠点は互換性です。
setxkbmap -layout us -variant euro
XKB自体は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