W następstwie Grumbel odpowiedź „s, próbowałem xboxdrv rozwiązanie przy wsparciu swojego łącza oraz specjalnie do tej strony :
1. Zainstaluj xboxdrv 0.8.2 z Centrum oprogramowania Ubuntu.
W razie potrzeby zainstaluj także uinput i joydev . Zrobiłem to w ten sposób sudo modprobe uinput
+sudo modprobe joydev
2. Musisz wiedzieć o zdarzeniu gamepada:
Uruchom, udevadm monitor --udev
a następnie podłącz pad do gry:
$ 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)
Doszedłem do wniosku, że zdarzenie mojego gamepada to / dev / input / event8
3. Wyświetl nazwy wszystkich klawiszy, osi, przycisków gamepada.
Chodzi o uruchomienie xboxdrv
i przetestowanie wszystkich przycisków i zanotowanie wyniku na papierze.
$ 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
...
W moim przypadku wynikiem jest:
4. Ustaw plik konfiguracyjny
Utwórz plik xboxdrv-mouse.ini , aby ustawić oś XY oraz lewy i prawy przycisk myszy.
Tutaj ustawiam przyciski gamepad 2dla lewego przycisku myszy i 3dla prawego przycisku myszy:
[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 #
Zauważ, że wartość RE1_X i REL_Y wydaje się określać prędkość myszy, a poprzez zdefiniowanie wartości ujemnej odwraca oś (patrz tutaj dla REL_Y)
Kolejny przykład z większą definicją przycisku
[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 #
5. Uruchom
sudo xboxdrv --config xboxdrv-mouse.ini
Aby uniknąć uruchamiania go sudo
, utwórz regułę udev .
WNIOSEK
Działa dobrze, to dla mnie najlepsze rozwiązanie.
Nie przetestowano na Ubuntu, ale ten prosty przepis działa na Debian Jessie (z moim klasycznym padem USB iBuffalo ):
$ sudo apt install xserver-xorg-input-joystick
źródło
xboxdrv powinien być w stanie robić, co chcesz. Wymaga to jednak nieco konfiguracji, aby działać z gamepadami innymi niż Xbox, coś w stylu (sprawdź szczegóły na stronie podręcznika, użyj --evdev-debug, aby znaleźć nazwy przycisków i osi):
źródło
To samo dotyczy gamepad Nintendo 64
Trochę szczegółów
Moim celem było skonfigurowanie tego do grania w gry FPS, ponieważ nie jestem przyzwyczajony do grania za pomocą myszy i klawiatury. Jednak większość gier na GNU / Linux nie obsługuje zbyt dobrze gamepada. Próbowałem to zrobić jak w zaawansowanym trybie gamepad na słynnej grze N64 007 - GoldenEye.
W ten sposób możesz także użyć gamepada do zastąpienia myszy.
Moje wybory
Mam nadzieję, że pomoże to innym graczom.
Todo Jeśli ktoś wie, jak to zrobić, chciałbym wiedzieć, jak ustawić rodzaj „środkowego obszaru”, gdzie kursor myszy się nie porusza, nawet jeśli drążek nie jest idealnie pośrodku. Pozwoli to uniknąć poruszenia kursora, gdy nie korzystasz z gamepada, ale jest on nadal włączony.
źródło
Próbowałem xboxdrv i to działało, ale nigdy nie było dla mnie idealne i musiałem ręcznie skonfigurować plik konfiguracyjny. Lepszym rozwiązaniem wydaje się być projekt AntiMicro: https://github.com/Ryochan7/antimicro konfiguracja jest naprawdę prosta (chociaż GUI jest dość prosty), kilkoma kliknięciami udało mi się:
Myślę, że projekt jest całkiem nowy, ale dla mnie wydaje się, że działa prawie idealnie. Mały problem polega na tym, że tworzy ikonę „zasobnika”, która pozwala przełączać profile w lewym górnym rogu, co nie pasuje dobrze do schematu globalnego menu Ubuntu.
źródło