xmodmap / 핵심 프로토콜 매핑의 래치 그룹(XChangeKeyboardMapping())

xmodmap / 핵심 프로토콜 매핑의 래치 그룹(XChangeKeyboardMapping())

사람들이 XKB를 사용해야 하기 때문에 이 질문은 아마도 계산을 검토해야 할 것입니다. 그러나 나는 그들이 그것을 어떻게 하는지 정말 궁금합니다.걸쇠그룹 전환에는 xmodmap /를 사용하십시오 XChangeKeyboardMapping().

xmodmap man 및 X11 lib 문서를 읽었으며 영어 및 러시아어 키보드 레이아웃을 사용하려면 키 기호를 특정 키 코드(예: [code_for_letter_l] --> XK_l XK_L XK_Cyrillic_de XK_Cyrillic_DE)에 매핑한 다음 특정 키 코드를 MODE_SWITCH에 매핑해야 하는 것 같습니다.

이 코드와 L을 누르면 러시아 문자 "Д"가 표시됩니다.

그런데 어떻게 잠글 수 있나요? Lock 수정자가 있지만 XK_Caps_Lock 키 기호(및 이해할 수 없는 ShiftLock)에서만 작동합니다.

MODE_SWITCH에 잠금을 추가해도 효과가 없습니다.

Linux 콘솔 키맵을 사용하여 AltGr에 그룹을 추가한 다음 AltGr_Lock에 일부 키 코드를 추가하여 잠글 수 있습니다. 효과가있다. 그런데 X에서는 어떻게 해야 할까요?

키릴어 및 기타 비라틴어 레이아웃(고대 배포판에는 많음)에 대한 여러 모드맵을 확인했는데 모든 경우에 사람들은 대문자 잠금을 사용하거나 잠금/래치를 전혀 사용하지 않습니다.

그래서 저는 XKB 이전(1996년 이전?)에는 "CTRL+Shift"와 같은 키를 사용하여 레이아웃을 전환하는 것이 불가능할 것이라고 생각했습니다. 그러나 그것은 터무니없게 들립니다.
내가 맞나요?

답변1

우선 이것을 이렇게 부른다.잠그다왜냐하면걸쇠해당 키가 다음 키에만 영향을 미친다는 것을 나타냅니다.

가지다아니요핵심 프로토콜에서 그룹을 잠그는 방법이지만 XKB 확장은 다음을 기반으로 일부 키를 추가합니다.ISO/IEC 9995.

XKB, 부록 C. 새로운 KeySym:ISO NEXT GROUP keysymdefs.h

#define XK_ISO_Next_Group 0xfe08

그래서 Win 키 대신 keycode 133 = ISO_Next_Group_Lock에 을 추가하여 ~/.xmodmap그룹을 전환했습니다.

관련 정보