Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
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.
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.
Folgendes Paket muss installiert [1] werden:
joy2key (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install joy2key
sudo aptitude install joy2key
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.
Das Spiel welches man steuern möchte sollte zuerst gestartet werden. Erst danach startet [4] man joy2key aus einer Konsole [2].
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.
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
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)
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
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
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.
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.
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).
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 4. August 2016 13:59 von frustschieber erstellt.