Cách tắt các nút Chuyển tiếp / Quay lại trên chuột của tôi


36

Chuột của tôi có một tính năng không may. Ở phía bên trái, bên phải nơi ngón tay cái của tôi nằm rất nhẹ nhàng khi tôi sử dụng nó, có hai nút rất nhạy, một bàn chải đơn thuần sẽ khiến chúng nhấp vào.

Tất nhiên tôi đang nói về các nút chuyển tiếp / lùi khó chịu, nếu được nhấn trong trình duyệt, có thể khiến việc xem video youtube kéo dài hàng giờ đó trở nên khó khăn hơn nhiều. Có cách nào để tôi vô hiệu hóa chúng? Điều này sẽ được xử lý bởi X?


2
Tôi gần như chắc chắn rằng bạn có thể tắt nó bằng cách sử dụng xinput, nhưng tôi không biết chi tiết ...
pbm

Câu hỏi và câu trả lời này cũng áp dụng cho các nút quay lại / chuyển tiếp trên bàn phím, ví dụ như trên bàn phím Thinkpad
Daniel S. Sterling

Câu trả lời:


43

Bắt đầu chương trình xevtrong một thiết bị đầu cuối. Di chuyển chuột bên trong xevcửa sổ; bạn sẽ thấy rất nhiều thứ cuộn qua. Nhấn lần lượt từng nút. Sau đó chuyển trở lại cửa sổ terminal và nhấn Ctrl+ C. xevhiển thị mô tả của từng sự kiện đầu vào, đặc biệt ButtonPressButtonReleasecho các lần nhấp chuột (bạn cũng sẽ thấy một số MotionNotifychuyển động của chuột và các sự kiện khác).

Có khả năng các nút chuyển tiếp và quay lại của bạn được ánh xạ tới các nút chuột, có thể là các nút 8 và 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

Nếu đó là trường hợp, hãy ánh xạ lại các nút này thành một hành động khác trong trình duyệt của bạn, nếu bạn có thể. Ngoài ra, bạn có thể sắp xếp lại các nút thành các số nút khác nhau mà trình duyệt của bạn không phản ứng hoặc vô hiệu hóa các nút hoàn toàn ở cấp hệ thống. Để làm điều này, đặt những dòng này trong một tệp có tên ~/.Xmodmap:

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

Kiểm tra nó bằng lệnh xmodmap ~/.Xmodmap. Hầu hết các môi trường máy tính để bàn và trình quản lý cửa sổ chạy lệnh này tự động khi bạn đăng nhập; nếu không, hãy sắp xếp để nó chạy khi X khởi động.

Cũng có thể chuột của bạn gửi một sự kiện bàn phím khi bạn nhấn các nút này:

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

Trong trường hợp đó, đặt các dòng như thế này vào ~/.Xmodmap:

keycode 166 = NoSymbol
keycode 167 = NoSymbol

2
Cảm ơn cả hai cho câu hỏi và câu trả lời. Ngẫu nhiên, để giảm sự điên rồ của xevđầu ra, chỉ cần đưa nó qua grep : xev | grep -A2 ButtonPress; điều này sẽ để lại tất cả các sự kiện chuyển động chuột, sự kiện tập trung, v.v. và chỉ hiển thị các ButtonPresssự kiện, đó là tất cả những gì bạn cần ở đây.
Lambart

Cảm ơn bạn! Nó giúp trong vài giây! :-)
Brian Haak

Điều này cũng hoạt động trong Wayland!
Ray Foss

2

Bạn có thể sử dụng xevđể tìm khóa nào ánh xạ nút ánh xạ tới và sử dụng mã bên dưới (trong $ HOME / .xsessionrc) để ánh xạ nó tới thứ bạn không sử dụng.

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

Ngoài ra, bạn sẽ có thể làm điều đó từ GUI của bạn sử dụng Gnome / KDE hoặc bất kỳ máy tính để bàn hiện đại nào khác.

Tuy nhiên, một tùy chọn khác sẽ là hack xorg.conf để xóa các định nghĩa nút.


1

chỉ là một lệnh nhanh để sửa nó, không thực sự khác với các câu trả lời khác:

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

thử nghiệm

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"

bạn có thể đặt cmd sửa chữa tại các ứng dụng khởi động.

tốt hơn là sử dụng xdotool để kiểm tra xem cửa sổ hoạt động có phải là bất kỳ trình duyệt nào của bạn không và gọi xmodmap theo yêu cầu để vô hiệu hóa / enable'm, nhưng điều đó sẽ yêu cầu một số kịch bản:>

Tôi thấy không có lý do để giữ các nút trên 7 kích hoạt, lý do nào?


0

Có thể được thực hiện với tập tin cấu hình xorg

Dưới đây là một ví dụ vô hiệu hóa cuộn ngang (Lưu tệp mới và khởi động lại)

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

Các lệnh hữu ích khác

xinput list
xinput list-props 15

Bây giờ đối với câu hỏi này, tệp cấu hình xorg có thể được sử dụng để nút ánh xạ lại ở đây là một ví dụ

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

0

Nếu bạn đang cố gắng các xmodmaplệnh (trên X, không Weyland) và bạn đang nhận được lỗi BadValue (integer parameter out of range for operation)trong X_SetPointerMapping, bạn có thể cần phải sử dụng xinputđể thay thế. Chạy xinputkhông có tham số để lấy ID thiết bị (tìm một con trỏ cho con trỏ) rồi chạy

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

Trong trường hợp của tôi, chuột của tôi là thiết bị số 4 và tôi cần biến các nút 6 và 7 thành 8 và 9 để chuyển tiếp và quay lại hoạt động nên tôi đã sử dụng

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

(Tôi giữ các nút 8 và 9 cũng được ánh xạ thành 8 và 9 trong trường hợp tôi thay đổi chuột.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.