Mengikuti jawaban Grumbel , saya mencoba solusi xboxdrv dengan dukungan tautannya dan khususnya halaman ini :
1. Instal xboxdrv 0.8.2 dari Ubuntu Software Center.
Instal juga uinput dan joydev jika diperlukan. Saya melakukannya dengan cara ini sudo modprobe uinput
+sudo modprobe joydev
2. Perlu tahu acara gamepad:
Luncurkan udevadm monitor --udev
lalu tancapkan game pad:
$ 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)
Saya menyimpulkan bahwa acara gamepad saya adalah / dev / input / event8
3. Tampilkan nama setiap tombol, sumbu, tombol gamepad.
Idenya adalah untuk meluncurkan xboxdrv
dan menguji setiap tombol dan mencatat hasilnya di atas kertas.
$ 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
...
Dalam kasus saya hasilnya adalah:
4. Atur file konfigurasi
Buat file xboxdrv-mouse.ini untuk mengatur sumbu XY dan tombol kiri dan kanan mouse.
Di sini saya mengatur tombol gamepad 2untuk tombol kiri mouse dan 3untuk tombol kanan mouse:
[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 #
Perhatikan bahwa nilai untuk REl_X dan REL_Y tampaknya menentukan kecepatan mouse, dan dengan mendefinisikan nilai negatif itu membalik sumbu (lihat di sini untuk REL_Y)
Contoh lain dengan lebih banyak definisi tombol
[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. Luncurkan
sudo xboxdrv --config xboxdrv-mouse.ini
Untuk menghindari peluncurannya sudo
, buat aturan udev .
KESIMPULAN
Ini berfungsi dengan baik, itu solusi terbaik bagi saya.
Belum teruji di ubuntu, tetapi resep sederhana itu berfungsi di Debian Jessie (dengan gamepad usb klasik iBuffalo saya ):
$ sudo apt install xserver-xorg-input-joystick
sumber
xboxdrv harus dapat melakukan apa yang Anda inginkan. Namun membutuhkan sedikit konfigurasi untuk bekerja dengan gamepad non-Xbox, sesuatu di sepanjang baris (periksa halaman manual untuk detail, gunakan --evdev-debug untuk mengetahui tombol dan nama sumbu):
sumber
Sama untuk gamepad Nintendo 64
Beberapa detail
Tujuan saya adalah untuk mengatur ini agar dapat dimainkan oleh game tembak orang pertama, karena saya tidak terbiasa bermain dengan mouse dan keyboard. Namun sebagian besar game di GNU / Linux tidak mendukung gamepad dengan sangat baik. Saya mencoba melakukan itu seperti mode gamepad canggih pada N64 Game 007 yang terkenal - GoldenEye.
Dengan cara ini, Anda juga dapat menggunakan gamepad untuk mengganti mouse Anda.
Pilihan saya
Semoga ini bisa membantu pemain lain.
Todo Jika seseorang tahu bagaimana melakukannya, saya akan tertarik untuk mengetahui cara mengatur semacam "area tengah" di mana kursor mouse tidak bergerak, bahkan jika tongkat tidak sempurna di tengah. Ini akan menghindari kursor bergerak sedikit ketika Anda tidak menggunakan gamepad tetapi masih diaktifkan.
sumber
Saya sudah mencoba xboxdrv dan sepertinya berhasil tetapi tidak pernah sempurna untuk saya dan saya harus mengkonfigurasi file konfigurasi secara manual. Solusi yang lebih baik tampaknya adalah proyek AntiMicro: https://github.com/Ryochan7/antimicro konfigurasinya sangat sederhana (walaupun GUI agak mendasar), dengan beberapa klik saya dapat:
Saya pikir proyek ini cukup baru tetapi bagi saya tampaknya bekerja hampir sempurna sejauh ini. Masalah kecilnya adalah ia menciptakan ikon "baki" yang memungkinkan untuk berganti profil di sudut kiri atas yang tidak cocok dengan skema menu global Ubuntu.
sumber