Як відключити кнопки Вперед / Назад на миші


36

Моя миша має нещасну особливість. Ліворуч, праворуч, де мій великий палець сидить колись так м'яко, коли я ним користуюся, є дві кнопки, настільки чутливі, що просто кисть змусить їх натиснути.

Я, звичайно, говорю про примхливі кнопки вперед / назад, які, якщо натиснути в браузері, можуть набагато важче переглядати це відео годин на YouTube. Чи є спосіб, щоб я їх відключив? Чи впорався би з цим X?


2
Я майже впевнений, що ви можете вимкнути це за допомогою xinput, але я не знаю деталей ...
pbm

Це питання і відповідь стосується також кнопок назад / вперед на клавіатурах, наприклад, на клавіатурі Thinkpad
Daniel S. Sterling

Відповіді:


43

Запустіть програму xevв терміналі. Перемістити мишку всередину xevвікна; ви побачите багато прокручування речей. Натискайте по черзі кожну кнопку. Потім поверніться до вікна терміналу і натисніть Ctrl+ C. xevпоказує опис кожної події введення, зокрема ButtonPressта ButtonReleaseклацання миші (ви також побачите ряд MotionNotifyрухів миші та інших подій).

Цілком імовірно, що ваші кнопки вперед і назад відображаються на кнопки миші, можливо, кнопки 8 і 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

Якщо це так, переставте ці кнопки на іншу дію у вашому браузері, якщо можете. Крім того, ви можете перевстановити кнопки на різні номери кнопок, на які ваш веб-переглядач не реагує та не відключає ці кнопки на системному рівні. Для цього покладіть ці рядки у файл під назвою ~/.Xmodmap:

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

Перевірте його за допомогою команди xmodmap ~/.Xmodmap. Більшість середовищ робочого столу та менеджери вікон виконують цю команду автоматично під час входу; якщо вашого немає, домовтеся про те, щоб він запускався, коли починається X.

Можливо також, що миша надсилає подію клавіатури, коли ви натискаєте ці кнопки:

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

У такому випадку введіть такі рядки ~/.Xmodmap:

keycode 166 = NoSymbol
keycode 167 = NoSymbol

2
Дякую і за запитання, і за відповідь. До речі, щоб зменшити безумство xevвиходу, тільки трубу його через Grep: xev | grep -A2 ButtonPress; це залишить усі події руху миші, фокусування подій тощо і просто покаже ButtonPressподії, що тут все, що вам потрібно.
Ламбарт

Дякую! Це допомогло за кілька секунд! :-)
Брайан Хаак

Це працює і в Wayland!
Рей Фосс

2

Ви можете використовувати, xevщоб знайти, на яку клавішу відображається карта, і використовувати код нижче (у $ HOME / .xsessionrc), щоб зіставити його з тим, що ви не використовуєте.

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

Крім того, ви можете це зробити з GUI, який ви використовуєте Gnome / KDE або будь-який інший сучасний настільний ПК.

Ще одним варіантом буде зламати xorg.conf, щоб видалити визначення кнопок.


1

просто швидка команда для її виправлення, не дуже відрізняється від інших відповідей:

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

тестування

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"

ви можете поставити виправити cmd у запуску програм.

краще було б використовувати xdotool, щоб перевірити, чи є активне вікно будь-якого з ваших браузерів, і зателефонувати на xmodmap на вимогу, щоб відключити / включити ', але це вимагатиме певного сценарію:>

Я не бачив причин, щоб кнопки вище 7 були включеними, будь-яка причина?


0

Можна зробити за допомогою файлу конфігурації xorg

Ось приклад, який відключає горизонтальну прокрутку (Збережіть новий файл і перезавантажте)

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

Інші корисні команди

xinput list
xinput list-props 15

Тепер для цього питання можна скористатись конфігураційним файлом xorg для переназначення кнопки ось приклад

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

0

Якщо ви намагаєтеся на xmodmapкоманди (на X, що не Вейланд) і ви отримуєте помилки BadValue (integer parameter out of range for operation)в X_SetPointerMapping, можливо , доведеться використовувати xinputзамість цього. Запустіть xinputбез параметрів, щоб отримати ідентифікатори пристрою (шукайте вказівник), а потім запустіть

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

У моєму випадку моя миша була пристроєм №4, і мені потрібно було зробити кнопки 6 і 7 на 8 і 9, щоб повернутися вперед і назад, щоб я працював

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

(Я тримав кнопки 8 і 9, також було вказано на 8 і 9 у випадку, якщо я змінив мишей.)

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