기본 규칙과 evdev xkb 규칙의 차이점은 무엇입니까?

기본 규칙과 evdev xkb 규칙의 차이점은 무엇입니까?

방금 xf86-input-evdev에서 xf86-input-libinput으로 전환했는데 키보드 레이아웃이 깨졌습니다. 오른쪽 Alt가 포함된 화살표 키, 상황에 맞는 메뉴 키, 삭제 키, 숫자 패드 Enter 등이 모두 이상하게 바뀌었습니다. libinput debug-events그래도 올바른 키를 보여주었습니다. 확인 후Xorg.conf, 다음 줄을 발견했습니다.

Option "XkbRules" "base"

로 변경한 후 evdev키보드가 올바르게 작동했습니다.

나는 “XKB 구성 가이드”에서는 다양한 규칙을 언급하지만 차이점에 대해서는 자세히 설명하지 않습니다.

두 레이아웃의 차이점은 무엇입니까? libinput에서도 evdev 규칙을 사용해도 괜찮습니까?

답변1

tl;dr:Linux에서는 규칙을 사용해야 합니다 evdev. XKB 가이드에 명시된 대로 다음을 연결하세요.

Linux 시스템에서는evdev규칙은 가장 일반적으로 사용되며 다른 시스템에서는베이스규칙이 사용됩니다.


그 차이는 대체로 역사적입니다. evdev최신 Linux 커널 입력 하위 시스템이며 XKB가 처음 작성되었을 때는 존재하지 않았습니다. 소스코드를 살펴보면xkeyboard-configevdev를 사용하면 및 base규칙이 (대부분) 동일한 템플릿에서 생성된다는 것을 알 수 있습니다 . 하지만 시스템 XKB 데이터베이스에 생성된 파일을 와 비교하십시오 diff. base규칙이 특정 키보드 모델에 대한 기호를 로드하는 inet반면 규칙 evdev은 대부분의 모델별 항목을 없애고 보다 일반화된 세트를 로드하는 많은 항목을 볼 수 있습니다 .

/usr/share/X11/xkb/rules/base:
[...]
! model         =       symbols
  a4techKB21    =       +inet(media_nav_common)
  asus_laptop   =       +inet(media_common)
  acer_tm_800   =       +inet(acer_laptop)
  benqx730      =       +inet(benqx)
  btc9116u      =       +inet(btc9019u)
  chromebook    =       +inet(chromebook)
  dellsk8125    =       +inet(dell)
// and about 50 more lines
// generated from xkeyboard-config/rules/base.m_s.part

/usr/share/X11/xkb/rules/evdev
[...]
! model         =       symbols
  $evdevkbds    =   +inet(evdev)+inet(%m)
  chromebook    =   +inet(evdev)+inet(chromebook)
  applealu_jis  =   +inet(evdev)+macintosh_vndr/jp(alujiskeys)
  *             =   +inet(evdev)
// ...that's all.
// generated from xkeyboard-config/rules/evdev.m_s.part

아니요, 실제로는 규칙의 전체 모델-기호 섹션인 evdev반면 base버전은 60줄 이상입니다. 파일 evdev.m_s.part은 규칙의 해당 섹션에 대한 소스 템플릿입니다. 이는 모델-기호 매핑입니다( !model = symbol해당 섹션의 시작 부분에 있는 줄, 따라서 m_s파일 이름에 있음). 규칙의 유일한 다른 evdev 관련 섹션은 evdev.m_k.part모델-키코드 매핑( !model = keycodes규칙 섹션)인 파일에서 나오며 차이점은 비슷합니다.

자세한 내용은키코드그리고기호해당 규칙(특히 /usr/share/X11/xkb/keycodes/evdev/usr/share/X11/xkb/symbols/inet)에서 참조하는 파일입니다. 당신은 관심이있을 수 있습니다XKB 규칙 형식에 대한 이 글.

관련 정보