Siguiendo Grumbel respuesta 's, he intentado xboxdrv solución con el apoyo de su enlace y en especial esta página :
1. Instale xboxdrv 0.8.2 desde el Centro de software de Ubuntu.
Instale también uinput y joydev si es necesario. Lo hice de esta manera sudo modprobe uinput
+sudo modprobe joydev
2. Necesita saber el evento del gamepad:
Inicia udevadm monitor --udev
y luego conecta el gamepad:
$ 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)
Concluyo que el evento de mi gamepad es / dev / input / event8
3. Visualice los nombres de cada tecla, eje, botones del gamepad.
La idea es iniciar xboxdrv
y probar todos los botones y anotar el resultado en papel.
$ 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
...
En mi caso el resultado es:
4. Establecer el archivo de configuración
Cree un archivo xboxdrv-mouse.ini para establecer el eje XY y el botón izquierdo y derecho del mouse.
Aquí configuro los botones del gamepad 2para el botón izquierdo del mouse y 3para el botón derecho del 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 #
Tenga en cuenta que el valor para REl_X y REL_Y parece definir la velocidad del mouse, y al definir un valor negativo invierte el eje (consulte aquí para REL_Y)
Otro ejemplo con más definición de botón.
[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. Lanzarlo
sudo xboxdrv --config xboxdrv-mouse.ini
Para evitar iniciarlo con sudo
, cree una regla udev .
CONCLUSIÓN
Funciona bien, es la mejor solución para mí.
No probado en ubuntu, pero esa receta simple funciona en Debian Jessie (con mi gamepad usb iBuffalo classic ):
$ sudo apt install xserver-xorg-input-joystick
fuente
xboxdrv debería poder hacer lo que quieras. Sin embargo, requiere un poco de configuración para funcionar con gamepads que no sean Xbox, algo similar a (consulte la página de manual para obtener más detalles, use --evdev-debug para averiguar los nombres de los botones y ejes):
fuente
Lo mismo para un gamepad de Nintendo 64
Algunos detalles
Mi objetivo era configurar esto para jugar en juegos de disparos en primera persona, ya que no estoy acostumbrado a jugar con el mouse y el teclado. Sin embargo, la mayoría de los juegos en GNU / Linux no son muy compatibles con gamepad. Traté de hacer eso como el modo de gamepad avanzado en el famoso N64 Game 007 - GoldenEye.
De esta manera, también puedes usar el gamepad para reemplazar tu mouse.
Mis decisiones
Espero que esto ayude a otros jugadores.
Todo Si alguien sabe cómo hacerlo, me interesaría saber cómo configurar una especie de "área central" donde el cursor del mouse no se mueva, incluso si el palo no está perfectamente en el medio. Esto evitaría que el cursor se mueva un poco cuando no usas el gamepad pero todavía está habilitado.
fuente
Probé el xboxdrv y funcionó, pero nunca fue perfecto para mí y tuve que configurar manualmente el archivo de configuración. La mejor solución parece ser el proyecto AntiMicro: https://github.com/Ryochan7/antimicro la configuración es realmente simple (aunque la GUI es bastante básica), con un par de clics pude:
Creo que el proyecto es bastante nuevo, pero para mí parece funcionar casi perfectamente hasta ahora. El pequeño problema es que crea el icono de "bandeja" que permite cambiar los perfiles en la esquina superior izquierda que no encaja bien en el esquema del menú global de Ubuntu.
fuente