Xorg를 사용하여 두 개의 조이스틱 매핑

Xorg를 사용하여 두 개의 조이스틱 매핑

xorg.conf.d/내 디렉토리에 파일을 작성하여(파일 이름은 ) 51-joystick.conf조이스틱 입력을 키보드 입력에 매핑했습니다 .

이제 두 번째 조이스틱(동일 모델)의 입력을 매핑하여 함께 사용하고 싶습니다. 그래서 두 번째 파일을 작성했습니다 xorg.conf.d/. 내용은 거의 동일하고 장치 경로와 매핑만 다릅니다.

불행히도 다음과 같이 작동하지 않습니다.

  • 두 번째 조이스틱의 파일을 호출하면 51-joystick2.conf조이스틱이 더 이상 작동하지 않습니다.

  • 두 번째 조이스틱에 대한 파일을 호출하면 52-joystick2.conf두 번째 조이스틱만 작동합니다.

진행 방법을 설명해 줄 수 있는 사람이 있나요?

편집: 51-joystick.conf의 내용은 다음과 같습니다.

Section "InputClass"
    Identifier "Joystick 1 mapping"
    Option "device" "/dev/input/js0"
    Option "path" "/dev/input/js0"
    Option "StartKeyEnabled" "False"
    Option "StartMouseEnabled" "False"
    #MatchIsJoystick on
    #Option "MapAxis1" "keylow=113 keyhigh=114"
    #Option "MapAxis2" "keylow=111 keyhigh=116"
    Option "MapButton1" "key=52"
    Option "MapButton2" "key=53"
    Option "MapButton3" "key=38"
    Option "MapButton4" "key=39"
    Option "MapButton5" "key=40"
    Option "MapButton6" "key=54"
    Option "MapButton7" "key=14"
    Option "MapButton8" "key=10"
EndSection

편집(11/03/15): - 두 조이스틱 모두 명령과 함께 표시됩니다 xinput. 각각에는 두 개의 항목(두 개의 서로 다른 ID)이 있으며 키보드의 슬레이브로 표시됩니다. 4개의 항목은 정확히 동일한 이름("Logitech Gamepad F310(Keys)")을 가집니다. 첫 번째 조이스틱의 구성 파일에 더 높은 번호("52-joystick1.conf" 및 "51-joystick2.conf")를 지정하는 경우입니다. ), 첫 번째 조이스틱의 입력만 키보드 입력에 매핑됩니다.

  • 이것이제 첫 번째 조이스틱을 삽입할 때 xorg 로그에 기록되는 내용은 다음과 같습니다.

  • 이것이제 두 번째 조이스틱을 삽입할 때 xorg 로그에 기록되는 내용은 다음과 같습니다.

두 경우 모두 InputClasses "Joystick 1"과 "Joystick 2"가 두 조이스틱 모두에 적용되는 것처럼 보였고 결국에는 /dev/input/js0에 대한 매핑만 적용되었습니다.

답변1

나는 osx에서 컨트롤러 컴패니언을 사용하면서 이 아이디어를 얻었습니다.

둘 다 동일한 구성에 매핑합니다. 동일한 키를 갖지 않도록 키맵을 변경하거나 실제로 입력 유형을 시스템에서 지원하는 HID와 유사한 입력으로 변경할 수도 있습니다. 어느 쪽이든 여러 구성이 있는 경우 하나만 사용됩니다. js1이 열려 있는지 확인하기 위해 검사를 실행하세요. 그렇지 않으면 js0의 구성 1을 사용하고, 그렇지 않으면 두 가지를 모두 매핑하는 구성을 사용하세요.

Section "InputClass"
Identifier "Joystick 1 mapping"
    Option "device" "/dev/input/js0"
    Option "path" "/dev/input/js0"
    Option "StartKeyEnabled" "False"
    Option "StartMouseEnabled" "False"
    #MatchIsJoystick on
    #Option "MapAxis1" "keylow=113 keyhigh=114"
    #Option "MapAxis2" "keylow=111 keyhigh=116"
    Option "MapButton1" "key=52"
    Option "MapButton2" "key=53"
    Option "MapButton3" "key=38"
    Option "MapButton4" "key=39"
    Option "MapButton5" "key=40"
    Option "MapButton6" "key=54"
    Option "MapButton7" "key=14"
    Option "MapButton8" "key=10"
Identifier "Joystick 2 mapping"
    Option "device" "/dev/input/js1"
    Option "path" "/dev/input/js1"
    Option "StartKeyEnabled" "False"
    Option "StartMouseEnabled" "False"
    #MatchIsJoystick on
    #Option "MapAxis1" "keylow=113 keyhigh=114"
    #Option "MapAxis2" "keylow=111 keyhigh=116"
    Option "MapButton1" "key=52"
    Option "MapButton2" "key=53"
    Option "MapButton3" "key=38"
    Option "MapButton4" "key=39"
    Option "MapButton5" "key=40"
    Option "MapButton6" "key=54"
    Option "MapButton7" "key=14"
    Option "MapButton8" "key=10"
EndSection

관련 정보