js2mouse

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

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

  2. Einen Editor öffnen

  3. Ändern von Zugriffsrechten

  4. Programme zum Autostart hinzufügen

  5. Archive entpacken

  6. Programme kompilieren

Inhaltsverzeichnis
  1. Installation
    1. Herunterladen
    2. Entpacken
    3. Kompilieren
    4. Starten über Autostart
  2. Konfigurationsdateien des XServers verände...
  3. Mappen der Befehle
  4. Deinstallation
  5. Links

Wiki/Icons/joystick.png

Mit js2mouse 🇬🇧 lässt sich jeder Joystick und jedes Gamepad als Maus benutzen. Dieser Artikel befasst sich mit der Installation und Konfiguration von js2mouse.

Installation

Herunterladen

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.

Entpacken

Wiki/Icons/package.png Nachdem das Archiv heruntergeladen wurde muss es entpackt [5] werden.

Kompilieren

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.

Starten über Autostart

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.

Hinweis:

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] [...] 

Konfigurationsdateien des XServers verändern

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.

Mappen der Befehle

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 

Deinstallation

js2mouse muss deinstalliert [6] werden.