Touchpad: различия между версиями
Freuser (обсуждение | вклад) (Новая страница: «''' == Настройка тачпадов на ноутбуках == ''' Тачпады для ноутбуков бывают трех видов: Synaptics, Elan...») |
Freuser (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
''' | Тачпад (''англ.'' touchpad) -- маленькая сенсорная панель, располагается обычно на ближнем к пользователю краю открытого ноутбука. Используется для передвижения и кликов указателем мыши в отсутствие или в дополнение к самой мыши. | ||
== Настройка тачпадов на ноутбуках == | == Настройка тачпадов на ноутбуках == | ||
Тачпады для ноутбуков бывают трех видов: Synaptics, Elantech и Alps. | Тачпады для ноутбуков бывают нескольких производителей. Наиболее распространены трех видов: Synaptics, Elantech и Alps. | ||
Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее, оба последних вида тачпадов уже поддерживаются драйвером synaptics, разница в том, что alps-тачпад не передает количество пальцев, нажимающих его, поэтому жесты, требующие двух и более пальцев, практически не поддерживаются (ниже есть пример обхода). | Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее, оба последних вида тачпадов уже поддерживаются драйвером synaptics, разница в том, что alps-тачпад не передает количество пальцев, нажимающих его, поэтому жесты, требующие двух и более пальцев, практически не поддерживаются (ниже есть пример обхода). | ||
Строка 12: | Строка 13: | ||
<source lang="xorg_conf"> | <source lang="xorg_conf"> | ||
Section "InputClass" | Section "InputClass" | ||
Identifier " | Identifier "touchpad catchall" | ||
Driver "synaptics" | Driver "synaptics" | ||
MatchIsTouchpad "on" | MatchIsTouchpad "on" | ||
MatchDevicePath "/dev/input/event*" | MatchDevicePath "/dev/input/event*" | ||
Option "SHMConfig" "True" | # Option "SHMConfig" "True" # uncomment this to debug | ||
EndSection | EndSection | ||
</source> | </source> | ||
Раскомментируйте строку с ' Option "SHMConfig" ' '''<tt>только на время</tt>''', пока подбираете параметры. | |||
Строка 76: | Строка 52: | ||
===Опции=== | ===Опции=== | ||
Команда <code>synclient -l</code> выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для Х-сервера, который можно вписать для загрузки оптимальной конфигурации при старте графики | Команда <code>synclient -l</code> выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для Х-сервера, который можно вписать для загрузки оптимальной конфигурации при старте графики | ||
Некоторые опции: | Некоторые опции: | ||
LeftEdge, RightEdge, TopEdge, BottomEdge -- соответственно левый, правый, верхний и нижний края тачпада. Могут быть изменены для создания мертвых зон на каком-то краю. Целые числа. | ''LeftEdge, RightEdge, TopEdge, BottomEdge'' -- соответственно левый, правый, верхний и нижний края тачпада. Могут быть изменены для создания 'мертвых зон' на каком-то краю. Целые числа. | ||
FingerLow, FingerHigh -- определяют срабатывание при нажатии: считается касание, если давление становится выше FingerHigh, и отпускание, если падает ниже FingerLow. Целые числа. | ''FingerLow, FingerHigh'' -- определяют срабатывание при нажатии: считается касание, если давление становится выше ''FingerHigh'', и отпускание, если падает ниже ''FingerLow''. Целые числа. | ||
FingerPress -- определяет нажатие в режиме эмуляции трекболла, чем больше число, тем сильнее требуется нажать. Целое число. | ''FingerPress'' -- определяет нажатие в режиме эмуляции трекболла, чем больше число, тем сильнее требуется нажать. Целое число. | ||
MaxTapTime -- максимальное время в мсек, до которого касание определяется как одиночное, при превышении -- считается удержанием. Целое число. | ''MaxTapTime'' -- максимальное время в мсек, до которого касание определяется как одиночное, при превышении -- считается удержанием. Целое число. | ||
MaxTapMove -- максимальное передвижение пальца, которое отбрасывается при одиночном касании. Целое число. | ''MaxTapMove'' -- максимальное передвижение пальца, которое отбрасывается при одиночном касании. Целое число. | ||
MaxDoubleTapTime -- аналог MaxTapTime для двойного касания. Целое число. | ''MaxDoubleTapTime'' -- аналог ''MaxTapTime'' для двойного касания. Целое число. | ||
ClickTime -- продолжительность генерируемого клика при касании, в мсек. Целое число. | ''ClickTime'' -- продолжительность генерируемого клика при касании, в мсек. Целое число. | ||
FastTaps -- тачпад быстрее реагирует на одиночное нажатие, но медленнее на двойной. 0 или 1. | ''FastTaps'' -- тачпад быстрее реагирует на одиночное нажатие, но медленнее на двойной. 0 или 1. | ||
VertEdgeScroll -- при ведении пальцем у правого края тачпада производится вертикальный скроллинг. 0 или 1. | ''VertEdgeScroll'' -- при ведении пальцем у правого края тачпада производится вертикальный скроллинг. 0 или 1. | ||
HorizEdgeScroll -- то же для верхнего края и горизонтального скроллинга. 0 или 1. | ''HorizEdgeScroll'' -- то же для верхнего края и горизонтального скроллинга. 0 или 1. | ||
CornerCoasting -- одновременное действие предыдущих двух опций. 0 или 1. | ''CornerCoasting'' -- одновременное действие предыдущих двух опций. 0 или 1. | ||
VertTwoFingerScroll -- вертикальный скроллинг двумя пальцами. 0 или 1. | ''VertTwoFingerScroll'' -- вертикальный скроллинг двумя пальцами. 0 или 1. | ||
HorizTwoFingerScroll -- горизонтальный скроллинг двумя пальцами. 0 или 1. | ''HorizTwoFingerScroll'' -- горизонтальный скроллинг двумя пальцами. 0 или 1. | ||
VertScrollDelta, HorizScrollDelta -- расстояние, на которое необходимо передвинуть палец для скроллинга. Целое число. | ''VertScrollDelta, HorizScrollDelta'' -- расстояние, на которое необходимо передвинуть палец для скроллинга. Целое число. | ||
MinSpeed, MaxSpeed -- минимальная/максимальная скорость движения курсора, при равных значениях ускорение отсутствует. Число с дробной частью. | ''MinSpeed, MaxSpeed'' -- минимальная/максимальная скорость движения курсора, при равных значениях ускорение отсутствует. Число с дробной частью. | ||
AccelFactor -- величина ускорения курсора. Чем больше, тем быстрее растет скорость от минимальной до максимальной. Целое с дробной частью. | ''AccelFactor'' -- величина ускорения курсора. Чем больше, тем быстрее растет скорость от минимальной до максимальной. Целое с дробной частью. | ||
EmulateTwoFingerZ -- для тачпадов, распознающих многопальцевое касание как однопальцевое, позволяет установить значение давления, при котором будет генерироваться касание двумя пальцами. Рекомендуется установить немного большим FingerHigh. Целое число. | ''EmulateTwoFingerZ'' -- для тачпадов, распознающих многопальцевое касание как однопальцевое (например, Alps), позволяет установить значение давления, при котором будет генерироваться касание двумя пальцами. Рекомендуется установить немного большим ''FingerHigh''. Целое число. | ||
EmulateTwoFingerW -- то же, что предыдущее, значение для ширины пятна касания. Во многих случаях не стоит устанвливать больше 0, так как недотачпады постоянно шлют 0 в этом параметре. Не рекомендуется совмещать с PalmDetect=1. Целое число. | ''EmulateTwoFingerW'' -- то же, что предыдущее, значение для ширины пятна касания. Во многих случаях не стоит устанвливать больше 0, так как недотачпады постоянно шлют 0 в этом параметре. Не рекомендуется совмещать с ''PalmDetect=1''. Целое число. | ||
TouchpadOff -- включает/выключает тачпад. Значения: 0 -- включено, 1 -- выключено, 2 и более -- работает только передвижение указателя мыши. Целое число. | ''TouchpadOff'' -- включает/выключает тачпад. Значения: 0 -- включено, 1 -- выключено, 2 и более -- работает только передвижение указателя мыши. Целое число. | ||
LockedDrags -- "инерция" скроллинга (пока не истечет время, определенное LockedDragTimeout) и касания (залипание курсора, пока не будет другого касания). 0 или 1. | ''LockedDrags'' -- "инерция" скроллинга (пока не истечет время, определенное ''LockedDragTimeout'') и касания (залипание курсора, пока не будет другого касания). 0 или 1. | ||
LockedDragTimeout -- время в мсек, в течение которого будет продолжаться скроллинг с момента ухода пальца с тачпада. Целое число. | ''LockedDragTimeout'' -- время в мсек, в течение которого будет продолжаться скроллинг с момента ухода пальца с тачпада. Целое число. | ||
RTCornerButton, RBCornerButton, LTCornerButton, LBCornerButton -- какую клавишу мыши нажать при касании в правом верхнем, правом нижнем, левом верхнем, левом нижнем углах соответственно. Варианты: 0 -- отключено, 1 -- левая кнопка, 2 -- средняя, 3 -- правая. Целое число. | ''RTCornerButton, RBCornerButton, LTCornerButton, LBCornerButton'' -- какую клавишу мыши нажать при касании в правом верхнем, правом нижнем, левом верхнем, левом нижнем углах соответственно. Варианты: 0 -- отключено, 1 -- левая кнопка, 2 -- средняя, 3 -- правая. Целое число. | ||
TapButton1, TapButton2, TapButton3 -- эмуляция кнопок мыши при касании одним/двумя/тремя пальцами соответственно. Значения, как в предыдущем параметре. Целое число. | ''TapButton1, TapButton2, TapButton3'' -- эмуляция кнопок мыши при касании одним/двумя/тремя пальцами соответственно. Значения, как в предыдущем параметре. Целое число. | ||
PalmDetect -- при нажатии большой площади тачпада автоматически будет блокироваться любая активность указателя. Полезно тем, кто часто сбивает указатель мыши и курсор при наборе текста. 0 | ''PalmDetect'' -- при нажатии большой площади тачпада автоматически будет блокироваться любая активность указателя. Полезно тем, кто часто сбивает указатель мыши и курсор при наборе текста. 0 или 1. | ||
==Особенности для разных протоколов== | ==Особенности для разных протоколов== | ||
Строка 136: | Строка 112: | ||
===Тачпад Elantech=== | ===Тачпад Elantech=== | ||
До ядра 2.6.34 этот тачпад не поддерживался в Linux (работал как обычная мышь) без пропатченого модуля | До ядра 2.6.34 этот тачпад не поддерживался в Linux (работал как обычная мышь) без пропатченого модуля ''psmouse''; после требовалось загружать модуль ''psmouse'' с опцией ''force_elantech=1'' (по отзывам, у некоторых работает, если загружать эту опцию на старте системы, передавая ядру в командной строке опцию ''psmouse.force_elantech=1''); в версии ядра 3.9.4 работает автоматически через драйвер ''synaptics'' (соответственно, в модуле ''psmouse'' пропала данная опция). Для того, чтобы включить разделяемую память (если опция ''SHMConfig'' не срабатывает), требуется собрать Х-сервер с опцией '''"INPUT_DEVICES=synaptics"'''. | ||
===Тачпад ALPS=== | ===Тачпад ALPS=== | ||
У тачпада Alps невозможно (пока?) получить координаты двух-трех пальцев, соответственно, работают только одиночные жесты. Но все же, если принять во внимание координату '''w''' (ширину пятна контакта) и величину '''z''' (силу нажатия), то можно примерно определять, когда на поле тачпада находятся один, а когда больше пальцев. Для этого применяются опции EmulateTwoFingerMinW и EmulateTwoFingerMinZ соответственно, а также EmulateMidButtonTime | У тачпада Alps невозможно (пока?) получить координаты двух-трех пальцев, соответственно, работают только одиночные жесты. Но все же, если принять во внимание координату '''w''' (ширину пятна контакта) и величину '''z''' (силу нажатия), то можно примерно определять, когда на поле тачпада находятся один, а когда больше пальцев. Для этого применяются опции ''EmulateTwoFingerMinW'' и ''EmulateTwoFingerMinZ'' соответственно, а также ''EmulateMidButtonTime''. Естественно, не все жесты работают, но двухпальцевый скроллинг идет как горизонтальный, так и вертикальный. | ||
==GUI== | ==GUI== | ||
Существуют и графические утилиты для настройки тачпадов. Ниже приведены наиболее распространенные. | |||
===Gsynaptic=== | ===Gsynaptic=== | ||
===Gpointing-device=== | ''Gsynaptic'' на данный момент считается устаревшим и не рекомендуется для использования. | ||
===Gpointing-device-settings=== | |||
''Gpointing-device-settings'' пришел на замену ''gsynaptic'', поддерживает гораздо больше опций и считается передовым на данный момент. | |||
===Встроенные в Gnome=== | ===Встроенные в Gnome=== | ||
Пользователи Gnome могут заметить, что настройки не меняются, несмотря на отсутствие ошибок при конфигурировании. Дело в том, что у Gnome имеется собственный раздел конфигурирования, настройки из которого перекрывают любые другие. Чтобы Gnome не вмешивался в процесс настройки тачпада, нужно выключить плагин ''gnome-settings-daemon'', открыв ''gconf-editor'' и сняв галочку с ключа '''/apps/gnome_settings_daemon/plugins/mouse/active''', | |||
==Сохранение настроек== | ==Сохранение настроек== | ||
Правильным способом является конфигуриропание путем добавления опций Х-сервера. В <tt>man synaptics</tt> приведены аналоги всех опций, которые следует применять вместо приведенных выше для ''synclient''. Например, опция ''Synaptic Finger '' обьединяет в себе значения трех параметров: ''FingerLow, FingerHigh'' и ''FingerPress''. | |||
Если на ноутбуке несколько пользователей со своими предпочтениями, то различающиеся опции можно вписать в файл ~/.xprofile в виде команды ''synclient option1=param1 option2=param2 ... '' либо положить файл с командами и опциями в папку автозапуска оконного менеджера. | |||
[[Категория:Ноутбуки]] | [[Категория:Ноутбуки]] |
Версия от 22:45, 3 июня 2013
Тачпад (англ. touchpad) -- маленькая сенсорная панель, располагается обычно на ближнем к пользователю краю открытого ноутбука. Используется для передвижения и кликов указателем мыши в отсутствие или в дополнение к самой мыши.
Настройка тачпадов на ноутбуках
Тачпады для ноутбуков бывают нескольких производителей. Наиболее распространены трех видов: Synaptics, Elantech и Alps. Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее, оба последних вида тачпадов уже поддерживаются драйвером synaptics, разница в том, что alps-тачпад не передает количество пальцев, нажимающих его, поэтому жесты, требующие двух и более пальцев, практически не поддерживаются (ниже есть пример обхода).
Драйвер synaptics
Данный драйвер содержится в пакете xorg-drv-synaptics. Для подключения тачпада через synaptics требуется создать конфигурационную секцию для X-сервера. В данный момент оптимально создать файл, назовем его 10-synaptic.conf, в папке /etc/X11/xorg/conf.d . Минимальное содержание данного файла:
cat /etc/X11/xorg.conf.d/10.synaptic.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.
Особенности для разных протоколов
Тачпад Synaptics
Особых параметров и манипуляций не требуется, все должно работать из коробки.
Тачпад Elantech
До ядра 2.6.34 этот тачпад не поддерживался в Linux (работал как обычная мышь) без пропатченого модуля psmouse; после требовалось загружать модуль psmouse с опцией force_elantech=1 (по отзывам, у некоторых работает, если загружать эту опцию на старте системы, передавая ядру в командной строке опцию psmouse.force_elantech=1); в версии ядра 3.9.4 работает автоматически через драйвер synaptics (соответственно, в модуле psmouse пропала данная опция). Для того, чтобы включить разделяемую память (если опция SHMConfig не срабатывает), требуется собрать Х-сервер с опцией "INPUT_DEVICES=synaptics".
Тачпад ALPS
У тачпада Alps невозможно (пока?) получить координаты двух-трех пальцев, соответственно, работают только одиночные жесты. Но все же, если принять во внимание координату w (ширину пятна контакта) и величину z (силу нажатия), то можно примерно определять, когда на поле тачпада находятся один, а когда больше пальцев. Для этого применяются опции EmulateTwoFingerMinW и EmulateTwoFingerMinZ соответственно, а также EmulateMidButtonTime. Естественно, не все жесты работают, но двухпальцевый скроллинг идет как горизонтальный, так и вертикальный.
GUI
Существуют и графические утилиты для настройки тачпадов. Ниже приведены наиболее распространенные.
Gsynaptic
Gsynaptic на данный момент считается устаревшим и не рекомендуется для использования.
Gpointing-device-settings
Gpointing-device-settings пришел на замену gsynaptic, поддерживает гораздо больше опций и считается передовым на данный момент.
Встроенные в 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 в виде команды synclient option1=param1 option2=param2 ... либо положить файл с командами и опциями в папку автозапуска оконного менеджера.