키보드의 xbindkeys?

키보드의 xbindkeys?

현재 설정이 있습니다.

  • 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) xbindkeysXInput 이벤트를 이해하도록 확장되어 핵심 키보드가 아닌 키보드의 이벤트를 바인딩하는 데 사용할 수 있습니다. 이를 위해서는 프로그래밍이 필요하지만 상대적으로 간단해야 합니다. 이 경우 이미 수행한 대로 코어 키보드에서 하나의 키보드를 분리하십시오.

관련 정보