Тема: Настройка TouchPad в Debian
Настройка TouchPad в Debian
Следующая команда, позволяет узнать, имеете ли вы touchpad и загружен ли его драйвер:
egrep -i 'synap|alps|etps' /proc/bus/input/devices
Мой вывод:
Name="SynPS/2 Synaptics TouchPad"
Поздравляю сам себя, я имею touchpad, хотя я его и так вижу невооруженным взглядом.
Редактируем /etc/X11/xorg.conf
Section "Module"
Load "synaptics"
EndSection
......
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
# Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizEdgeScroll" "0"
Option "SHMConfig" "true"
Option "Emulate3Buttons" "on"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "35"
Option "FingerHigh" "40"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.06"
Option "MaxSpeed" "0.12"
Option "AccelFactor" "0.0010"
Option "TapButton1" "1" #именно эта опция отвечает за работу клика по тачпаду
EndSection
....
Section "ServerLayout"
InputDevice "Synaptics Touchpad" "SendCoreEvents"
EndSection
....
Радуемся, недолго. Печатать неудобно, постоянно за него задеваешь, необходима прога/проги для его настройки. И такая проги есть, называются synclient и syndaemon. В принципе этого достаточно.
Тонкая настройка при помощи synclient
Чтобы получить текущие значения:
$ synclient -l
Таким образом, вы получите список всех действующих на данный момент значений.
Монитор synclient может отображать силу нажатия и положение пальца на тачпаде в реальном времени, позволяя точно задавать опции synaptics под свои нужды. Для работы synclient требуется чтобы опция SHMConfig была установлена в on или true.
Вы можете запустить монитор synaptics следующей командой:
$ synclient -m 100
где -m активирует монитор, а следующее за опцией число задаёт интервал обновления в миллисекундах.
Этот монитор предоставляет информацию о текущем состоянии вашего тачпада. Например, если вы двигаете тачпадом указатель мыши, то значения x и y в мониторе synclient будут изменяться. Таким образом вы можете легко узнать виртуальные размеры вашего тачпада, которые задаються в опциях LeftEdge, RightEdge, BottomEdge и TopEdge.
Аббревиатуры расшифровываются следующим образом:
time
время в секундах с начала логирования.
x, y
координаты x/y пальца на тачпаде. Точка отсчёта — верхний левый угол.
z
давление. Характеризует вашу силу нажатия на тачпад при работе с ним.
f
количество пальцев, которые сейчас прикасаются к тачпаду.
w
ширина пальца.
l,r,u,d,m,multi
состояния левой(left), правой(right), (верхней)up, (нижней)down, (средней)middle и многофункциональной (multi) кнопок. Нажатое состояние отражается единицей, ненажатое — нулём.
gl,gm,gr
для тачпадов с подключаемым устройством (guest device) эти параметры соответствуют его состоянию кнопок: левой(guest left), средней(guest middle) и правой (guest right). Кнопки могут быть нажаты(1) или не нажаты(0).
gdx, gdy
координаты x/y подключаемого устройства (guest device).
Если какое-то значение постоянно равно нулю, это означает что ваше устройство не поддерживает его.
Если графа f отображает максимальное значение 1, но есть необходимость в использовании двухпальцевого режима, в таком случае обратите внимание на опции EmulateTwoFingerMinW,EmulateTwoFingerMinZ и EmulateMidButtonTime и добавьте соответствующие строки в файл xorg.conf.
Вооружившись этими знаниями вы сможете подобрать правильные значения для вашего тачпада.
Детальная конфигурация
Драйвер synaptics предоставляет множество опций для настройки. Следующий список описывает опции секции InputDevice, которую мы объявили в конфигурационном файле Xorg:
Identifier — имя этого устройства ввода, которое мы указали в секции ServerLayout выше.
Device указывает на файл устройства synaptic.
LeftEdge, RightEdge, TopEdge и BottomEdge — целые числа, которые задают виртуальные размеры вашего тачпада в координатах x и y.
FingerLow и FingerHigh — целочисленные значения, определяющие 'силу нажатия', которую драйвер расценит как прикосновение (сила нажатия становится больше FingerHigh) или отпускание (сила нажатия падает ниже FingerLow).
MaxTapTime — целое число, определяющее максимальную задержку в миллисекундах для одиночного нажатия (tap), которое рассматривается как клик мыши.
MaxTapMove — целое число, определяющее максимальное перемещение пальца для засчитывания одиночного нажатия (tap).
MinSpeed и MaxSpeed являются минимальным и максимальным коэффициентами скорости. Дробные числа с плавающей точкой.
AccelFactor — коэффициент ускорения, также дробное число с плавающей точкой.
SHMConfig — булевское значение (on/off) для включения/выключения использования разделяемой памяти. Эта опция должна быть включена, если вы хотите наблюдать и конфигурировать ваше устройство synaptics такими клиентскими утилитами как synclient, который мы будем использовать в данной статье.
EmulateTwoFingerMinW' , EmulateTwoFingerMinZ' , EmulateMidButtonTime — опции для настройки эмуляции клика двумя пальцами.
Больше информации по опциям вы найдёте на man-страничке synaptics:
$ man 5 synaptics
Отключение кликов мыши при наборе с клавиатуры
Это маленькая хитрость встроенная в драйвер synaptics, позволяет быть уверенным, что тачпад отключен во время набора с клавиатуры. Это очень легко настроить, и здесь я опишу как это сделать.
просто добавьте следующую строку в ваш .xinitrc до запуска оконного менеджера:
syndaemon -i 2 -d
Ключ -i 2 устанавливает время простоя в 2 секунды. Это интервал, который будет проходить со времени последнего нажатия клавиши до включения тачпада обратно, а опция -d запускает программу в качастве демона ( в фоновом режиме ).
Также вы можете добавить ключ -t который говорит демону не отключать перемещение мыши, а отключать только клики и прокрутку:
syndaemon -t -i 2 -d
Как обычно более детальную информацию вы можете найти на man-страничке:
$ man syndaemon
К большому сожалению, программы ksynaptic и qsynaptic устарели и автор больше их не разрабатывает. Для Gnome есть gsynaptics.
Оригинал статьи http://deb-th.org/index.php/Touchpad_Synaptics_русский.
TouchPad и мышь
Площадка на ноуте, мешающая мне лично жить, так как пользуюсь внешней мышью.
Вот как отключить touchpad при втыкании внешней мыши.
Запускаем следующую команду:
udevadm monitor --env
и вставляем usb мышь в разъем. Получается предлинный список, вот значимый фрагмент:
UEVENT[1281016708.743148] add /devices/pci0000:00/0000:00:04.0/usb1/1-2/1-2:1.0/0003:0458:003A.0027 (hid)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:04.0/usb1/1-2/1-2:1.0/0003:0458:003A.0027
SUBSYSTEM=hid
PHYSDEVBUS=hid
HID_ID=0003:00000458:0000003A
HID_NAME=Genius Optical Mouse
HID_PHYS=usb-0000:00:04.0-2/input0
HID_UNIQ=
MODALIAS=hid:b0003v00000458p0000003A
SEQNUM=12511
ищем в выводе команды слово mouse, меня сразу интересует вот эта строчка:
DEVPATH=/devices/pci0000:00/0000:00:04.0/usb1/1-2/1-2:1.0/0003:0458:003A.0027
Запускаем следующую команду:
sudo udevadm info -a -p /devices/pci0000:00/0000:00:04.0/usb1/1-2/1-2:1.0/0003:0458:003A.0027 | grep product
Вот вывод:
ATTRS{product}=="Optical Mouse"
ATTRS{product}=="OHCI Host Controller"
Пишем обработчик для udev:
/etc/udev/rules.d/76-mouse.rules
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{product}=="Optical Mouse", RUN+="/sbin/rmmod psmouse"
ACTION=="remove", SUBSYSTEMS=="usb", ATTRS{product}=="Optical Mouse", RUN+="/sbin/modprobe psmouse"
Посел чего touchpad будет отключаться при втыкании usb мыши и включаться при ее выдергивании.
Чтобы touchpad устройство было выключенным по умолчанию, сразу при запуске компьютера добавьте rmmod psmouse в файл /etc/rc.local.
Увы, путь загрузки/удаления модуля не позволяет регулировать свойства TouchPadа, поэтому лучше использовать вот это:
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{product}=="Optical Mouse", RUN+="/usr/bin/synclient TouchpadOff=1"
ACTION=="remove", SUBSYSTEMS=="usb", ATTRS{product}=="Optical Mouse", RUN+="/usr/bin/synclient TouchpadOff=0"
Так будет более правильней.
Полезный сценарий, который надо поместить в автозагрузку Gnome или KDE:
mouse.sh
#! /bin/sh
if [ -c /dev/input/mouse0 ] && [ -c /dev/input/mouse1 ] ; then
# если есть две мыши, то одна лишняя.
/usr/bin/synclient TouchpadOff=1
fi