четверг, 17 ноября 2011 г.

Настройки тачпада в 11.10

После апгрейда до 11.10 вылезла проблема с тачпадом на ноутбуке: перестал работать drag-n-drop и выделение текста. Оказалось, что нехорошие люди поставили в xserver-xorg-input-synaptics новое значение флага MaxTapTime равное 180. У кого-то с таким значением тачпад работает прекрасно, а у меня же ни в какую. Кроме того, время от времени тачпад стал откликаться на попытки вертикального двупальцевого скролла как на двупальцевый тач (эмуляция правой кнопки мыши, контекстное меню). Все это наконец-то и заставило разобраться с проблемой вплотную.

$ dmesg | grep Synaptic
[   17.399178] elantech: Synaptics capabilities query result 0x78, 0x16, 0x0d.

В Oneiric стандартный диалог настройки тачпада в gnome-control-center очень куцый и имеет минимальное количество опций. Утилита gpointing-device-settings из одноименного пакета умеет чуть больше, но все равно имеет не полный набор, да и настройки у меня не запоминает.

Полный же набор настроек для тачпадов Synaptics отражающий все возможности датчика, контроллера и драйвера хорошо описан в документации и в моем случае решил все проблемы. Настройки можно изменять с помощью утилиты synclient из пакета xserver-xorg-input-synaptics что очень удобно - для начала можно создать временный скриптик со своими настройками, а затем, после того как станет понятно что настройки подходят, переместить все настройки на постоянную основу в /usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf

Вот моя новая секция в 51-synaptics-quirks.conf:

Section "InputClass"
 Identifier "UBUNTU Oneiric custom quirks"
 Driver "synaptics"
 MatchIsTouchpad "on"
 MatchDevicePath "/dev/input/event*"
 Option "VertTwoFingerScroll" "1"
 Option "TapAndDragGesture" "1"
 Option "SingleTapTimeout" "300"
 Option "FastTaps" "1"
 Option "PalmDetect" "1"
 Option "PalmMinWidth" "2"
 Option "PalmMinZ" "140"
 Option "FingerLow" "10"
 Option "FingerHigh" "30"
 Option "MaxTapTime" "10"
 Option "MaxTapMove" "10"
EndSection
  • VertTwoFingerScroll=1 включает двупальцевое скроллирование
  • TapAndDragGesture=1 включает drag-n-drop
  • SingleTapTimeout=300 исправляет проблему, отрубившую drag-n-drop
  • FastTaps=1 ускоряет распознавание одиночного клика за счет замедления распознавания двойного клика
  • PalmDetect=1 включает игнорирование касания ладонью
  • PalmMinWidth=2 устанавливает ширину пятна касания. Ширина пятна касания выше этого значение будет означать, что тачпад задет ладонью, поэтому есть смысл установить по-минимуму
  • PalmMinZ=140 устанавливает силу касания выше которой касание будет игнорировано. Суть в том, что как правило по тачпаду мы легко водим кончиками пальцев, а вот сильное касание будет означать при этом, что тачпад задет случайно. Хорошо бы поставить поменьше, но значения меньше 130 отрубают у меня двупальцевый тач.
  • FingerHigh=30 устанавливает давление касания. Касание с давлением выше этого будет зарегистрировано.
  • FingerLow=10 устанавливает давление отпускания. Когда давление на тачпад будет ниже этой величины тачпад проинформирует об отпускании. Имеет смысл установить значение поменьше, чтобы только полностью убранный с тачпада палец приводил к отпусканию
  • MaxTapTime=10 устанавливает максимальное время для регистрации клика. Установил поменьше, чтобы только быстрое касание приводило к клику
  • MaxTapMove=10 устанавливает максимальную дистанцию скольжения пальца при регистрации клика. Также поставил поменьше, чтобы только несмазанные касания приводили к клику, а двупальцевый скролл не вызывал контекстное меню.

1 комментарий: