ubuntuusers.de

joy2key

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Dieser Artikel befasst sich mit der Konfiguration des Programms joy2key. Mit diesem Programm kann ein Joystick wie eine Tastatur verwendet werden. Man kann z.B. dem Bewegen des Joysticks nach links die Taste zuordnen. So können auch Spiele mit dem Joystick gesteuert werden die solche Geräte normalerweise nicht unterstützen.

Hinweis:

In diesem Artikel wird nur der Begriff Joystick verwendet, alle Anweisungen funktionieren aber auch für Gamepads. Bei den Einstellungen welche die Achsen betreffen müssen bei einem Gamepad die Richtungstasten gedrückt werden.

Installation

Folgendes Paket muss installiert [1] werden:

  • joy2key (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install joy2key 

Oder mit apturl installieren, Link: apt://joy2key

Benutzung/Konfiguration

Achtung!

Zuerst muss der Joystick mit einem Programm wie joystick kalibriert werden. joy2key führt zwar auch noch eine Kalibrierung durch, diese hat aber einen anderen Zweck und bewirkt nicht das gleiche.

Einfache Beispielkonfiguration

Das Spiel welches man steuern möchte sollte zuerst gestartet werden. Erst danach startet [4] man joy2key aus einer Konsole [2].

Verwendung der Achsen

Dem Programm müssen einige Argumente übergeben werden:

  • -X Um die Signale des Joysticks an ein Fenster mit grafischer Oberfläche zu übergeben (sollte bei einem Spiel der Normalfall sein)

  • -dev /dev/input/js0 Legt das Gerät fest welches verwendet werden soll (je nach Ubuntuversion normalerweise /dev/js0 oder /dev/input/js0)

  • -axis Left Right Up Down Welche Tasten den Bewegungen des Joysticks zugeordnet werden sollen (in folgender Reihenfolge: links, rechts, oben, unten)

Man startet also joy2key mit folgendem Befehl:

joy2key -X -dev /dev/input/js0 -axis Left Right Up Down 

Dann wird man nach dem Fenster gefragt welches verwendet werden soll, man klickt also einfach auf das Fenster des Spiels.

Anschließend wird der Joystick kalibriert. In der Konsole wird folgendes angezeigt:

Calibrating axis 0
Please center the axis and press a button.
?

Nun sollte man nicht sofort eine Taste drücken sondern zuerst den Joystick etwas bewegen, und dann wieder in die mittlere Stellung bringen, so dass in der Konsole eine Zahl angezeigt wird:

Calibrating axis 0
Please center the axis and press a button.
value: 512

Erst jetzt kann man eine Taste drücken. Dann den Joystick einmal ganz nach links bewegen und eine Taste drücken, und schließlich noch einmal ganz nach rechts und wieder eine Taste drücken. Danach wird das Gleiche nochmal mit der Achse 1 gemacht. Hier den Joystick zuerst in die Mitte, dann nach oben und schlussendlich nach unten bewegen. Die Reihenfolge links, rechts, oben, unten ist wichtig! Wenn die Kalibrierung abgeschlossen ist dann sollte man das Spiel mit dem Joystick steuern können.

Verwendung der Tasten

Zusätzlich zu den Achsen können natürlich auch die Tasten verwendet werden. Dazu gibt es folgendes Argument:

  • -buttons Taste für Button0 Taste für Button1 usw.

Will man beispielsweise dem Button0 die Taste          zuordnen ruft man das Programm so auf:

joy2key -X -dev /dev/input/js0 -buttons space 

Hinweis:

Wie die Tasten eines Joysticks nummeriert sind lässt sich mit einem Programm wie jscalibrator [5] herausfinden. Die Bezeichnungen der Tastaturtasten findet man mit xev. In der Ausgabe von xev findet man diese nach dem Wort keysym. Beim Drücken der Leertaste wird z.B. folgendes angezeigt: (keysym 0x20, space)

Auswahl des Fensters

Wenn man das Fenster des Spiels nicht mit der Maus auswählen will, dann kann man auch den Namen des Fensters festlegen. Um das Spiel GNOMEtris mit einem Joystick zu steuern würde man z.B. folgenden Befehl verwenden:

joy2key "GNOMEtris" -X -dev /dev/input/js0 -axis Left Right Up Down -buttons space 

Kalibrierung

Normalerweise wird bei jedem Start von joy2key eine Kalibrierung durchgeführt. Um sich dies zu ersparen kann man die Werte die verwendet werden sollen auch direkt angeben. Nach dem Kalibrieren zeigt joy2key fogende Ausgabe in der Konsole:

Calibrating axis 0
Please center the axis and press a button.
value: 512   
Locked at 512
Please move the axis to its lowest position and press a button.
value: 4   
Please move the axis to its highest position and press a button.
value: 1021   
Using deadzone of 50%
Calibrations set at:
Axis 0 low threshold set at 258
Axis 0 high threshold set at 766
(you can put these in your .joy2keyrc to avoid calibrating in the future)

Calibrating axis 1
Please center the axis and press a button.
value: 512   
Locked at 512
Please move the axis to its lowest position and press a button.
value: 4   
Please move the axis to its highest position and press a button.
value: 1021   
Using deadzone of 50%
Calibrations set at:
Axis 1 low threshold set at 258
Axis 1 high threshold set at 766
(you can put these in your .joy2keyrc to avoid calibrating in the future)
Initialization complete, entering main loop, ^C to exit...

Wichtig sind die vier Zeilen in denen ein threshold Wert angezeigt wird (also z.B. Axis 0 low threshold set at 258). Diese Werte können mit dem Argument

  • -thresh Wert1 Wert2 Wert3 Wert4

direkt eingestellt werden ohne dass immer wieder Kalibriert werden muss. In diesem Beispiel würde man folgenden Befehl verwenden:

joy2key "GNOMEtris" -X -dev /dev/input/js0 -axis Left Right Up Down -buttons space -thresh 258 766 258 766 

Einrichtung einer Konfigurationsdatei

Der Befehl für joy2key kann schnell etwas lang und kompliziert werden. Deshalb gibt es auch die Möglichkeit die Eintstellungen in einer Konfigurationsdatei zu speichern. Die Datei enthält einen COMMON-Bereich und für jedes Profil das man erstellen möchte einen START-Bereich.

COMMON
#Allgemeine Optionen
-Option1

START profilname
#Optionen für ein bestimmtes Spiel
-Option

Die Optionen werden genau so in die Datei geschrieben [3] wie man sie in der Konsole eingegeben hätte. Die Datei muss .joy2keyrc heißen und im Homeverzeichnis des Benutzers liegen. Dann kann joy2key einfach mit dem Befehl

joy2key -config profilname 

gestartet werden.

COMMON

Dieser Abschnitt gilt immer, wenn die Datei .joy2keyrc verwendet wird (unabhängig vom Profil). Im unten folgenden Beispiel wurden die Threshholds (Wertebereiche) der Steuerachsen (Steuerkreuz) definiert. Der Option -thresh folgen nacheinander die Werte "Achse-0-Low" "Achse-0-High" "Achse-1-Low" "Achse-1-High".

Die Wertebereiche lassen sich mit

joy2key "Fenstertitel" -X -dev /dev/input/js0 -axis Left Right Up Down 

ermitteln.

START

Das Schlüsselwort "START" leitet ein Profil ein, gefolgt von dem Profilnamen (im unten folgenden Beispiel gnometris).

-buttons leitet die Zuordnung der Gamepad-Tasten ein. Die Tasten werden in der Reihenfolge definiert, wie sie erkannt werden (0-x). Ist diese Reihenfolge nicht bekannt, kann diese mit folgendem Befehl ausprobiert werden:

jstest /dev/input/js0 

Für Sondertasten werden die Werte aus der Datei keysymdef.h verwendet. Mit dem folgenden Befehl kann man die Datei anzeigen:

nano $(locate keysymdef.h) 

Im Beipiel wird dem Button0 also die Leertaste zugewiesen.

-axis leitet die Zuordnung der Steuerachsen ein. Auch hier gefolgt von den Tastaturtasten in der o.g. Reihenfolge (links, rechts, oben, unten).

Beispieldatei

Eine Konfigurationsdatei für den Befehl aus dem vorherigen Beispiel würde z.B. so aussehen:

COMMON
-dev /dev/input/js0
-thresh 258 766 258 766

START gnometris
-X
-axis Left Right Up Down
-buttons space

Zum Starten genügt dann der Befehl:

joy2key -config gnometris 

Der Fenstertitel des Spiels kann leider nicht in der Konfigurationsdatei gespeichert werden. Das Fenster muss also entweder jedesmal mit der Maus gewählt werden, oder man kann den Fenstertitel wieder zum Befehl hinzufügen:

joy2key "GNOMEtris" -config gnometris 

Diese Revision wurde am 29. Oktober 2022 16:22 von DJKUhpisse erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Controller, ungetestet