Logitech MX Ergo Tastenbelegung konfigurieren

nimda

Member
Hallo allerseits,

ich nutze seit einer Woche OpenBSD 7.7 auf meinem Thinkpad L14 - mit vollster Zufriedenheit.

Eine Sache bekomme ich aber leider nicht auf die Reihe - wohl auch, weil die wenigen Anleitungen die ich gefunden habe, alle schon 5-7 Jahre alt waren.

Ich verwende eine Logitech Trackball MX Ergo angeschlossen über den Unifying USB-Receiver vom Hersteller. Der hat soweit auch auf Anhieb funktioniert, nur würde ich gerne zwei Tasten so umfunktionieren, wie sie auch bei dem Trackball Standart sind. Links neben dem Scroll-Rad sind zwei Tasten, die "normalerweise" beim Browsen die aufgerufenen Seiten vor- oder zurückblättern. Sehr angenehm, vor allem wenn man das schon x-Jahre benutzt.

Jetzt machen sie das gleiche wie das Scroll-Rad. Das würde ich gerne ändern wollen.

Gibt es hier jemanden, der mir da mal ein bisschen unter die Arme greifen könnte ?

dmesg | grep wsmouse
wsmouse0 at pms0 mux 0
wsmouse1 at pms0 mux 0
wsmouse2 at ums0 mux 0
wsmouse3 at ums1 mux 0

dmesg | grep ums
ums0 at uhidev2 reportid 1: 5 buttons, Z and W dir
wsmouse2 at ums0 mux 0
ums1 at uhidev5 reportid 2: 16 buttons, Z and W dir
wsmouse3 at ums1 mux 0
 
Ich habe zwar keinen Trackball MX Ergo, allerdings eine MX Master Maus und eine MX Master 3 Maus. Vermutlich sind die von der Elektronik unter der Haube identisch.

Ich habe dieses Howto als Grundlage genommen und hier spricht er auf vom MX Ergo Trackball: https://www.bsdhowto.ch/mousekeys.html

/etc/X11/xorg.conf
Code:
Section "InputClass"
    Identifier "Your Mouse"
    MatchDriver "ws"
    Driver "ws"
    Option "Buttons" "16"
    Option "Device" "/dev/wsmouse"
    Option "Floating" "false"
    Option "WAxisMapping" "10 11"
    Option "ZAxisMapping" "8 9"
EndSection

Und einen Eintrag in der ~/.xinitrc wenn Du startx nutzt oder ~/.xsession, wenn Du z.B. xenodm nutzt.
Code:
xmodmap -e "pointer = 1 2 3 8 9 10 11 4 5 6 7 12 13 14 15 16"

Dann einmal aus- und wieder einloggen.
 
Diese Anleitung war die Zweite, die ich versucht habe - leider nicht ganz richtig.

Das Mausrad und die Vor- und Zurücktaste sind vertausche. Sprich:
  • Das Mausrad lässt die besuchten Seiten vor- und zurückspringen
  • Die Vor- und Zurücktaste scrollt die aufgerufene Seite rauf und runter.
Lasse ich beide Änderungen weg, also ohne Eintrag in der ~/.xsession und xorg.conf, dann haben sowohl das Mausrad als auch die Vor- / Zurücktaste die Funktion des scrollens.
 
Evtl. so.
Code:
Section "InputClass"
     Identifier "Logitech MX Ergo"
     MatchDriver "ws"
     Driver "ws"
     Option "Buttons" "16"
     Option "Device" "/dev/wsmouse"
     Option "Floating" "false"
     Option "ZAxisMapping" "6 7"
EndSection

Code:
xmodmap -e "pointer = 1 2 3 8 9 4 5 6 7 10 11 12 13 14 15 16"

Ansonsten musst Du mal mit den Zahlen und deren Reihenfolge rumspielen oder wie im o.g. Link beschrieben, mit xev -event button > buttons.txt mal die Buttons durchtesten und die Zahlen zu den Buttons dann aus der txt-Datei raussuchen und dann die zu den Zahlen passenden Buttons und Events tauschen.
 
So wie hier in diesem Artikel beschrieben verhält es sich auch mit dem MX Ergo.


Es scheint aber so, dass das "remappen" nicht mehr so funktioniert wie dort beschrieben.
Taste 4+8 und 8+9 kann man zwar andere Funktionen zuweisen, aber leider nicht getrennt.
Wenn ich die Funktion der Tasten 4+5 ändere, so ändere ich auch immer die der Tasten 8+9.
 
Kannst Du mal xmodmap -e "pointer = 1 2 3 8 9 4 5 6 7 10 11 12 13 14 15 16" im Terminal eingeben und schauen, ob deine Maus ueberhaupt 16 events kann? Meine MX kann beispielsweise nur 12 events und mit o.g. Befehl kommt folgende Fehlermeldung: Warning: Not changing 4 extra buttons beyond 12.. Daher hatte ich das bei mir entsprechend auf 12 event angepasst.

Code:
$ cat /etc/X11/xorg.conf.d/mouse.conf
# https://www.bsdhowto.ch/mousekeys.html
Section "InputClass"
        Identifier "Your Mouse"
        MatchDriver "ws"
        Driver "ws"
        Option "Buttons" "12"
        Option "Device" "/dev/wsmouse"
        Option "Floating" "false"
        Option "WAxisMapping" "10 11"
        Option "ZAxisMapping" "8 9"
EndSection
und
Code:
$ grep xmodmap .xinitrc
/usr/X11R6/bin/xmodmap -e "pointer = 1 2 3 8 9 10 11 4 5 6 7 12"
 
ich sage mal ganz allgemein, dass in einem solchen Stadium der Diskussion mehr Information sehr aufschlussreich sein kann.
So erkenne ich nirgendwo, was der TE gemacht hat, um zu welchem Ergebnis zu gelangen.

Mann muss nicht die Ausgabe von xev in einen Text umleiten. Mir hilft es durchaus, wenn ich live ansehen kann, welche Taste welchen Code liefert.
Wenn alle Tasten erkannt werden, braucht man auch nicht mehr mit xmodmap zu definieren. Was man will, ist ja dann schon vorhanden und lediglich evtl die Funktion unerwünscht.
Wenn das also so ist, sollte man meiner Ansicht nach nur die xorg.conf (bzw dis Maus-Sektion unter /usr/local/etc/X11/xorg.conf.d/ (FreeBSD)) anfassen, um Änderungen vor zu nehmen. Die Option "ZAxisMapping" steht dabei für das Maus-Rad. Ich weiß nicht, wie das wirklich ist, aber auch in dem verlinkten Beitrag wird darauf nicht eingegangen. Ich denke, wenn man diese Zuweisung (also die zusätzlichen Achsen) vorgenommen hat, werden die übrigen Maustasten ziemlich sicher verstanden werden, sind es doch jeweils eigene Schalter, die abgefragt werden.
Ob nun das Vertauschen von Schaltern auch die Funktionsrichtung ändert, weiß ich nicht, vermute aber beinahe, das das so ist (also Scrollen in umgekehrter Richtung wenn "5 4" statt "4 5").
Hierbei kommen dann aber oft auch noch nachgelagerte Einstellungen aus dem verwendeten DE oder gar den einzelnen Anwendungen zum Zuge, so dass man das allgemein gar nicht ohne Weiteres sagen kann, dass alles erfolgreich in X zu konfigurieren ist.

Ein guter Test ist meiner Ansicht nach auch, einfach mal eine einfache Maus im laufenden System am USB-Port anstecken. Die ist dann ja gar nicht eigentlich konfiguriert und wird ziemlich exklusiv von X erkannt und verdaut.
Was da erkannt wird, muss man in der Xorg.0.log nachsehen und natürlich auch in dmesg kontrollieren.

zur Logitech Trackball MX Ergo kann ich natürlich gar nichts sagen, aber: wieso wird denn die eigentlich als wsmouse erkannt? Das suggeriert doch, dass da ein eigener Treiber benutzt wird und passt der denn überhaupt? Ist das nicht eher ein Treiber für Touchpads?


während ich schrieb, kam ein neuer Beitrag und ich gehe direkt daruaf ein:
Kannst Du mal xmodmap -e "pointer = 1 2 3 8 9 4 5 6 7 10 11 12 13 14 15 16" im Terminal eingeben und schauen, ob deine Maus ueberhaupt 16 events kann?
ums1 at uhidev5 reportid 2: 16 buttons, Z and W dir
also, laut dmesg kann die Maus das.
Ich glaube, den Rest sollte man mittels xev heraus finden können.


In allen Beiträgen bisher wurde aber nicht die Funktion
Seiten vor- oder zurückblättern.
besprochen. Bei mir funktionierte das immer automagisch wie gewollt und ich weiß gar nicht, ob dafür X zuständig ist. X muss erkennen und weiter geben, aber muss das dann nicht ein Browser auswerten? Ich kenne zumindest grad nicht den Ausdruck, den man dafür in der xorg konfigurieren müsste, oder ist das immer die WAx?
Wenn so, dann wieder zur Logitech Trackball MX Ergo, die ja offenbar bereits ein WAx mitbringt? Nochmal: xev ist bestimmt dein Freund und zeigt das. Dann kann man auch mehr als ein Button-Paar einer Richtung zuweisen, also nur mal so zum Beispiel gesprochen: Option "WAxisMapping" "10 11 12 13".
 
also, laut dmesg kann die Maus das.

Ja das steht bei mir auch, siehe:
Code:
wsmouse5 at ums1 mux 0
ums0 at uhidev3 reportid 3: 5 buttons
wsmouse4 at ums0 mux 0
ums1 at uhidev6 reportid 2: 16 buttons, Z and W dir
Das ist vermutlich auch das Problem. Der Treiber denkt, dass die Maus 16 event kann und die letzten 4 werden dann einfach abgeschnitten und dadurch sind einige Tasten wie das Scrollrad und die vor-/ und zurueck-Taste auf dem gleichen Event. Bei mir funktioniert es daher auch nur, wenn ich das in der /etc/X11/xorg.conf.d/mouse.conf auf 12 Tasten begrenze und die xmodmap dann entsprechend abaendere, siehe oben.
 
Das ist vermutlich auch das Problem. Der Treiber denkt, dass die Maus 16 event kann und die letzten 4 werden dann einfach abgeschnitten und dadurch sind einige Tasten wie das Scrollrad und die vor-/ und zurueck-Taste auf dem gleichen Event. Bei mir funktioniert es daher auch nur, wenn ich das in der /etc/X11/xorg.conf.d/mouse.conf auf 12 Tasten begrenze und die xmodmap dann entsprechend abaendere, siehe oben.
ahja, jetzt verstehe ich das. Danke.
 
Erstmal vielen Dank an Euch für die geleistete Hilfe :)

Code:
xmodmap -e "pointer = 1 2 3 8 9 4 5 6 7 10 11 12 13 14 15 16"
Warning: Not changing 6 extra buttons beyond 10.

Eine xorg.conf habe ich hier nicht standartmäßig. Die habe ich wie oben erstellt, und nur die vertikalen Tasten für das Rad (Z) abgeändert (4+5).
 
Also scheint der Trackball nur 10 Tasten zu managen....wenn ich das jetzt richtig interpretiere.
Werde jetzt mal wieder die xorg.conf erstellen und an WAxisMapping und 10 Tasten arbeiten.
 
Tja, das ging schnell....

Habe in der erstellten xorg.conf die horizontal (W) den Mausrads auf die Tasten 8 + 9 gelegt.....

Jetzt muss man seinen Finger quasi nicht mehr vom Mausrad lupfen, sonder kann durch horizontale Aktion des Rades die Seiten vor- und zurückblättern. Das gefällt mir sogar noch um einiges besser....auch wenn ich mich erstmal dran gewöhnen muss :)

Herzlichen Dank Euch !

Code:
Section "InputClass"
        Identifier "Your Mouse"
        MatchDriver "ws"
        Driver "ws"
        Option "Buttons" "10"
        Option "Device" "/dev/wsmouse"
        Option "Floating" "false"
        Option "WAxisMapping" "8 9"
        Option "ZAxisMapping" "4 5"
EndSection
 
Zurück
Oben