Jak wyłączyć przyciski myszy do przodu / do tyłu


36

Moja mysz ma niefortunną funkcję. Po lewej stronie, tam gdzie mój kciuk siedzi tak delikatnie, kiedy go używam, są dwa tak wrażliwe przyciski, że zwykły pędzel sprawi, że klikną.

Mówię oczywiście o nieprzyjemnych przyciskach do przodu / do tyłu, które po naciśnięciu w przeglądarce mogą znacznie utrudnić oglądanie tego godzinnego filmu na youtube. Czy mogę je wyłączyć? Czy X zajmie się tym?


2
Jestem prawie pewien, że możesz to wyłączyć za pomocą xinput, ale nie znam szczegółów ...
pbm

To pytanie i odpowiedź dotyczy również przycisków Wstecz / Dalej na klawiaturze, np. Na klawiaturze Thinkpad
Daniel S. Sterling

Odpowiedzi:


43

Uruchom program xevw terminalu. Przesuń mysz wewnątrz xevokna; zobaczysz wiele rzeczy przewijanych przez. Naciśnij kolejno każdy przycisk. Następnie wróć do okna terminala i naciśnij Ctrl+ C. xevpokazuje opis każdego zdarzenia wejściowego, w szczególności ButtonPressi ButtonReleasekliknięć myszką (zobaczysz również kilka MotionNotifyruchów myszy i innych zdarzeń).

Prawdopodobnie przyciski do przodu i do tyłu są przypisane do przycisków myszy, być może przycisków 8 i 9:

ButtonPress event, serial 29, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100159, (166,67), root:(1769,98),
    state 0x0, button 8, same_screen YES

W takim przypadku przypisz te przyciski do innej akcji w przeglądarce, jeśli możesz. Alternatywnie możesz zmienić przypisanie przycisków do różnych numerów przycisków, na które Twoja przeglądarka nie reaguje, lub całkowicie wyłączyć przyciski na poziomie systemu. Aby to zrobić, umieść te linie w pliku o nazwie ~/.Xmodmap:

! Remap button 8 to 10 and disable button 9.
pointer = 1 2 3 4 5 6 7 10 0

Przetestuj to za pomocą polecenia xmodmap ~/.Xmodmap. Większość środowisk pulpitu i menedżerów okien uruchamia to polecenie automatycznie po zalogowaniu; jeśli twoje nie, ustaw, aby działało, gdy X się uruchomi.

Możliwe jest również, że po naciśnięciu tych przycisków mysz wyśle ​​zdarzenie z klawiatury:

KeyPress event, serial 32, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100963, (957,357), root:(2560,388),
    state 0x0, keycode 166 (keysym 0x1008ff26, XF86Back), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

W takim przypadku wstaw takie wiersze w ~/.Xmodmap:

keycode 166 = NoSymbol
keycode 167 = NoSymbol

2
Dziękuję zarówno za pytanie, jak i odpowiedź. Ponadto, aby zmniejszyć obłęd na xevwyjściu, po prostu przez przepuszczenie jej grep: xev | grep -A2 ButtonPress; pozostawi to wszystkie zdarzenia ruchu myszy, zdarzenia skupienia itp. i po prostu pokaże ButtonPresszdarzenia, co jest tutaj wszystkim, czego potrzebujesz.
Lambart

Dziękuję Ci! Pomógł w kilka sekund! :-)
Brian Haak,

Działa to również w Wayland!
Ray Foss

2

Możesz użyć, xevaby znaleźć klucz, który mapuje przycisk i użyć poniższego kodu (w $ HOME / .xsessionrc), aby zamapować go na coś, czego nie używasz.

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

Alternatywnie, powinieneś być w stanie to zrobić z GUI używającego Gnome / KDE lub innych nowoczesnych komputerów stacjonarnych.

Jeszcze inną opcją byłoby zhakowanie pliku xorg.conf w celu usunięcia definicji przycisków.


1

tylko szybkie polecenie, aby to naprawić, tak naprawdę nie różni się od innych odpowiedzi:

xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0" #the fix

testowanie

xmodmap -pp # check the changes
xterm -e xev # test the nullified buttons

# to restore in case you are going to play some game that uses them
xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9 10 11 12 13"

możesz umieścić poprawkę cmd w aplikacjach startowych.

lepiej byłoby użyć xdotool, aby sprawdzić, czy aktywne okno jest jedną z przeglądarek i wywołać xmodmap na żądanie, aby wyłączyć / włączyć, ale to wymagałoby trochę skryptów:>

Nie widziałem powodu, aby przyciski powyżej 7 były włączone, jakiś powód?


0

Można to zrobić za pomocą pliku konfiguracyjnego xorg

Oto przykład, który wyłącza przewijanie w poziomie (Zapisz nowy plik i uruchom ponownie)

nano /etc/X11/xorg.conf.d/40-libinput-mouse-left-right.conf

Section "InputClass"
        Identifier "Logitech catchall"
        MatchIsPointer  "on"
        Driver "libinput"
        Option "HorizontalScrolling" "false"
EndSection

Inne przydatne polecenia

xinput list
xinput list-props 15

Teraz na to pytanie można użyć pliku konfiguracyjnego xorg do zmiany przypisania przycisku. Oto przykład

Section "InputClass"
    # ...
    Option "ButtonMapping" "1 9 3 4 5 6 7 8 2"
    # ...
EndSection

0

Jeśli próbujesz na xmodmappolecenia (na X, nie Weyland) i otrzymujesz błąd BadValue (integer parameter out of range for operation)w X_SetPointerMapping, może trzeba użyć xinputzamiast. Uruchom xinputbez parametrów, aby uzyskać identyfikatory urządzenia (poszukaj jednego dla wskaźnika), a następnie uruchom

xinput set-button-map [pointer-device-id] 1 2 3 4 5 0 0 0 0

W moim przypadku moja mysz była urządzeniem nr 4 i musiałem zmienić przyciski 6 i 7 na 8 i 9, aby przejść do przodu i wrócić do pracy, więc użyłem

xinput set-button-map 4 1 2 3 4 5 8 9 8 9

(Trzymałem przyciski 8 i 9 również zamapowane na 8 i 9 na wypadek zmiany myszy).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.