Имеется laptop с тачпадом synaptics. Ядро 2.6.21, собранное с модулем evdev, xorg-server-1.3, драйвер synaptics для иксов,
драйвер evdev для иксов. И мышь Logitech MX Revolution. В ней
есть некоторое количество дополнительных кнопок, которые
определяются xev'ом, только если мышь работает через драйвер
evdev. Если мышь работает через драйвер mouse, то кнопок не
видно в xev и они не работают.
Задача: сделать, чтобы:
1) тачпад работал с драйвером synaptics и настройками из xorg.conf
2) работала мышь с драйвером evdev
3) иксы запускались, независимо от того, воткнута ли мышь в USB
4) не используя несколько layouts в xorg.conf, ибо неудобно.
5) при горячем подключении мыши, срабатывали настройки из xorg.conf
(например ButtonMapping)
Пока дошел до следующего:
Section "InputDevice"
Identifier "Logitech"
Driver "evdev"
Option "Protocol" "evdev"
Option "Device" "/dev/input/event5"
EndSection
Section "InputDevice"
Identifier "TouchPad"
Driver "synaptics"
Option "Device" "/dev/input/event1"
Option "Protocol" "evdev"
... (тут всякие опции synaptics, которые к делу отношения не имеют)
EndSection
Section "ServerLayout"
Identifier "default"
Screen "Laptop"
InputDevice "TouchPad" "SendCoreEvents"
InputDevice "Logitech" "CorePointer"
...
EndSection
При таком конфиге работает все, кроме 3го пункта. При запуске иксов
с выключенной мышью, они ругаются на отсутствие CorePointer'а и не
запускаются. Нормальные люди обходят 3й пункт, вписывая вместо
конкретного девайса /dev/input/event5 общий для всех мышей девайс
/dev/input/mice - но этот девайс не будет работать с драйвером
evdev.
Буду рад помощи, в гугле был, но случай с тачпадом и необходимостью
использования evdev для мыши не нашел.
А за совет спасибо, сделав тачпад CorePointer'ом, а в мыше включив опцию SendCoreEvents можно добиться выполнения 1-4 пунктов.
По поводу пятого, если кому интересно: evdev в принципе не умеет ButtonMapping через xorg.conf. А xmodmap умеет работать только с CorePointer'ом. Проблема решается до конца при помощи утилиты xinput.