Вимкнення середньої кнопки миші


17

Тому я спробував переглянути різні питання, але вони зосереджуються на відключенні середньої миші.

В основному середня кнопка миші на моїй Logitech G500s зламана, і вона продовжує "клацати" випадковим чином, тому вона викручує будь-який шанс зробити роботу.

Чи є спосіб відключити це? Або зіставити його ні до чого?

Дякую і вибачте, якщо це дублікат.

xinput list вихід:

⎡ 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)]

Виконайте цю команду xinput list | grep 'id='та опублікуйте вихід.
Геліо

Для цієї миші є дві ідентифікатори пристрою для цієї миші. Після запуску тесту xinput 9, середня кнопка моєї миші - 2
Том Гамільтон Стюбер

Відповіді:


24

Виконайте ці команди:

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

Пояснення (ласкаво пожертвував @Yehosef ):

Перше число - це ідентифікатор вказівника (у вас часто буде лише один, у цьому випадку було два, 9 та 10).

Наступні цифри - це те, що ви робите з першою, другою та третьою (тобто лівою, середньою, правою) кнопками миші. "1 0 3" говорить про те, що ліва кнопка повинна робити лівий клацання (дія 1), середня кнопка нічого не повинна робити, а права кнопка повинна робити клацання правою кнопкою миші (дія 3). Якщо ви хочете зробити середню кнопку, також натисніть ліву клавішу, ви можете скористатися "1 1 3". Якщо ви хочете переключити дії праворуч і ліворуч, ви можете скористатися "3 0 1". Дивіться https://wiki.ubuntu.com/X/Config/Input для отримання додаткової інформації.


Велике спасибі, намагання розглянути це було дуже неприємно.
Том Гамільтон Стуббер

1
Спасибі! Для тих, хто цікавиться - 9/10 - це вхідний код миші, а 1 0 3 - відображення для першої, другої та третьої кнопок миші. Якщо ви хочете, щоб усі кнопки робили те саме, ви можете використовувати 1 1 1 або якщо ви хочете переключити праву та ліву кнопки, ви можете використовувати 3 0 1.
Yehosef

@Yehosef: Дякую! Я не пояснював, що відбувається, коли ОП виконує команди. Будь ласка, створіть нову детальну відповідь, надішліть мені пінг, і я піднесу пропозицію. Це цікаве пояснення.
Геліо

@Helio У мене немає іншої відповіді - просто більше пояснень для зацікавлених. Можливо, ви хочете відредагувати свою відповідь, щоб включити цю інформацію, яку ви можете. Я думав над редагуванням вашої відповіді - але мені це взагалі не подобається, коли люди додають додаткові деталі до моїх відповідей - тому я утримався :)
Yehosef

2
Отже, як визначити перше число. Я бігаю xinput list | grep 'id='і шукаю речі, які найбільше нагадують мою мишу / тачпад? Будь-який остаточний спосіб сказати, чи є він правильним?
Квоте

3

Наступні інструкції ґрунтуються на інформації на Ubuntu Wiki (Прокрутіть униз до заголовка "Приклад: вимкнення вставки середньої кнопки миші на миші прокрутки").

Спочатку визначте ідентифікатор вказівника, перерахувавши пристрої введення:

xinput list | grep 'id='

І шукайте рядок, який містить ім'я вашого вказівника, там також повинен бути ідентифікатор пристрою, відразу після "id =". Наприклад, ідентифікатор цього пристрою дорівнює 10:

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

Далі, отримайте поточну карту кнопок цього пристрою (я буду використовувати ідентифікатор свого пристрою, який дорівнює 10):

xinput get-button-map 10

Вихід:

1 2 3 4 5 6 7 8 9

Це відображення кнопок вказівника на дії, де число представляє код дії, а позиція - кнопку.

Нас цікавить друга карта - номер 2 відповідає дії "Середній клацання кнопки", а положення на ній - фактичній середній кнопці.

Щоб відключити середню кнопку, яка запускає будь-яку дію, я використовую команду xinput set-button-mapз ідентифікатором пристрою та оновленою картою (новий код дії 0 - немає дії). Не потрібно ставити всю карту - карта, поки не вистачить зацікавленої кнопки (решта просто не буде оновлено):

 xinput set-button-map 10 1 0

Це воно.


Це спрацювало на моєму сенсорному панелі на Lenovo Thinkpad T580 з Ubuntu 18.04
Рассел Англія,

0

set-button-mapвимикає функцію середнього клацання. Для емуляції середнього клацання за допомогою клацання лівою кнопкою миші та правої кнопки миші (щоб ви могли вставити та відкрити вкладку тощо за допомогою миші), але відключити натискання колеса миші, ви можете виконати патч 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
  • зберегти вищезазначений патч як libinput-1.XX.Y/debian/patches/middle.diff
  • додати middle.diffдоdebian/patches/series
  • dpkg-buildpackage -us -uc -b
  • sudo dpkg -i ../libinput10_*.deb
  • перезапустіть Xorg або перезавантажте машину

І використовувати xinput listта xinput set-prop 11 "libinput Middle Emulation Enabled" 1вмикати емуляцію ліворуч + праворуч. 11- це номер пристрою, до xinput listякого можна додати команду set-prop ~/.xstartup.

Або, щоб уникнути перебудови, використовуйте файл .quirks libinput (неперевірений):

[My Mouse]
MatchUdevType=mouse
AttrEventCodeDisable=BTN_MIDDLE;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.