Touchpad: различия между версиями

Материал из ALT Linux Wiki
м (доработка содержимого и оформления)
Строка 103: Строка 103:


''PalmDetect'' — при нажатии большой площади тачпада автоматически будет блокироваться любая активность указателя. Полезно тем, кто часто сбивает указатель мыши и курсор при наборе текста. 0 или 1.
''PalmDetect'' — при нажатии большой площади тачпада автоматически будет блокироваться любая активность указателя. Полезно тем, кто часто сбивает указатель мыши и курсор при наборе текста. 0 или 1.
''PalmMinWidth'' -- какая минимальная ширина касания должна быть, чтобы тачпад среагировал как на прикосновение ладони. Целое число.
''PalmMinZ'' -- то же, что и предыдущая опция, только на силу давления. Целое число.
''CircularScrolling'' -- довольно удобная опция, позволяет прокручивать длинные страницы, документы, производя круговые движения по тачпаду. Чем ближе описываемый круг к центру, тем более быстро прокручивается страница. Эмулируется вращение колесика мыши. 0 или 1.
''CircScrollDelta'' -- угол вокруг центра тачпада, при прохождении которого генерируется одно вращение колесика мыши. Целое с дробной частью.


==Особенности для разных протоколов==
==Особенности для разных протоколов==

Версия от 15:07, 4 июня 2013

Тачпад (англ. touchpad) — маленькая сенсорная панель, располагается обычно на ближнем к пользователю краю открытого ноутбука. Используется для передвижения и кликов указателем мыши в отсутствие или в дополнение к самой мыши.

Настройка тачпадов на ноутбуках

Тачпады для ноутбуков бывают нескольких производителей. Наиболее распространены трех видов: Synaptics, Elantech и Alps. Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее оба последних вида тачпадов уже поддерживаются драйвером synaptics — разница в том, что alps-тачпад не передает количество пальцев, нажимающих его; поэтому жесты, требующие двух и более пальцев, практически не поддерживаются (ниже есть пример обхода).

Драйвер synaptics

Данный драйвер содержится в пакете xorg-drv-synaptics.

Для подключения тачпада через synaptics может потребоваться создать конфигурационную секцию для X-сервера. Если «из коробки» не работает — в данный момент оптимально создать файл, назовем его 10-synaptics.conf, в каталоге /etc/X11/xorg/conf.d; минимальное содержание данного файла:

$ cat /etc/X11/xorg.conf.d/10-synaptics.conf

Section "InputClass"
       Identifier "touchpad catchall"
       Driver "synaptics"
       MatchIsTouchpad "on"
       MatchDevicePath "/dev/input/event*"
       # Option "SHMConfig"   "True"    # uncomment this to debug
EndSection

Раскомментируйте строку с Option "SHMConfig" только на время, пока подбираете параметры.

Начальное конфигурирование

Для конфигурирования при загруженном synaptics применяется команда synclient; формат команды: synclient опция значение или для начального определения — synclient -m время (в мсек). Запускаете онлайн-слежение и производите разные жесты на тачпаде (касания, передвижение одного/нескольких пальцев)

$ synclient -m 50

time   x    y      z f  w  l r u d m     multi  gl gm gr gdx gdy
0.000  1946 2718   0 0  0  0 0 0 0 0  00000000
1.152  3376 2753  58 1  4  0 0 0 0 0  00000000
1.202  3370 2746  67 1  4  0 0 0 0 0  00000000
1.252  3373 2731   4 1  7  0 0 0 0 0  00000000
1.302  3373 2731   0 0  0  0 0 0 0 0  00000000
2.555  5068 1901  24 1  4  0 0 0 0 0  00000000
2.605  5097 2347  83 2  5  0 0 0 0 0  00000000
2.655  5109 2371  84 2  5  0 0 0 0 0  00000000
2.705  3045 2695   4 1 12  0 0 0 0 0  00000000
2.755  3045 2695   0 0  0  0 0 0 0 0  00000000

Здесь time -- время от начала работы программы, x, y -- координаты нажатия от верхнего левого угла, z -- сила нажатия, f -- количество распознанных пальцев,w -- ширина (диаметр) пятна нажатия, l, r, u, d, m, multi -- соответственно левая, правая, верхняя, нижняя, средняя и многофункциональная дополнительные кнопки тачпада (полосы прокрутки?), единица соответствует нажатию, далее идут параметры для подключаемого устройства (guest device): gl, gm, gr -- левая, средняя и правая кнопки, gdx, gdy -- координаты гостевого устройства.

Если при запуске synclient лаконично отвечает

Can't access shared memory area. SHMConfig disabled?

значит, либо опция SHMConfig не включена в файле 10-synaptics.conf, либо X-сервер не поддерживает данную опцию. В принципе, методом тыка за пару дней пользования можно подобрать необходимые параметры.

Опции

Команда synclient -l выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для Х-сервера, который можно вписать для загрузки оптимальной конфигурации при старте графики

Некоторые опции:

LeftEdge, RightEdge, TopEdge, BottomEdge — соответственно левый, правый, верхний и нижний края тачпада. Могут быть изменены для создания 'мертвых зон' на каком-то краю. Целые числа.

FingerLow, FingerHigh — определяют срабатывание при нажатии: считается касание, если давление становится выше FingerHigh, и отпускание, если падает ниже FingerLow. Целые числа.

FingerPress — определяет нажатие в режиме эмуляции трекболла, чем больше число, тем сильнее требуется нажать. Целое число.

MaxTapTime — максимальное время в мсек, до которого касание определяется как одиночное, при превышении — считается удержанием. Целое число.

MaxTapMove — максимальное передвижение пальца, которое отбрасывается при одиночном касании. Целое число.

MaxDoubleTapTime — аналог MaxTapTime для двойного касания. Целое число.

ClickTime — продолжительность генерируемого клика при касании, в мсек. Целое число.

FastTaps — тачпад быстрее реагирует на одиночное нажатие, но медленнее на двойной. 0 или 1.

VertEdgeScroll — при ведении пальцем у правого края тачпада производится вертикальный скроллинг. 0 или 1.

HorizEdgeScroll — то же для верхнего края и горизонтального скроллинга. 0 или 1.

CornerCoasting — одновременное действие предыдущих двух опций. 0 или 1.

VertTwoFingerScroll — вертикальный скроллинг двумя пальцами. 0 или 1.

HorizTwoFingerScroll — горизонтальный скроллинг двумя пальцами. 0 или 1.

VertScrollDelta, HorizScrollDelta — расстояние, на которое необходимо передвинуть палец для скроллинга. Целое число.

MinSpeed, MaxSpeed — минимальная/максимальная скорость движения курсора, при равных значениях ускорение отсутствует. Число с дробной частью.

AccelFactor — величина ускорения курсора. Чем больше, тем быстрее растет скорость от минимальной до максимальной. Целое с дробной частью.

EmulateTwoFingerZ — для тачпадов, распознающих многопальцевое касание как однопальцевое (например, Alps), позволяет установить значение давления, при котором будет генерироваться касание двумя пальцами. Рекомендуется установить немного большим FingerHigh. Целое число.

EmulateTwoFingerW — то же, что предыдущее, значение для ширины пятна касания. Во многих случаях не стоит устанвливать больше 0, так как недотачпады постоянно шлют 0 в этом параметре. Не рекомендуется совмещать с PalmDetect=1. Целое число.

TouchpadOff — включает/выключает тачпад. Значения: 0 — включено, 1 — выключено, 2 и более — работает только передвижение указателя мыши. Целое число.

LockedDrags — «инерция» скроллинга (пока не истечет время, определенное LockedDragTimeout) и касания (залипание курсора, пока не будет другого касания). 0 или 1.

LockedDragTimeout — время в мсек, в течение которого будет продолжаться скроллинг с момента ухода пальца с тачпада. Целое число.

RTCornerButton, RBCornerButton, LTCornerButton, LBCornerButton — какую клавишу мыши нажать при касании в правом верхнем, правом нижнем, левом верхнем, левом нижнем углах соответственно. Варианты: 0 — отключено, 1 — левая кнопка, 2 — средняя, 3 — правая. Целое число.

TapButton1, TapButton2, TapButton3 — эмуляция кнопок мыши при касании одним/двумя/тремя пальцами соответственно. Значения, как в предыдущем параметре. Целое число.

PalmDetect — при нажатии большой площади тачпада автоматически будет блокироваться любая активность указателя. Полезно тем, кто часто сбивает указатель мыши и курсор при наборе текста. 0 или 1.

PalmMinWidth -- какая минимальная ширина касания должна быть, чтобы тачпад среагировал как на прикосновение ладони. Целое число.

PalmMinZ -- то же, что и предыдущая опция, только на силу давления. Целое число.

CircularScrolling -- довольно удобная опция, позволяет прокручивать длинные страницы, документы, производя круговые движения по тачпаду. Чем ближе описываемый круг к центру, тем более быстро прокручивается страница. Эмулируется вращение колесика мыши. 0 или 1.

CircScrollDelta -- угол вокруг центра тачпада, при прохождении которого генерируется одно вращение колесика мыши. Целое с дробной частью.

Особенности для разных протоколов

Тачпад Synaptics

Особых параметров и манипуляций не требуется, все должно работать из коробки.

Тачпад Elantech

До ядра 2.6.34 этот тачпад не поддерживался в Linux (работал как обычная мышь) без пропатченого модуля psmouse; после требовалось загружать модуль psmouse с опцией force_elantech=1 (по отзывам, у некоторых работает, если загружать эту опцию на старте системы, передавая ядру в командной строке опцию psmouse.force_elantech=1); в версии ядра 3.9.4 работает автоматически через драйвер synaptics (соответственно, в модуле psmouse пропала данная опция). Для того, чтобы включить разделяемую память (если опция SHMConfig не срабатывает), требуется собрать Х-сервер с опцией "INPUT_DEVICES=synaptics".

Программные кнопки

При наличии «двухкнопочного» кликпада (clickpad) Elantech возможно расширение его функциональности, поскольку нажатия "кнопок" отрабатываются программно; пример для добавления средней кнопки, весьма удобной для быстрой вставки буфера обмена при работе в X11:

$ cat /etc/X11/xorg.conf.d/10-synaptics.conf

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        Option "SoftButtonAreas"  "60% 0 82% 0 40% 59% 82% 0"
EndSection

Тачпад ALPS

У тачпада Alps невозможно (пока?) получить координаты двух-трех пальцев, соответственно, работают только одиночные жесты. Но все же, если принять во внимание координату w (ширину пятна контакта) и величину z (силу нажатия), то можно примерно определять, когда на поле тачпада находятся один, а когда больше пальцев. Для этого применяются опции EmulateTwoFingerMinW и EmulateTwoFingerMinZ соответственно, а также EmulateMidButtonTime. Естественно, не все жесты работают, но двухпальцевый скроллинг идет как горизонтальный, так и вертикальный.

GUI

Существуют и графические утилиты для настройки тачпадов. Ниже приведены наиболее распространенные.

gsynaptics

gsynaptics на данный момент считается устаревшим и не рекомендуется для использования.

gpointing-device-settings

gpointing-device-settings пришел на замену gsynaptics, поддерживает гораздо больше опций и считается передовым на данный момент.

Встроенные в Gnome

Пользователи Gnome могут заметить, что настройки не меняются, несмотря на отсутствие ошибок при конфигурировании. Дело в том, что у Gnome имеется собственный раздел конфигурирования, настройки из которого перекрывают любые другие. Чтобы Gnome не вмешивался в процесс настройки тачпада, нужно выключить плагин gnome-settings-daemon, открыв gconf-editor и сняв галочку с ключа /apps/gnome_settings_daemon/plugins/mouse/active.

Сохранение настроек

Правильным способом является конфигуриропание путем добавления опций Х-сервера. В man synaptics приведены аналоги всех опций, которые следует применять вместо приведенных выше для synclient. Например, опция Synaptic Finger обьединяет в себе значения трех параметров: FingerLow, FingerHigh и FingerPress.

Если на ноутбуке несколько пользователей со своими предпочтениями, то различающиеся опции можно вписать в файл ~/.xprofile в виде команды {{{1}}} либо положить файл с командами и опциями в каталог автозапуска настольного окружения.

Ссылки