하나의 키보드에 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을 통해 수행되며 이를 위해 미리 만들어진 도구는 없는 것 같습니다.hwdb안에 udev. 그런 다음 에서 새로운 키사이드를 사용할 수 있습니다 xkb. 두 키보드 모두 핵심 키보드로 유지됩니다.

2) xbindkeysXInput 이벤트를 이해하도록 확장하여 이를 사용하여 비핵심 키보드의 이벤트에 바인딩할 수 있습니다. 이를 위해서는 프로그래밍이 필요하지만 비교적 간단해야 합니다. 이 경우 이미 수행한 대로 키보드 하나를 코어 키보드에서 분리하십시오.

관련 정보