Отключение средней кнопки мыши

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: Спасибо! Я не объяснил, что происходит, когда ОП запускает команды. Пожалуйста, создайте новый подробный ответ, пингуйте меня, и я буду голосовать. Это интересное объяснение.
Гелио
@ Здравствуйте, у меня нет другого ответа - просто больше объяснений для заинтересованных. Возможно, вы хотите отредактировать свой ответ, включив эту информацию, которую сможете. Я думал о редактировании вашего ответа - но мне вообще не нравится, когда люди добавляют дополнительные детали к моим ответам - поэтому я воздержался :)
Yehosef
2
Так как мне определить первый номер. Я бегу xinput list | grep 'id='и ищу вещи, которые больше всего похожи на мою мышь / тачпад? Какой-нибудь определенный способ сказать, является ли это правильным?
Kvothe
2

Следующие инструкции основаны на информации в 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.

Или, чтобы избежать перестроения, используйте файл libinput .quirks (непроверенный):

[My Mouse]
MatchUdevType=mouse
AttrEventCodeDisable=BTN_MIDDLE;
patraulea
источник