XKB 그룹 및 수준

XKB 그룹 및 수준

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 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

관련 정보