Joystick actúa como mouse; no se detendrá

14

Joystick actúa como un mouse, incluso cuando estoy jugando un juego que usa un joystick, por lo que obtengo eventos aleatorios de mouse.

Conecté un joystick para jugar Spiral Knights, también instalé joystick y jcalibrate. Todo funciona bien, excepto que, por defecto, el joystick mueve el mouse y el botón activa las teclas del mouse.

Ahora, normalmente este sería un buen comportamiento si estoy en un cuadro de Mitos o algo así, desafortunadamente cuando juego Spiral Knights con entrada de joystick veo que el cursor de mi mouse se mueve en el fondo y cuando presiono un botón, creo que estoy presionando Haga clic derecho para minimizar todo. También crea carpetas y probablemente elimina cosas.

Entonces, básicamente, ¿cómo diablos evito que actúe como un mouse?

Shazzner
fuente
¿Puedes mostrar qué PC tienes y qué joystick estás usando? También qué versión de Ubuntu.
Luis Alvarado
Estoy usando un adaptador de playstation 2 a usb, debajo de jscalibrate aparece como: GreenAsia Inc. USB Joystick. Estoy ejecutando Ubuntu 10.10
Shazzner

Respuestas:

15

Desinstalación xserver-xorg-input-joystick.

Es un paquete para controlar el mouse con el joystick. Solo lo instalé una vez para probarlo y me estaba volviendo loco, así que tal vez ese sea el problema. Creo que el joystick funcionaría igual sin él.

animaletdesequia
fuente
¡Hurra que lo hizo! Creo que eso se agregó cuando agregué el paquete de joystick en sináptico. ¡Funciona muy bien ahora!
Shazzner
También tuve este problema y lo solucionó. Muchas gracias por responder, muy apreciado!
b1ackcrow
¿Hay alguna manera de desactivar / activar esta función? Es Kindda enfriar controlando el ratón con el gamepad pero debe ser agradable para encenderlo cuando lo hago necesidad que
chepe263
gracias darent, ¡esto también funcionó en Arch Linux! Estaba tratando de jugar Dustforce, y esto realmente me estaba molestando.
Marco Scannadinari
1
FYI tuve que cerrar sesión y volver a iniciarla también. Y en Manjaro Linux, el nombre del paquete era xf86-input-joystick.
Peter
4

pon este código en un archivo:

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

guárdelo, haga clic con el botón derecho en derechos y marque "marcar este archivo como un programa"

ejecútelo y tendrá su joystick "como joystick nuevamente" (y lo mejor, puede tener su joystick como mouse nuevamente si cambia el "0" en las últimas dos líneas con "1").

Matias Parmigiani
fuente
Parece que el formato de las líneas de la "lista de entrada" ha cambiado.
Phoeey
Este código necesita cambios para funcionar con Ubuntu 18.04 LTS. La salida ha cambiado.
Hans Deragon
2

Acabo de tener el mismo problema, pero con un controlador Playstation 3. Usando las respuestas como plantilla, amplié la solución:

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

Esta versión del script habilitará o deshabilitará el controlador, dependiendo de la configuración actual, como una palanca.

hochl
fuente
Debido a que esta es una nueva solución para a) un controlador diferente yb) tiene una funcionalidad diferente a los scripts dados. No veo cómo la edición de una respuesta existente cambiaría eso.
hochl
¡Suficientemente bueno para mi! ¡Votado para que llegue a la cima! ;-)
Fabby el
1

Tal vez debería estar usando jscal para calibrar su joystick: puede usar la opción -u según la página del manual para configurar el joystick para que no use los botones del mouse.

También hay algunas cosas interesantes sobre los diversos joysticks y gamepads en ubuntuforums .

fossfreedom
fuente
¿Hay alguna manera de configurar esto sin generar y luego editar un archivo xorg.conf? (Ya estoy usando jscal para calibrar el joystick)
Shazzner
Yo uso jstest-gtk, creo que está en los repositorios.
animaletdesequia
1

Prueba Qjoypad o (si no quieres usar QT) el joystick ligeramente menos destacado (GTK). De esta manera no tiene que editar / crear xorg.conf.

Ambos están disponibles en playdeb

Comprender los controladores de joystick es un desastre, todo parece estar desactualizado o inacabado ... ¡Buena suerte!

turbo
fuente
1
Estos son excelentes programas, pero desafortunadamente no resolvieron mi problema, ya que volver a vincularlos no hizo que el problema desapareciera.
Shazzner
1

Estoy usando Linux Mint 17.3 y estaba teniendo el mismo problema. Tenía la consola onlive e iba a tirar el controlador. No sabía que funcionaría, pero se conectaba fácilmente a través de Bluetooth. El joystick izquierdo controlaba el mouse y busco e intento diferentes métodos, pero ninguno de ellos funcionó. Estoy publicando esto para que pueda ayudar a otras personas. Seguí la solución desde la página de configuración de Ubuntu Sixaxis . Tuve que agregar esta configuración al archivo 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

Funciona perfectamente después de cerrar sesión. El único problema es que si xorg.conf se actualiza como después de instalar un nuevo controlador de gráficos, lo perderá. ¿Alguien puede explicarme cómo crear un script que verifique que la configuración esté en el archivo, si no, escríbalo después de cada reinicio? Gracias de antemano.

Mauricio Giraldo
fuente
0

1- Debería ver primero el número de su joystick ... así que ejecute Terminal y escriba xinpute list, y busque el número de su joystick y reemplace su número en lugar del 10 en el Ejemplo a continuación.

#!/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- Cree un nuevo documento, luego coloque el código en él, luego cámbiele el nombre a name.sh Format 3- Ejecute Terminal y luego coloque la ruta donde guarda el archivo.

Ejemplo: escritorio de cd (porque guardé el mío en el escritorio)

4- Escriba bash name.sh (haga clic en Enter y ¡listo!)

Nota 1: para volver a activarlo, simplemente cambie el 0 en las últimas 2 líneas a 1 Nota 2: si esto no funciona, asegúrese de eliminar xserver-xorg-input-joystick y /usr/lib/X11/xorg.conf.d / 10-joystick

AhmedAlkaabi
fuente
0

La respuesta de Matias Parmigiani fue la clave para mí. Sin embargo, el formato del xinput listha cambiado, al menos en 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)]

Como resultado, necesitaba usar lo siguiente en mi script de desactivación:

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

¡Espero que esto ayude!

Phoeey
fuente