X 커널 키 스캔 코드에서 키 기호로 매핑하는 방법은 무엇입니까?

X 커널 키 스캔 코드에서 키 기호로 매핑하는 방법은 무엇입니까?

~에 따르면이 페이지udev 키에서 X로의 직접 매핑은 없으며 자체 매핑이 있습니다.

X에는 ​​(준) 완전히 별개의 키 매핑 방법이 있습니다.

누군가가 udev를 무시하고 X가 왜 이런 일을 하는지 자세히 설명하거나 지적할 수 있습니까?

답변1

몇 가지 잘못된 가정을 했습니다. 다른 UNIX 변형에서 실행됩니다.

Udev는 키보드 처리에서 매우 제한된 역할만 수행합니다. 특정 키보드 모델을 감지하고 공급업체별 키를 선언합니다. Udev는 표준 키(예: A및 ) 에서는 작동하지 않으며 F1공급업체별 키(예: Brightness up또는 ) Wifi on/off(일반적으로 아이콘으로 표시됨)에서만 작동합니다. 이러한 키는 일반적으로 애플리케이션에서 사용되지 않지만 ACPI 이벤트에 매핑됩니다.

Linux 커널에는 일반적으로 사용되는 키에 대한 자체 매핑 체계가 있으며, 이는 명령을 사용하여 설정할 수 있습니다 loadkeys. 여러 개의 키보드가 연결되어 있는 경우 udev에서 수행하는 설정은 하나의 키보드에만 적용되며 loadkeys전역 커널 키맵에 따라 작동합니다.

커널의 키맵은 X가 제공하는 거의 모든 미묘한 차이를 다루지 않습니다. 따라서 X에는 자체 체계가 있으며 커널 설정을 대부분 무시합니다. X는 udev를 통해 설정된 키보드별 매핑을 고려합니다.

답변2

짐작하셨겠지만, X11 키보드 드라이버는 키보드 장치와 직접 통신하여 원시 키 입력을 키코드로 수신합니다.

이는 X11이 쿠킹된 이벤트뿐만 아니라 키보드에 대한 낮은 수준의 액세스를 원하기 때문입니다. 키코드와 키심볼 사이의 매핑은 여러 가지 방법으로 지정할 수 있습니다:

관련 정보