web-dev-qa-db-fra.com

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

Le joystick agit comme une souris, même lorsque je joue à un jeu utilisant un joystick, ce qui me permet d’obtenir des événements aléatoires à la souris.

J'ai branché une manette de jeu pour jouer à Spiral Knights, également installé manette de commande 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 un Myth-Box ou quelque chose du genre. Malheureusement, lorsque je joue à Spiral Knights avec une manette de jeu, je vois le curseur de la souris bouger dans le fond et quand je frappe un bouton, je pense que j'appuie faites un clic droit pour tout minimiser. En outre, il crée des dossiers et supprime probablement des choses.

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

14
Shazzner

Désinstallez xserver-xorg-input-joystick.

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

15
animaletdesequia

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

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

exécutez-le et vous aurez votre manette de jeu "comme manette à nouveau" (et le meilleur, vous pouvez avoir votre manette de commande comme souris à nouveau si vous modifiez le "0" dans les deux dernières lignes avec "1").

4
Matias Parmigiani

Je viens d'avoir le même problème, mais avec un contrôleur 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 va activer ou désactiver le contrôleur, en fonction des paramètres actuels, comme une bascule.

2
hochl

Essayez Qjoypad ou (si vous ne voulez pas utiliser QT) le moins présenté repère (GTK). De cette façon, vous n'avez pas à éditer/créer xorg.conf.

Ils sont tous deux disponibles sur playdeb

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

1
turbo

J'utilise Linux Mint 17.3 et j'avais le même problème. J'avais la console onlive 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 cherchais et essayais différentes méthodes, mais aucune d'entre elles ne fonctionnait. Je poste ceci afin que cela puisse aider d'autres personnes. J'ai suivi le correctif de la page d'installation 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 fichier 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, écrivez-le après chaque redémarrage? Merci d'avance.

1
Mauricio Giraldo

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 de façon à ne pas utiliser les boutons de la souris.

Il y a des informations intéressantes sur les différentes manettes de jeu et manettes de jeu sur buntuforums .

1
fossfreedom

La réponse de Matias Parmigiani a été la clé pour moi. Cependant, le format du xinput list a changé, du 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)]

En conséquence, 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!

0
Phoeey

1- Vous devriez voir votre numéro de joystick en premier ... alors lancez Terminal et tapez xinpute list, puis recherchez le numéro de votre joystick et remplacez-le par le numéro 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 le code, renommez-le en name.sh Format 3- Exécutez Terminal, puis indiquez 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

0
AhmedAlkaabi