Der Joystick fungiert als Maus. hört nicht auf


14

Der Joystick fungiert als Maus, auch wenn ich ein Spiel spiele, das einen Joystick verwendet, sodass zufällige Mausereignisse stattfinden.

Ich steckte einen Joystick ein, um Spiral Knights zu spielen, installierte auch Joystick und jcalibrate. Alles funktioniert einwandfrei, außer dass der Joystick standardmäßig die Maus bewegt und der Knopf die Maustasten aktiviert.

Normalerweise ist das ein gutes Verhalten, wenn ich auf einer Myth-Box oder so bin. Leider sehe ich, wenn ich Spiral Knights mit Joystick-Eingabe spiele, dass sich mein Mauszeiger im Hintergrund bewegt und wenn ich einen Knopf drücke, denke ich, dass ich drücke Klicken Sie mit der rechten Maustaste, um alles zu minimieren. Außerdem werden Ordner erstellt und wahrscheinlich Daten gelöscht.

Also, wie zum Teufel kann ich eigentlich verhindern, dass es sich um eine Maus handelt?


Können Sie zeigen, welchen PC Sie haben und welchen Joystick Sie verwenden? Auch welche Ubuntu-Version.
Luis Alvarado

Ich verwende einen USB-Adapter für die Verbindung von Playstation 2 und jscalibrate mit dem folgenden Namen: GreenAsia Inc. USB Joystick. Ich
starte

Antworten:


15

Deinstallieren xserver-xorg-input-joystick.

Es ist ein Paket, um die Maus mit dem Joystick zu steuern. Ich habe es nur einmal installiert, um es zu testen, und es hat mich wahnsinnig gemacht, vielleicht ist das das Problem. Ich denke, der Joystick würde auch ohne funktionieren.


Hurra, das hat es geschafft! Ich denke, das hat sich geändert, als ich das Joystick-Paket in synaptic hinzugefügt habe. Es funktioniert jetzt großartig!
Shazzner

Ich hatte dieses Problem auch und es hat es behoben. Vielen Dank für die Antwort, sehr geschätzt!
b1ackcrow

Gibt es eine Möglichkeit, diese Funktion zu aktivieren / deaktivieren? Ist irgendwie cool, die Maus mit dem Gamepad zu steuern, aber es sollte nett sein, es
einzuschalten,

Dankeschön, das hat auch auf Arch Linux funktioniert! Ich habe versucht, Dustforce zu spielen, und das hat mich wirklich geärgert.
Marco Scannadinari

1
Zu meiner Information musste ich mich auch ausloggen und wieder einchecken. Und in Manjaro Linux lautete der Paketname xf86-input-joystick.
Peter

4

Füge diesen Code in eine Datei ein:

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

speichere es mit der rechten Maustaste und kreuze "markiere diese Datei als Programm" an

Führe es aus und du hast deinen Joystick "wieder als Joystick" (und das Beste, du kannst deinen Joystick wieder als Maus haben, wenn du die "0" in den letzten beiden Zeilen mit "1" änderst).


Es sieht so aus, als ob sich das Format der Zeilen "xinput list" geändert hat.
Phoeey

Dieser Code muss geändert werden, damit er unter Ubuntu 18.04 LTS funktioniert. Die Ausgabe hat sich geändert.
Hans Deragon

2

Ich hatte nur das gleiche Problem, aber mit einem Playstation 3-Controller. Unter Verwendung der Antworten als Vorlage habe ich die Lösung erweitert:

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

Diese Version des Skripts aktiviert oder deaktiviert den Controller, abhängig von den aktuellen Einstellungen, wie ein Toggle.


Da dies eine neue Lösung für a) einen anderen Controller und b) eine andere Funktionalität für die angegebenen Skripte ist. Ich sehe nicht, wie das Bearbeiten einer vorhandenen Antwort das ändern würde.
Hochl

Gut genug für mich! Aufgestimmt, damit es nach oben steigt! ;-)
Fabby

1

Sie sollten möglicherweise jscal verwenden, um Ihren Joystick zu kalibrieren. Sie können die Option -u gemäß der man -Seite verwenden , um den Joystick so zu konfigurieren, dass die Maustasten nicht verwendet werden.

Es gibt auch einige interessante Dinge über die verschiedenen Joysticks und Gamepads auf Ubuntuforums .


Gibt es eine Möglichkeit, dies zu konfigurieren, ohne eine xorg.conf-Datei zu generieren und zu bearbeiten? (Ich benutze bereits jscal, um den Joystick zu kalibrieren)
Shazzner

Ich benutze jstest-gtk, es ist in den Repos, denke ich.
animaletdesequia

1

Probieren Sie Qjoypad oder (wenn Sie QT nicht verwenden möchten) den etwas weniger leistungsfähigen Rejoystick (GTK). Auf diese Weise müssen Sie die xorg.conf nicht bearbeiten / erstellen.

Sie sind beide auf verfügbar Playdeb

Das Verständnis der Joystick-Fahrer ist eine Art Chaos, alles scheint entweder veraltet oder unvollendet zu sein ... Viel Glück!


1
Dies sind großartige Programme, aber leider konnte ich mein Problem nicht lösen, da das Problem durch erneutes Binden nicht behoben werden konnte.
Shazzner

1

Ich benutze Linux Mint 17.3 und hatte das gleiche Problem. Ich hatte die Onlive-Konsole und wollte den Controller wegwerfen. Ich wusste nicht, dass es funktionieren würde, aber es stellte eine einfache Verbindung über Bluetooth her. Der linke Joystick steuerte die Maus und ich suchte und probierte verschiedene Methoden aus, aber keine funktionierte. Ich poste dies, damit es anderen Menschen helfen kann. Ich habe die Fehlerbehebung auf der Setup-Seite von Ubuntu Sixaxis verfolgt . Ich musste diese Konfiguration zur Datei xorg.conf hinzufügen:

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

EndSection

Es funktioniert einwandfrei, nachdem Sie sich abgemeldet haben. Das einzige Problem ist, wenn die xorg.conf wie nach der Installation eines neuen Grafiktreibers aktualisiert wird, geht sie verloren. Kann mir jemand erklären, wie man ein Skript erstellt, das prüft, ob sich die Konfiguration in der Datei befindet, wenn nicht, schreiben Sie es nach jedem Neustart? Danke im Voraus.


0

1- Zuerst sollte Ihre Joystick-Nummer angezeigt werden. Führen Sie also Terminal aus und geben Sie xinpute list ein. Suchen Sie Ihre Joystick-Nummer und ersetzen Sie deren Nummer anstelle der 10 im folgenden Beispiel.

#!/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- Erstellen Sie ein neues Dokument, geben Sie den Code ein und benennen Sie es in name.sh um. Format 3- Führen Sie Terminal aus und geben Sie den Pfad an, in dem Sie die Datei speichern.

Beispiel: cd Desktop (Weil ich meine auf dem Desktop gespeichert habe)

4- Geben Sie bash name.sh ein (Klicken Sie auf die Eingabetaste und Sie sind fertig!)

Hinweis 1: Um es wieder einzuschalten, ändern Sie einfach die 0 in den letzten 2 Zeilen in 1. Hinweis 2: Wenn dies nicht funktioniert, entfernen Sie unbedingt den xserver-xorg-input-joystick und /usr/lib/X11/xorg.conf.d / 10-Joystick


0

Die Antwort von Matias Parmigiani war der Schlüssel für mich. Allerdings hat sich das Format der xinput listzumindest auf Ubuntu 13.04 LTS geändert ...

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

Infolgedessen musste ich in meinem Deaktivierungsskript Folgendes verwenden:

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

Hoffe das hilft!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.