현재 설정이 있습니다.
- PS2 키보드 1개
- USB 키보드 1개
그런 다음 이것을 사용합니다.
xinput --create-master SecondKeyboard
xinput --reattach "Keyboard Id" "Master Id"
그들을 분리하십시오.
나는 사용자 정의 레이아웃을 만들 수 있다고 생각했고, 하나는 쓰기용 키보드이고 다른 하나는 단축키용 키보드였습니다. 그러다가 xkb가 여러 키를 클릭하는 레이아웃 생성을 허용하지 않는다는 것을 알게 되었습니다(예: ++ 를 누르고 capslock실행하는 것 ) .ctrlaltf4
그래서 내 생각은 xbindkeys가 다른 ID를 가지고 있기 때문에 키보드 중 하나에서만 실행되도록 하는 것입니다. 내가 이런 일을 할 수 있을까?
답변1
관련된 다양한 수준에 대한 간략한 요약:
키보드가 스캔 코드를 생성합니다. 이는 커널 입력 계층에 의해 키코드 이벤트에 매핑됩니다 /dev/input/eventX
. X evdev
드라이버는 이러한 이벤트를 가져와 주요 기호로 변환합니다. 그런 다음 XInput 확장은 가상 코어 키보드 슬레이브의 모든 이벤트를 일반 X 이벤트로 사용할 수 있게 만들고 다른 이벤트는 XInput 이벤트로만 사용할 수 있도록 합니다.
따라서 다음과 같은 옵션이 있습니다.
1) 키코드 매핑에 대한 사용자 정의 스캔 코드를 설정합니다. 이러한 매핑은 장치별로 이루어지므로 실제로 가능하지만 IOCTL을 통해 수행됩니다.하와드 데이터베이스존재하다 udev
. 그런 다음 에서 새로운 키사이드를 사용할 수 있습니다 xkb
. 두 키보드 모두 핵심 키보드로 유지됩니다.
2) xbindkeys
XInput 이벤트를 이해하도록 확장되어 핵심 키보드가 아닌 키보드의 이벤트를 바인딩하는 데 사용할 수 있습니다. 이를 위해서는 프로그래밍이 필요하지만 상대적으로 간단해야 합니다. 이 경우 이미 수행한 대로 코어 키보드에서 하나의 키보드를 분리하십시오.