it-swarm.com.de

Der Joystick fungiert als Maus. hört nicht auf

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 dies 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?

14
Shazzner

Deinstallieren Sie 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.

15

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).

4

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.

2
hochl

Versuchen Sie Qjoypad oder (wenn Sie QT nicht verwenden möchten) das etwas weniger ausgestattete Rejoystick (GTK). Auf diese Weise müssen Sie die xorg.conf nicht bearbeiten/erstellen.

Sie sind beide auf playdeb verfügbar

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

1
turbo

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.

1

Vielleicht sollten Sie jscal verwenden, um Ihren Joystick zu kalibrieren - Sie können die Option -u gemäß Manualpage verwenden, um den Joystick so zu konfigurieren, dass er die Maustasten nicht verwendet.

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

1
fossfreedom

Die Antwort von Matias Parmigiani war der Schlüssel für mich. Allerdings hat sich das Format des xinput list geändert, zumindest unter 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)]

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!

0
Phoeey

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
AhmedAlkaabi