Le joystick agit comme une souris; ne s'arrêtera pas

14

Le joystick agit comme une souris, même lorsque je joue à un jeu qui utilise un joystick, je reçois donc des événements de souris aléatoires.

J'ai branché un joystick pour jouer à Spiral Knights, j'ai également installé un joystick et jcalibrate. Tout fonctionne bien, sauf que par défaut, le joystick déplace la souris et le bouton active les touches de la souris.

Maintenant, normalement, ce serait un bon comportement si je suis sur une boîte à mythes ou quelque chose du genre, malheureusement quand je joue à Spiral Knights avec une entrée par joystick, je vois le curseur de ma souris se déplacer dans le fond et quand je frappe un bouton, il pense que j'appuie faites un clic droit pour minimiser tout. Il crée également des dossiers et supprime probablement des éléments.

Alors, comment diable puis-je l'empêcher d'agir comme une souris?

Shazzner
la source
Pouvez-vous montrer quel PC vous avez et le joystick que vous utilisez. Aussi quelle version d'Ubuntu.
Luis Alvarado
J'utilise un adaptateur Playstation 2 vers USB, sous le jscalibrate, il est répertorié comme: Joystick USB GreenAsia Inc.. J'utilise Ubuntu 10.10
Shazzner

Réponses:

15

Désinstaller xserver-xorg-input-joystick.

C'est un package pour contrôler la souris avec le joystick. Je ne l'ai installé qu'une seule fois pour le tester et cela me rendait fou, alors c'est peut-être le problème. Je pense que le joystick fonctionnerait de la même manière sans lui.

animaletdesequia
la source
Hourra, ça y est! Je pense que cela a été résolu lorsque j'ai ajouté le package du joystick en synaptique. Cela fonctionne très bien maintenant!
Shazzner
J'ai aussi eu ce problème et il l'a résolu. Merci beaucoup d'avoir répondu, très apprécié!
b1ackcrow
Existe-t-il un moyen d'activer / désactiver cette fonction? Est-ce que c'est cool de contrôler la souris avec la manette de jeu, mais ça devrait être bien de l'allumer quand
j'en
merci darent, cela a aussi fonctionné sur Arch Linux! J'essayais de jouer à Dustforce, et cela m'ennuyait vraiment.
Marco Scannadinari
1
Pour info, je devais me déconnecter et me reconnecter également. Et dans Manjaro linux, le nom du package était xf86-input-joystick.
Peter
4

mettre ce code dans un fichier:

#!/bin/bash
id=`xinput list | grep "↳ DragonRise Inc.   Generic   USB  Joystick     id=" | cut -c58-59`
props_mouse=`xinput list-props $id | grep "Generate Mouse Events (" | cut -c25-27`
props_teclado=`xinput list-props $id | grep "Generate Key Events (" | cut -c23-25`
xinput set-prop $id $props_mouse 0
xinput set-prop $id $props_teclado 0

enregistrez-le, bouton droit dans les droits et cochez "marquer ce fichier comme programme"

exécutez-le et vous aurez votre joystick "comme joystick à nouveau" (et le mieux, vous pouvez avoir votre joystick comme souris à nouveau si vous changez le "0" dans les deux dernières lignes avec "1").

Matias Parmigiani
la source
Il semble que le format des lignes de la "liste xinput" ait changé.
Phoeey
Ce code doit être modifié pour fonctionner sous Ubuntu 18.04 LTS. La sortie a changé.
Hans Deragon
2

Je viens d'avoir le même problème, mais avec une manette Playstation 3. En utilisant les réponses comme modèle, j'ai développé la solution:

#!/bin/bash
id=`xinput list | grep -P "PLAYSTATION.*pointer" | grep -oP "id=\d+" | grep -oP "\d+"`
props=`xinput list-props $id`
# echo "$props"
props_mouse=(`echo "$props" | grep "Generate Mouse Events" | grep -oP "\d+"`)
props_keyboard=(`echo "$props" | grep "Generate Key Events" | grep -oP "\d+"`)
xinput set-prop $id ${props_mouse[0]} $[1-${props_mouse[1]}]
xinput set-prop $id ${props_keyboard[0]} $[1-${props_mouse[1]}]

Cette version du script activera ou désactivera le contrôleur, selon les paramètres actuels, comme une bascule.

hochl
la source
Parce que c'est une nouvelle solution pour a) un contrôleur différent et b) a des fonctionnalités différentes des scripts donnés. Je ne vois pas comment la modification d'une réponse existante changerait cela.
hochl
Suffisant pour moi! Voté pour qu'il monte au sommet! ;-)
Fabby
1

Vous devriez peut-être utiliser jscal pour calibrer votre joystick - vous pouvez utiliser l'option -u selon la page de manuel pour configurer le joystick pour ne pas utiliser les boutons de la souris.

Il y a aussi des trucs intéressants sur les divers joysticks et manettes de jeu sur ubuntuforums .

liberté de fossé
la source
Existe-t-il un moyen de configurer cela sans générer puis éditer un fichier xorg.conf? (J'utilise déjà jscal pour calibrer le joystick)
Shazzner
J'utilise jstest-gtk c'est dans les repos je pense.
animaletdesequia
1

Essayez Qjoypad ou (si vous ne voulez pas utiliser QT) le rejoystick (GTK) légèrement moins performant . De cette façon, vous n'avez pas à modifier / créer xorg.conf.

Ils sont tous deux disponibles sur playdeb

Comprendre les pilotes du joystick est une sorte de gâchis, tout semble être obsolète ou inachevé ... Bonne chance!

turbo
la source
1
Ce sont d'excellents programmes, mais malheureusement, je n'ai pas résolu mon problème car les relier n'a pas résolu le problème.
Shazzner
1

J'utilise Linux Mint 17.3 et j'avais ce même problème. J'avais la console en ligne et j'allais jeter le contrôleur. Je ne savais pas que cela fonctionnerait, mais il se connectait facilement via Bluetooth. Le joystick gauche contrôlait la souris et je cherche et essaie différentes méthodes mais aucune ne fonctionne. Je poste ceci afin qu'il puisse aider d'autres personnes. J'ai suivi le correctif depuis la page de configuration d' Ubuntu Sixaxis . J'ai dû ajouter cette configuration au fichier xorg.conf:

Section "InputClass"
    Identifier "joystick catchall"
    MatchIsJoystick "on"
    MatchDevicePath "/dev/input/event*"
    Driver "joystick"
    Option "StartKeysEnabled" "False"       #Disable mouse
    Option "StartMouseEnabled" "False"      #support

EndSection

Cela fonctionne parfaitement après la déconnexion. Le seul problème est que si le xorg.conf est mis à jour comme après l'installation d'un nouveau pilote graphique, il le perdra. Quelqu'un peut-il m'expliquer comment créer un script qui vérifie que la configuration est dans le fichier, sinon, l'écrire après chaque redémarrage? Merci d'avance.

Mauricio Giraldo
la source
0

1- Vous devriez voir votre numéro de joystick en premier ... alors exécutez Terminal et tapez la liste xinpute, et recherchez votre numéro de joystick et remplacez son numéro au lieu du 10 dans l'exemple ci-dessous.

#!/bin/bash id=xinput list | grep "↳ DragonRise Inc. Generic USB Joystick id=10" | cut -c58-59 props_mouse=xinput list-props 10 | grep "Generate Mouse Events (" | cut -c25-27 props_teclado=xinput list-props 10 | grep "Generate Key Events (" | cut -c23-25 xinput set-prop 10 $props_mouse 0 xinput set-prop 10 $props_teclado 0

2- Créez un nouveau document puis insérez-y le code, puis renommez-le en name.sh Format 3- Exécutez Terminal puis placez le chemin où vous enregistrez le fichier.

Exemple: cd Desktop (parce que j'ai enregistré le mien sur le bureau)

4- Tapez bash name.sh (Cliquez sur Entrée et vous avez terminé!)

Note1: pour le réactiver, changez simplement le 0 sur les 2 dernières lignes en 1 Note2: si cela ne fonctionne pas, assurez-vous de supprimer xserver-xorg-input-joystick et /usr/lib/X11/xorg.conf.d / 10-joystick

AhmedAlkaabi
la source
0

La réponse de Matias Parmigiani a été la clé pour moi. Cependant, le format du xinput lista changé, au moins sur Ubuntu 13.04 LTS ...

⎜   ↳ DragonRise Inc.   Generic   USB  Joystick     id=12   [slave  pointer  (2)]
    ↳ DragonRise Inc.   Generic   USB  Joystick   (keys)    id=11   [slave  keyboard (3)]

Par conséquent, je devais utiliser les éléments suivants dans mon script de désactivation:

#!/bin/bash
id=`xinput list | grep -P "DragonRise Inc.   Generic   USB  Joystick\s+id=" | grep -oP "id=\d+"| cut -c4-5`
props_mouse=`xinput list-props $id | grep "Generate Mouse Events" | grep -oP "\(\d+"| cut -c2-5`
props_teclado=`xinput list-props $id | grep "Generate Key Events" | grep -oP "\(\d+"| cut -c2-5`
xinput set-prop "$id" "$props_mouse" 0
xinput set-prop "$id" "$props_teclado" 0

J'espère que cela t'aides!

Phoeey
la source