Vô hiệu hóa nút chuột giữa


17

Vì vậy, tôi đã cố gắng xem qua các câu hỏi khác nhau nhưng chúng chủ yếu tập trung vào việc vô hiệu hóa dán chuột giữa.

Về cơ bản, nút chuột giữa trên Logitech G500s của tôi bị hỏng và nó tiếp tục "nhấp" một cách ngẫu nhiên để nó làm hỏng mọi cơ hội làm việc.

Có cách nào để vô hiệu hóa nó? Hoặc ánh xạ nó đến không có gì?

Cảm ơn và xin lỗi nếu đây là một bản sao.

xinput list đầu ra:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜   ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜   ↳ Turtle Beach Turtle Beach PX3 (XBOX) id=8 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=9 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=10 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=12 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ Razer Razer DeathStalker id=11 [slave keyboard (3)]

Thực hiện lệnh này xinput list | grep 'id='và gửi đầu ra.
Helio

Đối với con chuột này, có hai ID thiết bị cho con chuột này. Sau khi chạy thử nghiệm xinput 9, id của nút giữa chuột của tôi là 2
Tom Hamilton Stubber 15/03/2015

Câu trả lời:


24

Thực hiện các lệnh đó:

xinput set-button-map 9 1 0 3
xinput set-button-map 10 1 0 3

Giải thích (vui lòng đóng góp bởi @Yehosef ):

Số đầu tiên là id của con trỏ (bạn sẽ thường chỉ có một, trong trường hợp này có hai, 9 và 10).

Các số tiếp theo là những gì bạn làm với các nút chuột đầu tiên, thứ hai và thứ ba (tức là trái, giữa, phải). "1 0 3" nói với nó rằng nút bên trái sẽ thực hiện nhấp chuột trái (hành động 1), nút giữa sẽ không làm gì và nút bên phải sẽ nhấp chuột phải (hành động 3). Nếu bạn muốn làm nút giữa cũng nhấp chuột trái, bạn có thể sử dụng "1 1 3". Nếu bạn muốn chuyển đổi hành động phải và trái, bạn có thể sử dụng "3 0 1". Xem https://wiki.ubfox.com/X/Config/Input để biết thêm thông tin.


Cảm ơn rất nhiều, cố gắng tìm kiếm điều này đã trở nên rất bực bội.
Tom Hamilton Stubber 15/03/2015

1
Cảm ơn! Đối với những người thắc mắc - 9/10 là id đầu vào của chuột và 1 0 3 là ánh xạ cho các nút chuột thứ nhất, thứ hai và thứ ba. Nếu bạn muốn tất cả các nút thực hiện cùng một việc, bạn có thể sử dụng 1 1 1 hoặc nếu bạn muốn chuyển đổi nút phải và trái, bạn có thể sử dụng 3 0 1.
Yehosef

@Yehosef: Cảm ơn! Tôi đã không giải thích những gì đang xảy ra khi OP chạy các lệnh. Vui lòng tạo một câu trả lời chi tiết mới, ping tôi và tôi sẽ nâng cấp. Đây là một lời giải thích thú vị.
Helio

@Helio Tôi không có câu trả lời khác - chỉ giải thích thêm cho những người quan tâm. Có lẽ bạn muốn chỉnh sửa câu trả lời của bạn để bao gồm thông tin này bạn có thể. Tôi đã suy nghĩ về việc chỉnh sửa câu trả lời của bạn - nhưng tôi thường không thích nó khi mọi người thêm chi tiết vào câu trả lời của tôi - vì vậy tôi đã kiềm chế :)
Yehosef

2
Vậy làm thế nào để tôi xác định số đầu tiên. Tôi chạy xinput list | grep 'id='và tìm những thứ trông giống chuột / bàn di chuột nhất của tôi? Bất kỳ cách dứt khoát để nói liệu nó là đúng?
Kvothe

2

Các hướng dẫn sau được dựa trên thông tin tại Ubuntu Wiki (Cuộn xuống tiêu đề "Ví dụ: Vô hiệu hóa nút chuột giữa dán trên chuột cuộn").

Đầu tiên, xác định id của con trỏ bằng cách liệt kê các thiết bị đầu vào:

xinput list | grep 'id='

Và tìm dòng chứa tên con trỏ của bạn, cũng nên có id của thiết bị, ngay sau "id =". Ví dụ: id của thiết bị này là 10:

Lenovo ThinkPad Compact USB Keyboard with TrackPoint    id=10   [slave  pointer  (2)]

Tiếp theo, lấy bản đồ nút hiện tại của thiết bị đó (Tôi sẽ sử dụng id của thiết bị của mình, là 10):

xinput get-button-map 10

Đầu ra:

1 2 3 4 5 6 7 8 9

Đây là ánh xạ của các nút con trỏ tới các hành động, trong đó số đại diện cho mã hành động và nút vị trí.

Chúng tôi quan tâm đến bản đồ thứ hai - số 2 tương ứng với hành động "Nhấp vào nút giữa" và vị trí của nó - với nút giữa thực tế.

Để tắt nút giữa kích hoạt bất kỳ hành động nào, tôi sẽ sử dụng lệnh xinput set-button-mapvới id của thiết bị và bản đồ được cập nhật (mã hành động mới là 0 - không có hành động). Không cần đặt toàn bộ bản đồ - bản đồ cho đến khi nút quan tâm đủ (phần còn lại sẽ không được cập nhật):

 xinput set-button-map 10 1 0

Đó là nó.


Điều này hoạt động cho bàn di chuột của tôi trên Lenovo Thinkpad T580 với Ubuntu 18.04
Russell England

0

set-button-mapvô hiệu hóa chức năng nhấp chuột giữa. Để mô phỏng nhấp chuột giữa bằng cách sử dụng nhấp chuột trái + phải (để bạn có thể dán và mở trong tab, v.v. bằng cách sử dụng chuột) nhưng vô hiệu hóa nhấp chuột, bạn có thể vá libinput:

--- a/src/evdev.c   2019-09-22 17:15:13.498880044 +0300
+++ a/src/evdev.c   2019-09-22 17:15:18.062860221 +0300
@@ -1861,6 +1861,8 @@
    /* Logitech Marble Mouse claims to have a middle button */
    if (device->model_flags & EVDEV_MODEL_LOGITECH_MARBLE_MOUSE)
        libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
+
+   libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
 }

 static void
  • mkdir deb; cd deb; apt source libinput; sudo apt build-dep libinput
  • lưu các bản vá trên như libinput-1.XX.Y/debian/patches/middle.diff
  • thêm middle.diffvàodebian/patches/series
  • dpkg-buildpackage -us -uc -b
  • sudo dpkg -i ../libinput10_*.deb
  • khởi động lại Xorg hoặc khởi động lại máy

Và sử dụng xinput listxinput set-prop 11 "libinput Middle Emulation Enabled" 1để cho phép mô phỏng trái + phải. 11là số thiết bị từ xinput listvà bạn có thể thêm lệnh set-prop vào ~/.xstartup.

Hoặc, để tránh xây dựng lại, hãy sử dụng tệp libinput .quirks (chưa được kiểm tra):

[My Mouse]
MatchUdevType=mouse
AttrEventCodeDisable=BTN_MIDDLE;
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.