?

Log in

デニース [userpic]

Disabling extra mouse buttons on Linux

Сентябрь, 17, 2012 (01:14)
Метки:

Чтобы поменять функции или вообще отключить кнопки мышки в Linux (у меня Ubuntu 12.04), понадобятся xinput и easystroke. Вообще-то, последняя - это программа для назначения определенных действий на жесты и кнопки мыши, но я ее использовал для того, чтобы получить id ненужной кнопки.

Для начала устанавливаем и запускаем easystroke:

$ easystroke -g

эта команда вызовет gui-интерфейс для настройки. Идем во вкладку "Preferences" и выставляем ненужную клавишу мыши как "Gesture Button":

Запоминаем номер кнопки, он нам пригодится. У меня это были кнопки 8 и 9. Закрываем easystroke, он нам больше не нужен.

Теперь найдем нашу мышь среди устройств:
$ xinput list
⎡ Virtual core pointer                     id=2 [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
⎜   ↳ 2.4G Receiver                            id=9 [slave  pointer  (2)]
⎜   ↳ 2.4G Receiver                            id=10 [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)]
    ↳ 2.4G Receiver                            id=8 [slave  keyboard (3)]
    ↳ Logitech HID compliant keyboard          id=11 [slave  keyboard (3)]
    ↳ Logitech HID compliant keyboard          id=12 [slave  keyboard (3)]

В моем случае мне не повезло сразу определить мышь, т.к. она у меня подключена через хаб, и она одна из "2.4G Receiver", а так может быть что-то вроде "Logitech USB-PS/2 Optical Mouse".
Далее проверяем конфигурацию подходящих устройств:
$ xinput get-button-map 8
device has no buttons
$ xinput get-button-map 9
3 2 1 4 5 6 7 8 9 10 11 12 13
$ xinput get-button-map 10
3 2 1 4 5 6 7 

Маппинг клавиш/действий устройств осуществляется следующим образом: позиция1 - действие1, позиция2 - действие2 и т.д. В моем случае устройство 9 подходит под мышь, т.к. у него есть 8-я и 9-я позиции. У мыши позиция1 - левая кнопка, позиция2 - средняя кнопка, позиция3 - правая кнопка. Т.к. у меня мышь под левую руку, то маппинг 3 2 1... если мышка для правши, то было бы 1 2 3... Нас интересуют действия/клавиши 8 и 9. Чтобы отключить их, ставим на их место нули для устройства с id=9:
$ xinput set-button-map 9 3 2 1 4 5 6 7 0 0 10 11 12 13

Все, теперь кпоки 8 и 9 у мышки отключены.

via https://wiki.ubuntu.com/X/Config/Input