사용자 정의 키보드 레이아웃을 만들었습니다. ~/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
오류 메시지가 발생하고(여전히 작동하지만 메시지는 아래에 복사됨) 파일은 원본과 약간 유사합니다.
keycodes
evdev+aliases(qwerty)
단지 가 아니라 포함하여evdev
이름이 변경되었습니다evdev+aliases(qwerty)
.types
많은 내용이 포함되어 있지만 내가 지정한 내용은 포함되지 않았으며(단지 포함된 것으로 보임 ) 이름이 /complete
로 변경되었습니다.complete
compat
내가 말한 내용이 포함되어 있지만 그 이상입니다virtual_modifiers
. 그 사람은 이라고도 불립니다complete
.symbols
name[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
확인할 수 있습니다 .여기.