Как отключить Вперед/Кнопки "Назад" на моей мыши

С udev можно использовать

ls -l /dev/disk/by-label

показать символьные ссылки маркировкой по крайней мере к некоторым узлам устройства раздела.

Не уверенный, какова логика включения, возможно существование маркировки.

36
12.09.2011, 17:38
5 ответов

Запустите программу 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
43
27.01.2020, 19:36
  • 1
    за вопрос и ответ. Кстати, уменьшать безумие xev вывод, просто передайте его по каналу через grep: xev | grep -A2 ButtonPress ; это оставит все события движения мыши, события фокуса, и т.д. и просто покажет ButtonPress события, который является всем, которое Вам нужно здесь. –  Lambart 19.09.2014, 21:50

Вы могли использовать xev для нахождения, на который контурные карты кнопка отображаются и используют код ниже (в $HOME/.xsessionrc) для отображения его на что-то, Вы не используете.

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

С другой стороны, необходимо смочь сделать, это от GUI Вас использует Gnome/KDE или любые другие современные рабочие столы.

Еще одна опция состояла бы в том, чтобы взломать xorg.conf для удаления определений кнопки.

2
27.01.2020, 19:36

Можно сделать с помощью конфигурационного файла xorg

Вот пример отключения горизонтальной прокрутки (Сохраните новый файл и перезагрузитесь)

nano /etc/X11/xorg.conf.d/40 -libinput -мышь -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
27.01.2020, 19:36

просто быстрая команда для исправления, не особо отличающаяся от других ответов:

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 по требованию для отключения/включения m, но для этого потребуется некоторый сценарий :>

Я не вижу причин оставлять кнопки выше 7 активными, какая причина?

3
27.01.2020, 19:36

Если вы пытаетесь использовать xmodmapкоманды (на X, а не на Weyland ), и вы получаете сообщение об ошибке 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 на случай смены мышей.)

1
27.01.2020, 19:36

Теги

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