Il joystick funge da mouse; non si fermerà


14

Il joystick funge da mouse, anche quando sto giocando a un gioco che utilizza un joystick in modo da ottenere eventi casuali del mouse.

Ho inserito un joystick per giocare a Spiral Knights, installato anche joystick e jcalibrate. Tutto funziona bene, tranne che per impostazione predefinita il joystick sposta il mouse e il pulsante attiva i tasti del mouse.

Ora normalmente questo sarebbe un buon comportamento se sono su un Myth-box o qualcosa del genere, sfortunatamente quando gioco a Spiral Knights con l'input del joystick vedo il mio cursore del mouse muoversi sullo sfondo e quando premo un pulsante mi sembra di premere fare clic con il tasto destro in modo da ridurre al minimo tutto. Inoltre crea cartelle e probabilmente elimina le cose.

Quindi, in pratica, come diamine posso impedirgli di agire come un topo?


Puoi mostrare quale PC hai e il joystick che stai utilizzando. Anche quale versione di Ubuntu.
Luis Alvarado,

Sto usando un adattatore da Playstation 2 a USB, sotto il jscalibrate è elencato come: Joystick USB GreenAsia Inc.. Sto eseguendo Ubuntu 10.10
Shazzner il

Risposte:


15

Disinstalla xserver-xorg-input-joystick.

È un pacchetto per controllare il mouse con il joystick. L'ho installato solo una volta per testarlo e mi stava facendo impazzire, quindi forse questo è il problema. Penso che il joystick funzionerebbe allo stesso modo senza di esso.


Evviva che l'ha fatto! Penso che sia stato appiccicato quando ho aggiunto il pacchetto joystick in sinaptico. Funziona benissimo ora!
Shazzner,

Ho avuto anche questo problema e lo ha risolto. Mille grazie per la risposta, molto apprezzato!
b1ackcrow,

C'è un modo per spegnere / accendere questa funzione? È un po 'bello controllare il mouse con il gamepad ma dovrebbe essere bello accenderlo quando ne ho bisogno
chepe263

grazie audace, ha funzionato anche su Arch Linux! Stavo cercando di giocare a Dustforce, e questo mi ha davvero infastidito.
Marco Scannadinari,

1
Cordiali saluti, ho dovuto disconnettermi e riconnettermi. E in Manjaro Linux, il nome del pacchetto era xf86-input-joystick.
Peter,

4

inserisci questo codice in un file:

#!/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

salvalo, tasto destro in diritti e spunta "segna questo file come programma"

eseguilo e avrai il tuo joystick "di nuovo come joystick" (e il migliore, puoi avere di nuovo il tuo joystick come mouse se cambi lo "0" nelle ultime due righe con "1").


Sembra che il formato dell'elenco "xinput list" sia cambiato.
Phoeey,

Questo codice necessita di modifiche per funzionare con Ubuntu 18.04 LTS. L'output è cambiato.
Hans Deragon,

2

Ho avuto lo stesso problema, ma con un controller Playstation 3. Usando le risposte come modello, ho ampliato la soluzione:

#!/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]}]

Questa versione dello script abiliterà o disabiliterà il controller, a seconda delle impostazioni correnti, come un interruttore.


Perché questa è una nuova soluzione per a) un controller diverso eb) ha funzionalità diverse rispetto agli script indicati. Non vedo come la modifica di una risposta esistente la cambierebbe.
Hochl,

Abbastanza buono per me! Ha votato in modo che salirà in cima! ;-)
Fabby,

1

Forse dovresti usare jscal per calibrare il tuo joystick: puoi usare l'opzione -u come nella pagina del manuale per configurare il joystick per non usare i pulsanti del mouse.

Ci sono alcune cose interessanti sui vari joystick e gamepad anche su ubuntuforums .


C'è un modo per configurarlo senza generare e poi modificare un file xorg.conf? (Sto già usando jscal per calibrare il joystick)
Shazzner,

Uso jstest-gtk è nei repository penso.
animaletdesequia,

1

Prova Qjoypad o (se non vuoi usare QT) il rejoystick (GTK) leggermente meno caratterizzato . In questo modo non è necessario modificare / creare xorg.conf.

Entrambi sono disponibili su playdeb

Comprendere i driver del joystick è un po 'un casino, tutto sembra essere obsoleto o incompiuto ... Buona fortuna!


1
Si tratta di programmi fantastici, ma sfortunatamente non ha risolto il mio problema in quanto il loro rifiuto non ha risolto il problema.
Shazzner,

1

Sto usando Linux Mint 17.3 e ho avuto lo stesso problema. Avevo la console live e stavo per buttare via il controller. Non sapevo che avrebbe funzionato, ma si collegava facilmente tramite bluetooth. Il joystick di sinistra controllava il mouse e io cerco e provo metodi diversi ma nessuno di questi ha funzionato. Sto pubblicando questo in modo che possa aiutare altre persone. Ho seguito la correzione dalla pagina di installazione di Ubuntu Sixaxis . Ho dovuto aggiungere questa configurazione al file 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

Funziona perfettamente dopo la disconnessione. L'unico problema è se xorg.conf viene aggiornato come dopo l'installazione di un nuovo driver grafico, lo perderà. Qualcuno può spiegarmi come creare uno script che controlla che la configurazione sia nel file, in caso contrario, scriverlo dopo ogni riavvio? Grazie in anticipo.


0

1- Dovresti prima vedere il tuo numero di joystick ... quindi esegui Terminale e digita l'elenco xinpute, osserva il tuo numero di joystick e sostituisci il suo numero anziché il 10 nell'esempio seguente.

#!/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- Creare un nuovo documento, quindi inserire il codice, quindi rinominarlo in name.sh Formato 3- Eseguire Terminale quindi inserire il percorso in cui si salva il file.

Esempio: cd Desktop (Perché ho salvato il mio sul desktop)

4- Digita bash name.sh (fai clic su Enter e sei fatto!)

Nota1: per riattivarlo basta cambiare lo 0 delle ultime 2 righe in 1 Nota2: se non funziona assicurarsi di rimuovere xserver-xorg-input-joystick e /usr/lib/X11/xorg.conf.d / 10-joystick


0

La risposta di Matias Parmigiani è stata la chiave per me. Tuttavia, il formato del xinput listè cambiato, almeno su 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)]

Di conseguenza, ho dovuto utilizzare quanto segue nel mio script di disabilitazione:

#!/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

Spero che sia di aiuto!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.