Rozumiem twoją frustrację, ale ten problem można rozwiązać bardzo prosto za pomocą xinput
narzędzia.
Najpierw podłącz mysz USB, a następnie uruchom następujące polecenie:
xinput list
aby zobaczyć id
mysz. Wyjście powyższej komendy może być podobne do:
xinput | kot
⎡ Identyfikator wirtualnego wskaźnika rdzenia = 2 [wskaźnik główny (3)]
↳ ↳ Wskaźnik wirtualnego rdzenia XTEST id = 4 [wskaźnik slave (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 14 [wskaźnik slave (2)]
Mouse ↳ Identyfikator myszy USB = 11 [wskaźnik slave (2)]
⎣ Identyfikator wirtualnej klawiatury rdzenia = 3 [klawiatura główna (2)]
...
W powyższym przykładzie mysz USB ma id=11
. Użyjemy tego id
w następującym poleceniu, które zamieni przyciski, które będą leworęczne tylko dla myszy USB (a nie dla tauchpad):
xinput set-button-map 11 3 2 1
Ogólnie:
xinput zestaw-przycisk-mapa id 3 2 1
Aby cofnąć zmianę, użyj:
xinput zestaw-przycisk-mapa id 1 2 3
Aby wprowadzić zmianę na stałe, dodaj następujące polecenie w aplikacjach startowych (wyszukaj w Dash dla aplikacji startowych ):
sh -c "xinput set-button-map id 3 2 1"
Aktualizacja:
Ponieważ identyfikator może się zmienić po ponownym uruchomieniu komputera, ale nazwa myszy USB nie, możesz również wyszukać nazwę myszy i zastosować ją. Aby pominąć szczegóły reg. wybranie nazwy wygląda ostateczne rozwiązanie:
dla id w liście `/ usr / bin / xinput | / bin / grep „ Mysz USB ” | / bin / grep -o [0-9] [0-9] `; wykonaj xinput set-button-map $ id 3 2 1; gotowy;
spakuj go do wyżej wymienionych aplikacji startowych , które w końcu otrzymasz:
sh -c "dla id w` / usr / bin / xinput list | / bin / grep ' USB Mouse ' | / bin / grep -o [0-9] [0-9] `; do xinput set-button-map $ id 3 2 1; gotowe; "
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;"
i to działa (być może trzeba dbać o właściwe łączniki). Dziękuję za podpowiedź.Jest jeszcze prostszy sposób niż w odpowiedzi Radu Rădeanu .
xinput
akceptuje nazwę urządzenia wejściowego jako alternatywę dla jego identyfikatora numerycznego. Ponieważ mysz USB jest prawdopodobnie traktowana ogólnie, najprawdopodobniej jej nazwaUSB Mouse
. Dlatego prawdopodobnie nawet nie musisz biegaćxinput list
.W ten sposób Twój
xinput set-button-map
, z tą nazwą zamiast identyfikatora numerycznego, staje się:To zajmuje miejsce i powinno osiągnąć to samo, czyniąc z niego leworęczną mysz, tak jak w przypadku użycia metody numerycznej identyfikacji . (Zastąpienie go nadal będzie działać, aby zmienić go w mysz praworęczną).
xinput set-button-map id 3 2 1
3 2 1
3 2 1
1 2 3
Ma to tę zaletę, że pod warunkiem, że działa początkowo, będzie nadal działać po ponownym uruchomieniu komputera, bez konieczności uzyskiwania numeru identyfikacyjnego urządzenia za pomocą długich, złożonych poleceń.
źródło
xinput list
pokazuje 2 wpisy o tej samej nazwie („Bezprzewodowa klawiatura i mysz 2.4G”), z wyjątkiem tego, że jeden mówi „[wskaźnik slave (2)]”, a drugi mówi „[klawiatura slave (3) )] ”. Więc z twoim rozwiązaniem mam ten błąd: „Istnieje wiele urządzeń o nazwie„ Bezprzewodowa klawiatura i mysz 2.4G ”.”. W tej chwili korzystam z dodawania rozwiązania Radugrep 'slave pointer'
. Zastanawiam się, czy xinput pozwala w jakiś sposób określić, że mamy na myśli wskaźnik bez robienia tego wszystkiego.Odkryłem, że komenda uruchamiania w drugiej odpowiedzi działa tylko wtedy, gdy id jest dwucyfrową liczbą. Oto moje modyfikacje, które powinny działać dla liczb jedno- i dwucyfrowych:
W aplikacjach startowych
źródło
Oto bardziej szczegółowe rozwiązanie, które rozwiązuje dwa problemy:
xinput list
pokazuje 2 wpisy o tej samej nazwie („Bezprzewodowa klawiatura i mysz 2.4G”), z wyjątkiem tego, że jeden mówi „[wskaźnik slave (2)]”, a drugi mówi „[klawiatura slave (3) )] ”. Tak więc z rozwiązaniem @reedstrm miałem ten błąd: „Istnieje wiele urządzeń o nazwie„ Bezprzewodowa klawiatura i mysz 2.4G ”.”, Podczas gdy w rozwiązaniu @Radu Rădeanufor
iterowano ponad 2 identyfikatory, jedno dla myszy i jedno dla klawiatury, mając Komunikat o błędzie „urządzenie nie ma przycisków” z drugim.źródło