Многокнопочная мышь

Мышку следует подключить к USB порту, а не PS/2. Хорошо бы подсчитать количество кнопок у мыши (напомню, что кнопка скролла идёт за три: скролл вверх, скролл вниз и нажатие на эту кнопку). В моём случае у моей мыши A4Tech RBW-5 10 кнопок.

Xorg 6.8.2, Slackware 10.0

Первое, что нужно сделать – это взять исходники иксов и приложить патч evdev. Там они идут под номерами 9000 и 9002. Теперь командой
#strings /usr/X11R6/bin/X | grep evdev
можно проверить, установился ли evdev. Если да, то появится некий вывод. Теперь преобразуем xorg.conf к следующему виду:

Section «InputDevice»
Identifier «Mouse1″
Driver «mouse» Option «Protocol» «evdev»
Option «Buttons» «10″ #количество кнопок
Option «ZAxisMapping» «9 10″ #скроллер, вверх и вниз
Option «Dev Name» «A4Tech RF USB Mouse» #/proc/bus/input/devices
Option «Dev Phys» «usb-*/input0″ #/proc/bus/input/devices
Option «Device» «/dev/input/event1″ #/proc/bus/input/devices
EndSection

Теперь в файл ~/.xinit.rc добавим следующие строчки:
/usr/X11/bin/xmodmap -e «pointer = 1 2 3 6 7 8 9 10 4 5″
/usr/X11/bin/xmodmap -pp

Теперь можно запустить
#/usr/X11/bin/xev
и удостовериться, что каждая кнопка мыши имеет свой номер.

Для того чтобы задать кнопкам мыши какие-либо функции, я использую пакеты xbindkeys и xvkbd. Например, вот мой ~/.xbindkeysrc:
«/usr/X11/bin/xvkbd -xsendevent -text «\[Alt_L]\[Left]» &»
m:0×10 + b:6
«/usr/X11/bin/xvkbd -xsendevent -text «\[Alt_L]\[Right]» &»
m:0×10 + b:7
«/usr/X11/bin/xvkbd -xsendevent -text «\[Left]» &»
m:0×10 + b:8
«/usr/X11/bin/xvkbd -xsendevent -text «\[Right]» &»
m:0×10 + b:9
«konsole -e mc»
m:0×10 + b:10

Xorg 7.0, Archlinux (Slackware 11.0, Xorg 6.9)

Поскольку Xorg теперь включает в себя evdev, то патчить его исходники не надо. В Archlinux достаточно установить пакет xf86-input-evdev (Xorg 7.0 модульный).Теперь надо настроить xorg.conf для своей мышки. Делается это теперь очень просто. Выполним
cat /proc/bus/input/devices

В строке “Handlers” можно найти что-нибудь вроде
H: Handlers=mouse0 event3

Это означает, что утройство типа мышь располагается по адресу /dev/input/event3. Лучше всего создать “статическую” ссылку на мышь, чтобы её расположение не зависело от различных подключенных устройств. Но я пока этого описывать не буду, как сделаю, так и напишу :), работы минут на пять максимум.

Настроим теперь xorg.conf: секция мыши должна выглядеть примерно так:

Section "InputDevice"
         Identifier      "Mouse1"
         Driver          "evdev"
         Option          "Device"                "/dev/input/event3"
EndSection

Теперь начинается самая весёлая часть :). Почему-то Xorg 7.0 считает, что у моей мышки аж 32 кнопки :). Многие из них перепутаны местами. xev поможет разобраться во всём этом, а я напишу строчку, которую я внёс в .xinitrc:

xmodmap -e "pointer = 1 3 2 4 5 11 12 7 6 8 9 10 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32"

Теперь кнопки пронумерованы по порядку, осталось лишь научиться ими пользоваться (опять же xbindkeys, xvkbd).

Xorg 7.1, Archlinux, 2.6.17

Теперь Xorg считает правильное количество кнопок у мыши, поэтому в .xinitrc я прописал такую строчку:

xmodmap -e "pointer = 1 2 3 4 5 7 6 8 9 10"

Вся остальная настройка совпадает с настройкой в Xorg 7.0

4 коммент. на “Многокнопочная мышь”

  1. Igor:

    P. S. Useful links:
    http://wiki.archlinux.org/index.php/Get_All_Mouse_Buttons_Working
    http://gentoo-wiki.com/HOWTO_Advanced_Mouse

  2. kiev:

    забыли
    Option «SendCoreEvents»

  3. kiev:

    при подключении через «evdev» – иногда невозможно снизить скорость

  4. Igor:

    Я не забыл, просто мне это не надо :), это вроде бы для тачпэдов.. Про скорость – опять же не знаю…

Комментарии закрыты.