사용자 정의 키보드 레이아웃은 그대로 사용되지 않습니다.

사용자 정의 키보드 레이아웃은 그대로 사용되지 않습니다.

사용자 정의 키보드 레이아웃을 만들었습니다. ~/dot/c98.xkb다음과 같습니다.

// vim: ft=xkb
xkb_keymap {
    xkb_keycodes "k" { include "evdev(evdev)" };
    xkb_geometry "g" { include "pc(pc105)" };

    xkb_types "t" {
    };
    xkb_compat "c" {
    };
    xkb_symbols "s" {
    };
};

빈 블록에 실제로 뭔가가 있는 것 같지만 공간을 절약하기 위해 생략하겠습니다.

이를 컴파일하고 디컴파일하면 xkbcomp c98.xkb c98.xkm; xkbcomp c98.xkm c98_xkm.xkb원본 파일과 동일한 파일이 생성됩니다(디컴파일된 코드와 유사).

그러나 이렇게 하면 xkbcomp c98.xkb $DISPLAY; xkbcomp $DISPLAY c98_display.xkb오류 메시지가 발생하고(여전히 작동하지만 메시지는 아래에 복사됨) 파일은 원본과 약간 유사합니다.

  • keycodesevdev+aliases(qwerty)단지 가 아니라 포함하여 evdev이름이 변경되었습니다 evdev+aliases(qwerty).
  • types많은 내용이 포함되어 있지만 내가 지정한 내용은 포함되지 않았으며(단지 포함된 것으로 보임 ) 이름이 / complete로 변경되었습니다.complete
  • compat내가 말한 내용이 포함되어 있지만 그 이상입니다 virtual_modifiers. 그 사람은 이라고도 불립니다 complete.
  • symbolsname[group1]필드가 로 변경되고 English (US)일부 필드 에 이상한 값이 있는 것을 제외하고 포함해야 할 내용이 포함되어 있습니다. type이름 대신 인덱스를 저장하는 것 같은데 필드가 types손상되었기 때문에... 블록 이름이 로 변경되었습니다 pc+us+inet(evdev).
  • geometry블록 이름을 포함하여 포함해야 할 내용이 포함되어 있는 것 같습니다.

어떤 이유에서인지 xkbcomp일부 블록만 복사되고 및 keycodes필드 types는 무시되는 것 같습니다.


레이아웃을 설정하려고 할 때 위의 오류 메시지는 다음과 같습니다.

X Error of failed request:  BadAtom (invalid Atom parameter)
  Major opcode of failed request:  135 (XKEYBOARD)
  Minor opcode of failed request:  18 (XkbSetNames)
  Atom id in failed request:  0x435345
  Serial number of failed request:  70
  Current serial number in output stream:  73

전체 소스 코드와 와 c98_xkm.xkb의 차이점을 c98_display.xkb확인할 수 있습니다 .여기.

관련 정보