Linke Hand und Touchpad rechtshändig machen

8

Ich sehe, dass ich Maus und Touchpad in einem Panel konfigurieren kann (Ubuntu 13.10, Standardeinstellungen, Gnome). Welches ist zu einem gewissen Grad. Ich möchte nämlich das Touchpad anders konfiguriert haben als die Maus und ...

Wenn ich eine (USB) Maus angeschlossen habe, benutze ich diese normalerweise linkshändig. Deshalb schalte ich die Tasten auf Linkshänder um. Aber wenn ich das Touchpad benutze, fühle ich mich bei dieser Konfiguration etwas verloren. Deshalb möchte ich es rechtshändig haben.

Gibt es eine Möglichkeit, Folgendes zu erreichen: Wenn ich eine Maus einstecke (bzw. wenn sie erkannt wird), schalte ich automatisch auf Linkshänder um und wenn ich sie abziehe, wechsle automatisch auf Rechtshänder?

    
LeO 14.11.2013, 17:12

4 Antworten

9

Ich verstehe Ihre Frustration, aber dieses Problem kann sehr einfach mit Hilfe von xinput tool gelöst werden.

Schließen Sie zuerst Ihre USB-Maus an und führen Sie den folgenden Befehl aus:

xinput list

, um die id Ihrer Maus zu sehen. Die Ausgabe des obigen Befehls kann ähnlich wie folgt aussehen:

xinput | cat
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=14   [slave  pointer  (2)]
⎜   ↳ USB Mouse                                 id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ...

Im obigen Beispiel hat die USB-Maus id=11 . Wir werden dieses id im folgenden Befehl verwenden, der die Tasten nur für die USB-Maus (und nicht für das tauchpad) als Linkshänder vertauscht:

xinput set-button-map 11 3 2 1

Im Allgemeinen:

xinput set-button-map id 3 2 1

Um die Änderung rückgängig zu machen, verwenden Sie:

xinput set-button-map id 1 2 3

Um die Änderung dauerhaft vorzunehmen, fügen Sie den folgenden Befehl unter Startup Applications hinzu ( Dash für Startup Applications ):

sh -c "xinput set-button-map id 3 2 1"

Aktualisierung:

Da sich die ID nach dem Neustart möglicherweise ändert, aber der Name der USB-Maus nicht, könnten Sie auch nach dem Namen der Maus grep suchen und diese anwenden. Um die Details zu überspringen reg. Den Namen heraussuchen, wie die endgültige Lösung aussieht:

for id in '/usr/bin/xinput list | /bin/grep 'USB Mouse' | /bin/grep -o [0-9][0-9]'; do xinput set-button-map $id 3 2 1; done;

packen Sie es in die oben genannten Startup-Anwendungen Sie werden schließlich bekommen:

sh -c "for id in '/usr/bin/xinput list | /bin/grep 'USB Mouse' | /bin/grep -o [0-9][0-9]'; do xinput set-button-map $id 3 2 1; done;"
    
Radu Rădeanu 14.11.2013, 17:55
8

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 wahrscheinlich USB Mouse . Daher müssen Sie wahrscheinlich nicht xinput list ausführen.

So wird Ihr xinput set-button-map mit diesem Namen anstelle der numerischen ID zu:

xinput set-button-map "USB Mouse" 3 2 1

Dies tritt an die Stelle von xinput set-button-map id 3 2 1 und sollte dasselbe erreichen, wobei 3 2 1 eine linkshändige Maus ist, genau wie beim numerischer ID-Weg wird verwendet. (Und das Ersetzen von 3 2 1 durch 1 2 3 funktioniert immer noch, um es zu einer rechtshändigen Maus zu machen.)

Das hat den Vorteil, dass es, sofern es anfänglich funktioniert, auch bei Neustarts funktioniert, ohne die ID-Nummer des Geräts mit langen, komplexen Befehlen abrufen zu müssen.

    
reedstrm 04.09.2014 16:21
1

Ich habe festgestellt, dass der Startbefehl in der anderen Antwort nur funktioniert, wenn die ID eine zweistellige Zahl ist. Hier sind meine Modifikationen, die für ein- und zweistellige Zahlen funktionieren sollten:

In Startup-Anwendungen

bash -c "for id in '/usr/bin/xinput list | /bin/grep 'USB Mouse' | /bin/grep -o id=[0-9][0-9]*'; do xinput set-button-map ${id:3} 3 2 1; done;"
    
robbie 30.03.2014 13:26
0
device_id=$(/usr/bin/xinput list \
            | /bin/grep 'slave  pointer' \
            | /bin/grep 'Wireless Keyboard&Mouse' \
            | tr " " "\n" \
            | /bin/grep "id=" \
            | /bin/grep -o [0-9][0-9]* \
        )
/usr/bin/xinput set-button-map $device_id 3 2 1 

Hier ist eine ausführlichere Lösung, die zwei Probleme löst:

  • Es funktioniert für Geräte-IDs mit einer beliebigen Anzahl von Ziffern (wie @robbie Lösung, aber ein bisschen anders geschrieben)
  • Beachtet, dass der Gerätename dupliziert werden kann. In meinem Fall habe ich eine drahtlose Maus + Tastatur, also zeigt xinput list 2 Einträge mit dem gleichen Namen ("2.4G Wireless Keyboard & amp; Mouse"), außer einer sagt "[slave pointer (2)]" und der andere sagt " [Slave-Tastatur (3)] ". Also mit @reedstrm Lösung hatte ich diesen Fehler "Es gibt mehrere Geräte mit dem Namen '2.4G Wireless Keyboard & amp; Mouse'.", Während mit @Radu Rădeanu Lösung, die for wurde über 2 IDs, eine für die Maus und eine für die Tastatur, mit einem "Gerät hat keine Tasten" Fehlermeldung mit dem zweiten.
matiascelasco 25.08.2017 18:41

Tags und Links