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