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

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

В основном средняя кнопка мыши на моем 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)]
16
задан 16 March 2015 в 08:59

4 ответа

Выполните те команды:

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

Explaination (любезно пожертвованный @Yehosef):

первое число является идентификатором указателя (Вы будете часто только иметь один, в этом случае было два, 9 и 10).

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

23
ответ дан 23 November 2019 в 02:33

Следующие инструкции основаны на информации в Ubuntu Wiki (Прокрутите вниз к заголовку "Пример: Отключение средней кнопки мыши вставляет на scrollwheel мыши").

Первый, определите идентификатор указателя путем списка устройств ввода данных:

xinput list | grep '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

Вот именно.

2
ответ дан 23 November 2019 в 02:33

set-button-map отключает функциональность щелчка средней кнопкой. Для эмуляции щелкают средней кнопкой по использованию left+right щелчок (таким образом, можно вставить и открыть на вкладке и т.д. использование мыши), но отключите щелчки колеса мыши, можно исправить 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 включить left+right эмуляцию. 11 номер устройства от xinput list и можно добавить команду опоры набора к ~/.xstartup.

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

[My Mouse]
MatchUdevType=mouse
AttrEventCodeDisable=BTN_MIDDLE;
0
ответ дан 23 November 2019 в 02:33

Это то, что я делаю в Ubuntu 20.04 (использует Wayland по умолчанию), чтобы отключить мою среднюю кнопку или переназначить мою среднюю кнопку.

Чтобы найти идентификатор моего устройства:

$ xinput --list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer:17                       id=6    [slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:17              id=7    [slave  pointer  (2)]
⎜   ↳ xwayland-touch:17                         id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ xwayland-keyboard:17                      id=8    [slave  keyboard (3)]

Мне пришлось провести пару тестов, прежде чем я нашел правильный идентификатор. Для меня это было 6.

Чтобы увидеть текущую карту кнопок:

$ xinput get-button-map 6
1 2 3 4 5 6 7 8 9 10 

Чтобы отключить среднюю кнопку:

$ xinput set-button-map 6 1 0 3 4 5 6 7 8 9 10

Чтобы переназначить среднюю кнопку на левый клик:

$ xinput set-button-map 6 1 1 3 4 5 6 7 8 9 10

Чтобы запускать при запуске, создайте файл и сделайте убедитесь, что он исполняемый (chmod a+x):

#!/bin/bash
xinput set-button-map 6 1 1 3 4 5 6 7 8 9 10

Ubuntu и другие дистрибутивы на основе GNOME поставляются с приложением, называемым просто «Startup Applications». Его можно использовать для управления приложениями и сценариями, которые запускаются при новой перезагрузке системы или входе в систему. Так что просто выполните поиск, откройте его и добавьте только что созданный файл.

4
ответ дан 19 November 2020 в 23:35

Другие вопросы по тегам:

Похожие вопросы: