web-dev-qa-db-fra.com

Remappage de la souris et du clavier sur une manette de jeu

Depuis Halloween, j'apprécie vraiment Jeux de friction Amnesia sur Ubuntu. Mon prochain objectif est d'obtenir les autres offres dont ils disposent.

Malheureusement, il n'y a pas de paramètre de manette de jeu pour ce jeu (et beaucoup d'autres). Je sais qu’il existe un logiciel comme rejoystick qui permet de mapper les touches du clavier sur une manette de jeu. Cependant, puisque ce jeu intègre la souris, existe-t-il une solution pour associer les deux?

Merci d'avance.

Mise à jour: j'ai trouvé sur playdeb.net QJoypad. Il permet le mappage du clavier et de la souris. Malheureusement, je semble toujours avoir des problèmes avec la souris en entrant dans Amnesia.

7
Casey Keller

La solution est QJoyPad. Comme je l'ai dit dans ma mise à jour sur la question, cela permet le mappage du clavier et de la souris.

Amnesia est un peu bizarre dans la configuration car le jeu utilise, selon leur forum , mouvements relatifs de la souris. La solution consiste à lancer le jeu via un terminal après avoir tapé export SDL_VIDEO_X11_DGAMOUSE=0. Après cela, mon test avec la souris a bien fonctionné.

À propos, le contrôleur que j'utilise avec QJoyPad est un Logitech Dual Action.

3
Casey Keller

Après la réponse de Grumbel , j'ai essayé xboxdrv solution avec le support de ses lien et spécialement cette page :

1. Installez xboxdrv 0.8.2 à partir du Centre de logiciel Ubuntu.

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 du gamepad:

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 est /dev/input/event8

3. Afficher les noms de chaque touche, axe, boutons du gamepad.

L'idée est de lancer xboxdrv, 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: enter image description here

4. Définir le fichier de configuration

Créez un fichier xboxdrv-mouse.ini pour définir l’axe des ordonnées X et les boutons gauche et droit de la souris.
Ici, je mets les boutons de la manette de jeu 2 pour le bouton gauche de la souris et 3 pour 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 pour 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éer une règle udev .

CONCLUSION

Cela fonctionne bien, c'est la meilleure solution pour moi.

6
Boris

Pour mapper un gamepad à la souris, essayez js2mouse .

Dans Ubuntu 11.10, qjoypad ne semble pas fonctionner correctement, car un clic gauche sur son icône dans la zone de notification ouvre un menu contextuel ne permettant pas d'accéder à la configuration. Vous pouvez cependant utiliser Rejoystick (également disponible dans PlayDeb). La première fois que vous l'exécutez (en exécutant rejoystick), vous affectez des touches aux boutons de votre manette de jeu, puis enregistrez. Ensuite, vous exécutez rejoystick -d et vous n’obtiendrez pas d’interface graphique, le rejoystick s’exécute en arrière-plan et vous utiliserez les boutons de votre manette de jeu pour les clés attribuées.

1
titaniumtux

Je recommanderais sans hésiter AntiMicro , qui reprend à partir du moment où QJoyPad s'est arrêté. Je l'utilise actuellement pour jouer à Civ V de mon canapé et j'adore chaque minute. Il était facile à configurer et à utiliser (et oui, il vous permet de mapper le clavier ainsi que la souris - y compris le défilement à gauche/à droite).

0
Waldir Leoncio