Suite à la réponse de Grumbel , j'ai essayé la solution xboxdrv avec le support de son lien et spécialement cette page :
1. Installez xboxdrv 0.8.2 depuis Ubuntu Software Center.
Installez également uinput et joydev si nécessaire. Je l'ai fait de cette façon sudo modprobe uinput
+sudo modprobe joydev
2. Besoin de connaître l' événement de la manette de jeu:
Lancez udevadm monitor --udev
puis branchez la manette de jeu:
$ 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)
Je conclus que l'événement de ma manette de jeu est / dev / input / event8
3. Affichez les noms de toutes les touches, axes, boutons de la manette de jeu.
L'idée est de lancer xboxdrv
et de tester tous les boutons et de noter le résultat sur papier.
$ 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
...
Dans mon cas, le résultat est:
4. Définissez le fichier de configuration
Créez un fichier xboxdrv-mouse.ini pour définir l'axe XY et le bouton gauche et droit de la souris.
Ici, je règle les boutons de la manette de jeu 2pour le bouton gauche de la souris et 3pour le bouton droit de la souris:
[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 #
Notez que la valeur de REl_X et REL_Y semble définir la vitesse de la souris, et en définissant une valeur négative, elle inverse l'axe (voir ici pour REL_Y)
Un autre exemple avec plus de définition de bouton
[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. Lancez-le
sudo xboxdrv --config xboxdrv-mouse.ini
Pour éviter de le lancer avec sudo
, créez une règle udev .
CONCLUSION
Cela fonctionne bien, c'est la meilleure solution pour moi.
Non testé sur Ubuntu, mais cette recette simple fonctionne sur Debian Jessie (avec ma manette de jeu USB classique iBuffalo ):
$ sudo apt install xserver-xorg-input-joystick
la source
xboxdrv devrait pouvoir faire ce que vous voulez. Cela nécessite cependant un peu de configuration pour fonctionner avec des manettes de jeu non Xbox, quelque chose dans le sens de (consultez la page de manuel pour plus de détails, utilisez --evdev-debug pour trouver les noms des boutons et des axes):
la source
Idem pour une manette de jeu Nintendo 64
Quelques détails
Mon objectif était de configurer cela pour jouer à des jeux de tir à la première personne, car je n'ai pas l'habitude de jouer avec la souris et le clavier. Cependant la plupart des jeux sur GNU / Linux ne supportent pas très bien la manette de jeu. J'ai essayé de le faire comme le mode de manette avancé sur le célèbre N64 Game 007 - GoldenEye.
De cette façon, vous pouvez également utiliser la manette de jeu pour remplacer votre souris.
Mes choix
J'espère que cela aidera d'autres joueurs.
Todo Si quelqu'un sait comment le faire, je serais intéressé de savoir comment configurer une sorte de "zone centrale" qù le curseur de la souris ne bouge pas, même si le stick n'est pas parfaitement au milieu. Cela éviterait au curseur de bouger un peu lorsque vous n'utilisez pas la manette de jeu, mais elle est toujours activée.
la source
J'ai essayé le xboxdrv et cela a fonctionné mais il n'a jamais été parfait pour moi et j'ai dû configurer manuellement le fichier de configuration. La meilleure solution semble être le projet AntiMicro: https://github.com/Ryochan7/antimicro la configuration est vraiment simple (bien que l'interface graphique soit plutôt basique), en quelques clics j'ai pu:
Je pense que le projet est assez nouveau mais pour moi il semble fonctionner presque parfaitement jusqu'à présent. Le petit problème est qu'il crée l'icône "plateau" qui permet de changer de profil dans le coin supérieur gauche qui ne correspond pas bien au schéma de menu global d'Ubuntu.
la source