Ich verstehe Ihre Frustration, aber dieses Problem kann mit Hilfe des xinput
Tools sehr einfach gelöst werden .
Schließen Sie zuerst Ihre USB-Maus an und führen Sie dann den folgenden Befehl aus:
xinput list
um das id
von deiner Maus zu sehen. Die Ausgabe des obigen Befehls kann ähnlich sein wie:
xinput | Katze
⎡ ID des virtuellen Kernzeigers = 2 [Hauptzeiger (3)]
⎜ ↳ XTEST-Zeiger-ID des virtuellen Kerns = 4 [Slave-Zeiger (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad-ID = 14 [Slave-Zeiger (2)]
⎜ ↳ USB-Maus-ID = 11 [Slave-Zeiger (2)]
⎣ ID der virtuellen Kerntastatur = 3 [Haupttastatur (2)]
...
Im obigen Beispiel hat die USB-Maus id=11
. Wir werden dies id
im folgenden Befehl verwenden, der die Tasten für Linkshänder nur für die USB-Maus (und nicht für das Tauchpad) austauscht:
xinput set-button-map 11 3 2 1
Allgemein:
xinput set-button-map id 3 2 1
Verwenden Sie zum Zurücksetzen der Änderung:
xinput set-button-map id 1 2 3
Um die Änderung dauerhaft zu machen, fügen Sie den folgenden Befehl an Startup - Anwendungen (Suche in Dash für Startup - Anwendungen ):
sh -c "xinput set-button-map id 3 2 1"
Aktualisieren:
Da sich die ID nach dem Neustart möglicherweise ändert, der Name der USB-Maus jedoch nicht, können Sie auch nach dem Namen der Maus suchen und diese anwenden. Um die Details zu überspringen reg. Wenn Sie den Namen auswählen, sieht die endgültige Lösung folgendermaßen aus:
für id in `/ usr / bin / xinput list | / bin / grep ' USB-Maus ' | / bin / grep -o [0-9] [0-9] `; xinput set-button-map $ id 3 2 1; erledigt;
Packen Sie es in die oben genannten Startup-Anwendungen, die Sie endlich erhalten:
sh -c "für ID in` / usr / bin / xinput-Liste | / bin / grep ' USB-Maus ' | / bin / grep -o [0-9] [0-9] `; mache xinput set-button-map $ id 3 2 1; erledigt; "
sh -c "for id in '/usr/bin/xinput list | /bin/grep 'Razer' | /bin/grep -o [0-9][0-9]'; do xinput set-button-map $id 3 2 1; done;"
und das funktioniert (vielleicht muss man sich um die richtigen Bindestriche kümmern). Danke für den Hinweis.Es gibt einen noch einfacheren Weg als in Radu Rădeanus Antwort .
xinput
akzeptiert den Namen des Eingabegeräts als Alternative zu seiner numerischen ID. Da Ihre USB-Maus wahrscheinlich generisch behandelt wird, ist der Name höchstwahrscheinlichUSB Mouse
. Daher müssen Sie wahrscheinlich nicht einmal laufenxinput list
.So wird Ihr
xinput set-button-map
mit diesem Namen anstelle der numerischen ID:Dies tritt an die Stelle von und sollte dasselbe erreichen, indem es zu einer linkshändigen Maus gemacht wird, genau wie bei Verwendung der numerischen ID-Methode . (Und das Ersetzen durch wird immer noch funktionieren, um es auf eine rechtshändige Maus umzustellen.)
xinput set-button-map id 3 2 1
3 2 1
3 2 1
1 2 3
Dies hat den Vorteil, dass es, sofern es anfänglich funktioniert, über Neustarts hinweg weiterhin funktioniert, ohne dass die ID-Nummer des Geräts mithilfe langer, komplexer Befehle abgerufen werden muss.
quelle
xinput list
werden 2 Einträge mit demselben Namen angezeigt ("2.4G Wireless Keyboard & Mouse"), außer dass einer "[Slave-Zeiger (2)]" und der andere "[Slave-Tastatur (3") sagt )] ". Bei Ihrer Lösung tritt also der Fehler "Es gibt mehrere Geräte mit dem Namen" 2.4G Wireless Keyboard & Mouse "" auf. Im Moment verwende ich Radus Lösungszusatzgrep 'slave pointer'
. Ich frage mich, ob xinput es erlaubt, irgendwie anzugeben, dass wir uns auf einen Zeiger beziehen, ohne dies alles zu tun.Ich habe festgestellt, dass der Startbefehl in der anderen Antwort nur funktioniert, wenn die ID eine zweistellige Zahl ist. Hier sind meine Änderungen, die sowohl für ein- als auch für zweistellige Zahlen funktionieren sollten:
In Startanwendungen
quelle
Hier ist eine ausführlichere Lösung, die zwei Probleme löst:
xinput list
werden 2 Einträge mit demselben Namen angezeigt ("2.4G Wireless Keyboard & Mouse"), außer dass einer "[Slave-Zeiger (2)]" und der andere "[Slave-Tastatur (3") sagt )] ". Bei der @ reedstrm-Lösung hatte ich den Fehler "Es gibt mehrere Geräte mit dem Namen '2.4G Wireless Keyboard & Mouse'.", Während bei der @ Radu Rădeanu-Lösungfor
über zwei IDs iteriert wurde, eine für die Maus und eine für die Tastatur mit einer Fehlermeldung "Gerät hat keine Tasten" mit der zweiten.quelle