Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Mit js2mouse lässt sich jeder Joystick und jedes Gamepad als Maus benutzen. Dieser Artikel befasst sich mit der Installation und Konfiguration von js2mouse.
Um dem XServer die Ausgabe einer Maus zu geben, anstatt eines Joysticks, braucht man ein zusätzliches Programm welches dies mittels einer Gerätedatei erledigt.
Js2mouse lässt sich hier herunterladen.
Anschließend wechselt man mit dem Terminal [1] in folgendes Verzeichnis:
cd js2mouse/js2mouse
Und kompiliert [6] das Programm.
Man sollte hier besonders aufmerksam mitlesen, und auf mögliche Fehlermeldungen achten. Zum Beispiel könnte Folgendes auftreten:
exps2/convert_exps2.c:23:2: Warnung: #warning exps2 emulation functions do not work, DO NOT USE THIS PROTOCOL !!!
Dies ist wichtig für die spätere Konfiguration, deshalb sollte man sich den Fehler merken.
Als erstes erstellt man ein Verzeichnis für die Gerätedatei [1], damit dies nicht jeder sofort sieht versteckt man es durch einen Punkt vor dem Namen:
cd ~ mkdir .jsmousedev
Dann fehlt noch ein Script zum Starten im Autostart [4], also öffnet man den Editor und kopiert folgendes [2]:
#!/bin/sh if [ "$#" = '0' ];then ps -ef > '/tmp/ps' # Läuft schon eine Instanz des Programms ? if [ "$(grep 'js2mouse' '/tmp/ps')" = '' ];then /usr/local/bin/js2mouse -r -p 'PROTOKOLL' -f '/home/BENUTZER/.jsmousedev/j2m_fifo' -v 0 & fi exit 0 fi # Ist das erste Argument "stop" ? if [ "$1" = 'stop' ];then killall js2mouse exit 0 fi # Wenn nicht "nichts" und nicht "stop" übergeben wurde dann argument 1 mit restlichen argumenten ausführen killall js2mouse "$@" /usr/local/bin/js2mouse -r -p 'PROTOKOLL' -f '/home/BENUTZER/.jsmousedev/j2m_fifo' -v 0 &
Für PROTOKOLL wählt man das verwendete Protokoll ("imps2" oder "exps2") und BENUTZER muss durch den eigenen Benutzernamen ersetzt werden.
Wer will kann den Parameter hinter -v
bis 3 erhöhen, um die Ausgabe von js2mouse dementsprechend zu erhöhen.
Dann wird der Script als /usr/local/bin/jsmouse.sh gespeichert und ausführbar gemacht [3]:
chmod a+x /usr/local/bin/jsmouse.sh
Als nächstes muss man das Script in den Autostart einbinden [4].
Spiele, in denen man den Joystick verwenden will, kann man dann mit folgendem Befehl starten:
jsmouse.sh Spiel [-Parameter1] [-Parameter2] [...]
Am besten sollte, vor der Bearbeitung, eine Sicherung der Konfigurationsdatei /etc/X11/xorg.conf angelegt werden. Nun öffnet man die Datei mit dem Editor [2] und ergänzt die Datei um einen Eintrag:
Section "InputDevice" Identifier "Configured Joystick Mouse" Driver "mouse" Option "Device" "/home/BENUTZER/.jsmousedev/j2m_fifo" # ImPS/2 oder EXPS/2 Option "Protocol" "PROTOKOLL" ## Nur bei ImPS/2 #Option "ZAxisMapping" "4 5" ## Nur bei EXPS/2 #Option "Buttons" "7" #Option "ZAxisMapping" "6 7" EndSection
Für BENUTZER setzt man seinen eigenen Benutzernamen ein und falls man vorher beim Kompilieren eine Fehlermeldung bekommen hat ist dies jetzt wichtig. Wenn es die gleiche wie oben ist, sollte man als Protokoll ImPS/2 statt EXPS/2 benutzen. Abhängig vom Protokoll sollten die richtigen Optionen einkommentiert werden.
Als nächsten Schritt muss man nach folgendem Eintrag suchen:
Section "ServerLayout"
In eine neue Zeile unter der gefundenen Zeile, fügt man hinzu:
InputDevice "Configured Joystick Mouse" "SendCoreEvents"
Anschließend sollten alle Programme gesichert und geschlossen, und der XServer mit Strg + Alt + ⌫ neu gestartet werden.
Um js2mouse zu sagen welche Joystick-Aktion zu welcher Maus-Aktion werden soll muss man in /etc eine Konfigurationsdatei mit dem Namen j2m_map anlegen [2]. Man kann nun den Einzelnen Buttons und Achsen eine Aktion zuweisen indem man schreibt:
button_1 = click_left
Die Nummer der Buttons und der Achsen kann man mit Hile des Joystick-Konfigurationsprogramms herausfinden. Die Konfigurationsdatei kann zum Beispiel so aussehen:
axe_1 = move_horizontal axe_2 = move_vertical button_11 = click_left button_12 = click_right button_9 = click_middle button_13 = wheel_up button_15 = wheel_down button_17 = click_extra1 button_6 = click_extra2
Damit die Änderungen wirksam werden muss js2mouse neugestartet werden. Dies geschieht mit diesen Befehlen [1]:
jsmouse.sh stop jsmouse.sh
js2mouse muss deinstalliert [6] werden.
Die Konfigurationsdatei /etc/j2m_map kann gelöscht werden.
Das Script /usr/local/bin/jsmouse.sh sollte entfernt werden.
Erstellte symbolische Verknüpfungen und Dateien im Autostart [4] sollten entfernt werden.
Der Ordner ~/.jsmousedev/ samt Gerätedatei, falls vorhanden, sollte gelöscht werden.
Wenn zuvor ein Backup der Konfigurationsdatei /etc/X11/xorg.conf erstellt wurde kann dieses zurück kopiert werden, sonst sollte man die neuen Einträge entfernen.
Diese Revision wurde am 2. Oktober 2012 00:02 von ubot erstellt.