ubuntuusers.de

js2mouse

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

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

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.

  • 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 29. Oktober 2022 16:26 von DJKUhpisse erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Controller