기본 규칙과 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

간단히 말해서:Linux에서는 다음 규칙을 사용해야 합니다 evdev. XKB 지침에 명시된 대로 다음 링크를 연결합니다.

Linux 시스템에서는evdev규칙은 다른 시스템에서 가장 일반적으로 사용됩니다.~에 따르면사용 규칙.


그 차이는 대체로 역사적입니다. evdevXKB가 처음 작성되었을 때 존재하지 않았던 최신 Linux 커널 입력 하위 시스템입니다. 소스코드를 보면xkeyboard 구성evdev를 사용하면 및 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에 매핑합니다 . 규칙의 유일한 다른 evdev 관련 부분은 이 파일에서 나오며, 이는 모델-키코드 매핑( 규칙의 일부)이며 차이점은 비슷합니다.!model = symbolm_sevdev.m_k.part!model = keycodes

자세한 내용은 다음을 참조하세요.키 코드그리고상징이러한 규칙에서 참조하는 파일( /usr/share/X11/xkb/keycodes/evdev특히 /usr/share/X11/xkb/symbols/inet. 당신은 관심이 있을 수도 있습니다XKB 규칙 형식에 대한 이 문서.

관련 정보