이 주제에 대해 많은 질문이 있습니다.
그러나 이러한 질문 / 답변의 목적은 게임 패드를 사용하여 게임을하는 것입니다.
게임 패드를 사용하여 마우스를 제어하는 솔루션을 원합니다.
모든 응용 프로그램에서 게임 패드로 마우스를 교체합니다.
이렇게하면 무선 게임 패드가있는 소파에서 거실의 컴퓨터를 제어 할 수 있습니다.
이 주제에 대해 많은 질문이 있습니다.
그러나 이러한 질문 / 답변의 목적은 게임 패드를 사용하여 게임을하는 것입니다.
게임 패드를 사용하여 마우스를 제어하는 솔루션을 원합니다.
모든 응용 프로그램에서 게임 패드로 마우스를 교체합니다.
이렇게하면 무선 게임 패드가있는 소파에서 거실의 컴퓨터를 제어 할 수 있습니다.
답변:
Grumbel 의 답변에 따라 링크 와 특히이 페이지를 지원하여 xboxdrv 솔루션을 시도 했습니다 .
필요한 경우 uinput 및 joydev 도 설치하십시오 . 나는 이런 식으로 했어 sudo modprobe uinput
+sudo modprobe joydev
실행 udevadm monitor --udev
후 게임 패드를 연결 :
$ udevadm monitor --udev
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
UDEV [6722.377700] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1 (usb)
UDEV [6722.383264] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0 (usb)
UDEV [6722.383333] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/0003:046D:C218.0003 (hid)
UDEV [6722.383389] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/0003:046D:C218.0003/hidraw/hidraw1 (hidraw)
UDEV [6722.387123] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/input/input10 (input)
UDEV [6722.399284] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/input/input10/event8 (input)
UDEV [6722.412128] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/input/input10/js0 (input)
게임 패드의 이벤트는 / dev / input / event8 이라고 결론지었습니다.
아이디어는 xboxdrv
모든 버튼 을 시작 하고 테스트하고 결과를 종이에 기록하는 것입니다.
$ sudo xboxdrv --evdev /dev/input/event8 --evdev-debug
Your Xbox/Xbox360 controller should now be available as:
/dev/input/js1
/dev/input/event9
Press Ctrl-c to quit, use '--silent' to suppress the event output
EV_ABS ABS_X 128
EV_ABS ABS_Y 128
...
필자의 경우 결과는 다음과 같습니다.
xboxdrv-mouse.ini 파일을 생성하여 XY 축과 왼쪽 및 오른쪽 마우스 버튼을 설정하십시오.
여기서 2마우스 왼쪽 버튼과 3마우스 오른쪽 버튼 에 게임 패드 버튼 을 설정 했습니다.
[xboxdrv]
evdev=/dev/input/event8
silent=true
[evdev-absmap]
ABS_X=x1
ABS_Y=y1
[ui-axismap]
x1=REL_X:10
y1=REL_Y:-10
[evdev-keymap]
BTN_THUMB=a
BTN_THUMB2=b
[ui-buttonmap]
a=BTN_LEFT
b=BTN_RIGHT
# EOF #
REl_X 및 REL_Y의 값은 마우스의 속도를 정의하는 것으로 보이며 음의 값을 정의하면 축이 반전됩니다 (REL_Y는 여기 참조).
버튼 정의가 더 많은 다른 예
[xboxdrv]
evdev=/dev/input/event8
silent=true
[evdev-absmap]
ABS_X=x1
ABS_Y=y1
ABS_HAT0X=x2
ABS_HAT0Y=y2
[ui-axismap]
x1=REL_X:10
y1=REL_Y:-10
x2=KEY_LEFT:KEY_RIGHT
y2=KEY_DOWN:KEY_UP
[evdev-keymap]
BTN_TRIGGER=x
BTN_TOP=y
BTN_THUMB=a
BTN_THUMB2=b
BTN_PINKIE=rt
BTN_BASE2=rb
BTN_TOP2=lt
BTN_BASE=lb
BTN_BASE3=back
BTN_BASE4=start
[ui-buttonmap]
x=KEY_KPENTER
y=KEY_SPACE
a=BTN_LEFT
b=BTN_RIGHT
rt=KEY_KP8
rb=KEY_KP2
lt=KEY_KP6
lb=KEY_KP4
back=KEY_LEFTSHIFT
start=KEY_RIGHTCTRL
# EOF #
sudo xboxdrv --config xboxdrv-mouse.ini
그것을 실행 방지하기 위해 sudo
, udev에 규칙을 만듭니다 .
그것은 잘 작동합니다, 그것은 나를위한 최고의 솔루션입니다.
우분투에서 테스트되지 않았지만 간단한 레시피는 Debian Jessie (내 iBuffalo 클래식 USB 게임 패드 사용 )에서 작동합니다.
$ sudo apt install xserver-xorg-input-joystick
xboxdrv 는 당신이 원하는 것을 할 수 있어야합니다. 그러나 Xbox가 아닌 게임 패드에서 작동하려면 약간의 구성이 필요합니다 (자세한 내용은 맨 페이지를 확인하고 버튼과 축 이름을 찾으려면 --evdev-debug를 사용하십시오).
#!/bin/sh
xboxdrv \
--evdev /dev/input/event9 \
--evdev-absmap ABS_X=X1,ABS_Y=y1 \
--evdev-absmap ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
--evdev-keymap BTN_BASE=LB,BTN_BASE2=RB \
--evdev-keymap BTN_BASE3=guide,BTN_TOP2=start,BTN_PINKIE=back \
--evdev-keymap BTN_THUMB=x,BTN_TOP=a,BTN_THUMB2=b,BTN_TRIGGER=y \
\
--ui-clear \
--ui-buttonmap rb=BTN_LEFT,lb=BTN_RIGHT,start=KEY_ESC,back=KEY_F1 \
--ui-buttonmap a=KEY_SPACE \
--ui-axismap X1=REL_X:20,Y1=REL_Y:20 \
--ui-axismap DPAD_X=KEY_A:KEY_D:1,DPAD_Y=KEY_W:KEY_S:1 \
-s "$@"
# EOF #
[xboxdrv]
evdev=/dev/input/event9
silent=true
[evdev-absmap]
ABS_X=x1
ABS_Y=y1
ABS_RZ=x2
ABS_Z=y2
ABS_HAT0X=dpad_x
ABS_HAT0Y=dpad_y
[axismap]
-X2=X2
[ui-axismap]
x1=REL_X:30
y1=REL_Y:30
x2=KEY_Q:KEY_D
y2=KEY_DOWN:KEY_UP
dpad_x=KEY_LEFT:KEY_RIGHT
dpad_y=KEY_DOWN:KEY_UP
[evdev-keymap]
BTN_THUMB2=b
BTN_THUMB=a
BTN_BASE3=back
BTN_BASE4=start
BTN_BASE=lb
BTN_BASE2=rb
[ui-buttonmap]
start=KEY_KPENTER
rb=BTN_RIGHT
lb=void
a=REL_WHEEL:-1:150
b=REL_WHEEL:1:150
back=BTN_LEFT
내 목표는 마우스와 키보드로 게임하는 데 익숙하지 않기 때문에 1 인칭 슈팅 게임을 플레이하도록 설정하는 것이 었습니다. 그러나 GNU / Linux의 게임은 대부분 게임 패드를 지원하지 않습니다. 나는 유명한 N64 Game 007-GoldenEye의 고급 게임 패드 모드와 같이하려고했습니다.
이 방법으로 게임 패드를 사용하여 마우스를 교체 할 수도 있습니다.
내 선택
이것이 다른 플레이어에게 도움이되기를 바랍니다.
할 일이 누군가가 그것을 할 방법을 알고있는 경우에, 나는 스틱이 중간에 완벽하게없는 경우에도 설정에 "중심 지역"의 종류가 움직이지 않는 커서가 마우스를 qhere 방법을 알고 관심을 가질 것입니다. 게임 패드를 사용하지 않지만 여전히 활성화되어 있으면 커서가 약간 움직이지 않습니다.
xboxdrv를 사용해 보았지만 일종의 효과가 있었지만 결코 완벽하지 않았으며 구성 파일을 수동으로 구성해야했습니다. 더 나은 솔루션은 AntiMicro 프로젝트 인 것 같습니다 : https://github.com/Ryochan7/antimicro 몇 번의 클릭만으로 구성이 정말 간단합니다 (GUI는 다소 기본적이지만).
나는 프로젝트가 매우 새롭다 고 생각하지만 나에게는 거의 완벽하게 작동하는 것 같습니다. 작은 문제는 Utraytu 전역 메뉴 구성표에 맞지 않는 왼쪽 상단 모서리의 프로파일을 전환 할 수있는 "트레이"아이콘을 생성한다는 것입니다.