Touchpad: различия между версиями
(→Ссылки) |
мНет описания правки |
||
Строка 1: | Строка 1: | ||
Тачпад (''англ.'' touchpad) — маленькая сенсорная панель, располагается обычно на ближнем к пользователю краю открытого ноутбука. Используется для передвижения и кликов указателем мыши в отсутствие или в дополнение к самой мыши. | Тачпад (''англ.'' touchpad) — маленькая сенсорная панель, располагается обычно на ближнем к пользователю краю открытого ноутбука. Используется для передвижения и кликов указателем мыши в отсутствие или в дополнение к самой мыши. | ||
= Настройка тачпадов на ноутбуках = | == Настройка тачпадов на ноутбуках == | ||
Тачпады для ноутбуков бывают нескольких производителей. Наиболее распространены трех видов: Synaptics, Elantech и Alps. | Тачпады для ноутбуков бывают нескольких производителей. Наиболее распространены трех видов: Synaptics, Elantech и Alps. | ||
Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее оба последних вида тачпадов уже поддерживаются драйвером synaptics — разница в том, что alps-тачпад не передает количество пальцев, нажимающих его; поэтому жесты, требующие двух и более пальцев, практически не поддерживаются (ниже есть [[Touchpad#Тачпад ALPS|пример]] обхода). | Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее оба последних вида тачпадов уже поддерживаются драйвером synaptics — разница в том, что alps-тачпад не передает количество пальцев, нажимающих его; поэтому жесты, требующие двух и более пальцев, практически не поддерживаются (ниже есть [[Touchpad#Тачпад ALPS|пример]] обхода). | ||
== Драйвер synaptics == | === Драйвер synaptics === | ||
Данный драйвер содержится в пакете {{pkg|xorg-drv-synaptics}}. | Данный драйвер содержится в пакете {{pkg|xorg-drv-synaptics}}. | ||
Для подключения тачпада через synaptics может потребоваться создать конфигурационную секцию для X-сервера. Если «из коробки» не работает — в данный момент оптимально создать файл, назовем его 10-synaptics.conf, в каталоге {{path|/etc/X11/xorg/conf.d}}; минимальное содержание данного файла: | Для подключения тачпада через synaptics может потребоваться создать конфигурационную секцию для X-сервера. Если «из коробки» не работает — в данный момент оптимально создать файл, назовем его 10-synaptics.conf, в каталоге {{path|/etc/X11/xorg/conf.d}}; минимальное содержание данного файла: | ||
< | <source source lang="text" highlight="1">$ cat /etc/X11/xorg.conf.d/10-synaptics.conf | ||
Section "InputClass" | Section "InputClass" | ||
Identifier "touchpad catchall" | Identifier "touchpad catchall" | ||
Строка 24: | Строка 23: | ||
Раскомментируйте строку с <code>Option "SHMConfig"</code> '''<tt>только на время</tt>''', пока подбираете параметры, это небезопасная опция, позволяющая программам читать и редактировать данные других программ. | Раскомментируйте строку с <code>Option "SHMConfig"</code> '''<tt>только на время</tt>''', пока подбираете параметры, это небезопасная опция, позволяющая программам читать и редактировать данные других программ. | ||
== Начальное конфигурирование == | === Начальное конфигурирование === | ||
Для конфигурирования при загруженном synaptics применяется команда {{cmd|synclient}} либо {{cmd|xinput}}. | Для конфигурирования при загруженном synaptics применяется команда {{cmd|synclient}} либо {{cmd|xinput}}. | ||
Строка 35: | Строка 34: | ||
Запускаете онлайн-слежение и производите разные жесты на тачпаде (касания, передвижение одного/нескольких пальцев) | Запускаете онлайн-слежение и производите разные жесты на тачпаде (касания, передвижение одного/нескольких пальцев) | ||
< | <source source lang="text" highlight="1">$ synclient -m 50 | ||
'''time x y z f w l r u d m multi gl gm gr gdx gdy''' | '''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 | 0.000 1946 2718 0 0 0 0 0 0 0 0 00000000 | ||
Строка 46: | Строка 45: | ||
2.655 5109 2371 84 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.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 | 2.755 3045 2695 0 0 0 0 0 0 0 0 00000000</source> | ||
Здесь '''time''' — время от начала работы программы, '''x, y''' — координаты нажатия от верхнего левого угла, '''z''' — сила нажатия, '''f''' — количество распознанных пальцев,'''w''' — ширина (диаметр) пятна нажатия, '''l, r, u, d, m, multi''' — соответственно левая, правая, верхняя, нижняя, средняя и многофункциональная дополнительные кнопки тачпада (полосы прокрутки?), единица соответствует нажатию, далее идут параметры для подключаемого устройства (guest device): ''' gl, gm, gr''' — левая, средняя и правая кнопки, '''gdx, gdy''' — координаты гостевого устройства. | Здесь '''time''' — время от начала работы программы, '''x, y''' — координаты нажатия от верхнего левого угла, '''z''' — сила нажатия, '''f''' — количество распознанных пальцев,'''w''' — ширина (диаметр) пятна нажатия, '''l, r, u, d, m, multi''' — соответственно левая, правая, верхняя, нижняя, средняя и многофункциональная дополнительные кнопки тачпада (полосы прокрутки?), единица соответствует нажатию, далее идут параметры для подключаемого устройства (guest device): ''' gl, gm, gr''' — левая, средняя и правая кнопки, '''gdx, gdy''' — координаты гостевого устройства. | ||
Строка 60: | Строка 59: | ||
Узнать текущее устройство : | Узнать текущее устройство : | ||
< | <source source lang="text" highlight="1">$ xinput list | ||
⎡ Virtual core pointer id=2 [master pointer (3)] | ⎡ Virtual core pointer id=2 [master pointer (3)] | ||
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] | ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] | ||
Строка 72: | Строка 71: | ||
↳ Sleep Button id=10 [slave keyboard (3)] | ↳ Sleep Button id=10 [slave keyboard (3)] | ||
↳ Asus WMI hotkeys id=12 [slave keyboard (3)] | ↳ Asus WMI hotkeys id=12 [slave keyboard (3)] | ||
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)] | ↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)] </source> | ||
Id тачпада в данном случае равен 14. Теперь можно узнавать текущие и выставлять новые значения. | Id тачпада в данном случае равен 14. Теперь можно узнавать текущие и выставлять новые значения. | ||
< | <source source lang="text" highlight="1">$ xinput list-props 14 | grep -i palm | ||
Synaptics Palm Detection (296): 0 | Synaptics Palm Detection (296): 0 | ||
Synaptics Palm Dimensions (297): 10, 199 | Synaptics Palm Dimensions (297): 10, 199</source> | ||
Включаем определение ладони : | Включаем определение ладони: | ||
< | <source source lang="text" highlight="1">$ xinput set-prop 14 "Synaptics Palm Detection" 1</source> | ||
Уменьшаем значения (допустим, край ладони не определяется, а трех пальцевый клик все равно не используется), вместо имени опции можно использовать её номер: | Уменьшаем значения (допустим, край ладони не определяется, а трех пальцевый клик все равно не используется), вместо имени опции можно использовать её номер: | ||
< | <source source lang="text" highlight="1">$ xinput set-prop 14 297 7 150</source> | ||
Смотрим значения: | Смотрим значения: | ||
< | <source source lang="text" highlight="1">$ xinput list-props 14 | grep -i palm | ||
Synaptics Palm Detection (296): 1 | Synaptics Palm Detection (296): 1 | ||
Synaptics Palm Dimensions (297): 7, 150 | Synaptics Palm Dimensions (297): 7, 150</source> | ||
==== syndaemon ==== | ==== syndaemon ==== | ||
Строка 98: | Строка 97: | ||
Пример запуска: | Пример запуска: | ||
< | <source source lang="text" highlight="1">$ syndaemon -i 2 -d</source> | ||
В данном варианте программа работает в фоновом режиме (-d), ждет 2 секунды после нажатия любой клавиши, если в течении этого времени нет нажатия следующей клавиши, включает тачпад (-i 2). Для отключения только кликов и скроллинга можно добавить опцию -t. | В данном варианте программа работает в фоновом режиме (-d), ждет 2 секунды после нажатия любой клавиши, если в течении этого времени нет нажатия следующей клавиши, включает тачпад (-i 2). Для отключения только кликов и скроллинга можно добавить опцию -t. | ||
Также можно поставить пакет {{pkg|xorg-synaptics-touchfreeze}}, содержащий настроенный скрипт запуска {{cmd|syndaemon}}. | Также можно поставить пакет {{pkg|xorg-synaptics-touchfreeze}}, содержащий настроенный скрипт запуска {{cmd|syndaemon}}. | ||
=== Опции === | ==== Опции ==== | ||
Команда {{cmd|synclient -l}} выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для {{pkg|xinput}} (и для {{path|xorg.conf.d}}), описанный в {{cmd|man synaptics}}. | Команда {{cmd|synclient -l}} выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для {{pkg|xinput}} (и для {{path|xorg.conf.d}}), описанный в {{cmd|man synaptics}}. | ||
Строка 175: | Строка 174: | ||
''AreaLeftEdge'', ''AreaRightEdge'', ''AreaTopEdge'', ''AreaBottomEdge'' — опция для отключения части площади тачпада с левой/правой/верхней/нижней стороны соответственно. Если поддерживается сервером (версия больше 1.9), можно указывать в процентах от общей ширины/высоты. Целые числа. | ''AreaLeftEdge'', ''AreaRightEdge'', ''AreaTopEdge'', ''AreaBottomEdge'' — опция для отключения части площади тачпада с левой/правой/верхней/нижней стороны соответственно. Если поддерживается сервером (версия больше 1.9), можно указывать в процентах от общей ширины/высоты. Целые числа. | ||
== Особенности для разных протоколов == | === Особенности для разных протоколов === | ||
=== Тачпад Synaptics === | ==== Тачпад Synaptics ==== | ||
Особых параметров и манипуляций не требуется, все должно работать из коробки. | Особых параметров и манипуляций не требуется, все должно работать из коробки. | ||
=== Тачпад Elantech === | ==== Тачпад Elantech ==== | ||
До ядра 2.6.34 этот тачпад не поддерживался в Linux (работал как обычная мышь) без пропатченого модуля ''psmouse''; после требовалось загружать модуль ''psmouse'' с опцией ''force_elantech=1'' (по отзывам, у некоторых работает, если загружать эту опцию на старте системы, передавая ядру в командной строке опцию ''psmouse.force_elantech=1''); в версии ядра 3.9.4 работает автоматически через драйвер ''synaptics'' (соответственно, в модуле ''psmouse'' пропала данная опция). Для того, чтобы включить разделяемую память (если опция ''SHMConfig'' не срабатывает), требуется собрать Х-сервер с опцией '''«INPUT_DEVICES=synaptics»'''<ref>[http://www.gentoo.ru/node/12570#comment-86889]</ref>. | До ядра 2.6.34 этот тачпад не поддерживался в Linux (работал как обычная мышь) без пропатченого модуля ''psmouse''; после требовалось загружать модуль ''psmouse'' с опцией ''force_elantech=1'' (по отзывам, у некоторых работает, если загружать эту опцию на старте системы, передавая ядру в командной строке опцию ''psmouse.force_elantech=1''); в версии ядра 3.9.4 работает автоматически через драйвер ''synaptics'' (соответственно, в модуле ''psmouse'' пропала данная опция). Для того, чтобы включить разделяемую память (если опция ''SHMConfig'' не срабатывает), требуется собрать Х-сервер с опцией '''«INPUT_DEVICES=synaptics»'''<ref>[http://www.gentoo.ru/node/12570#comment-86889]</ref>. | ||
==== Программные кнопки ==== | ===== Программные кнопки ===== | ||
При наличии «двухкнопочного» кликпада (clickpad) Elantech возможно расширение его функциональности, поскольку нажатия «кнопок» отрабатываются программно; пример для добавления средней кнопки, весьма удобной для быстрой вставки буфера обмена при работе в X11: | При наличии «двухкнопочного» кликпада (clickpad) Elantech возможно расширение его функциональности, поскольку нажатия «кнопок» отрабатываются программно; пример для добавления средней кнопки, весьма удобной для быстрой вставки буфера обмена при работе в X11: | ||
< | <source source lang="text" highlight="1">$ cat /etc/X11/xorg.conf.d/10-synaptics.conf | ||
Section "InputClass" | Section "InputClass" | ||
Identifier "touchpad catchall" | Identifier "touchpad catchall" | ||
Строка 198: | Строка 196: | ||
</source> | </source> | ||
Для обработки касаний одним, двумя и тремя пальцами требуется добавить перед "EndSection" строки: | Для обработки касаний одним, двумя и тремя пальцами требуется добавить перед "EndSection" строки: | ||
<source lang=" | <source lang="text"> | ||
Option "TapButton1" "1" | Option "TapButton1" "1" | ||
Option "TapButton2" "2" | Option "TapButton2" "2" | ||
Строка 204: | Строка 202: | ||
</source> | </source> | ||
=== Тачпад ALPS === | ==== Тачпад ALPS ==== | ||
У тачпада Alps невозможно (пока?) получить координаты двух-трех пальцев, соответственно, работают только одиночные жесты. Но все же, если принять во внимание координату '''w''' (ширину пятна контакта) и величину '''z''' (силу нажатия), то можно примерно определять, когда на поле тачпада находятся один, а когда больше пальцев. Для этого применяются опции ''EmulateTwoFingerMinW'' и ''EmulateTwoFingerMinZ'' соответственно, а также ''EmulateMidButtonTime''. Естественно, не все жесты работают, но двухпальцевый скроллинг идет как горизонтальный, так и вертикальный. | У тачпада Alps невозможно (пока?) получить координаты двух-трех пальцев, соответственно, работают только одиночные жесты. Но все же, если принять во внимание координату '''w''' (ширину пятна контакта) и величину '''z''' (силу нажатия), то можно примерно определять, когда на поле тачпада находятся один, а когда больше пальцев. Для этого применяются опции ''EmulateTwoFingerMinW'' и ''EmulateTwoFingerMinZ'' соответственно, а также ''EmulateMidButtonTime''. Естественно, не все жесты работают, но двухпальцевый скроллинг идет как горизонтальный, так и вертикальный. | ||
== GUI == | === GUI === | ||
Существуют и графические утилиты для настройки тачпадов. Ниже приведены наиболее распространенные. | Существуют и графические утилиты для настройки тачпадов. Ниже приведены наиболее распространенные. | ||
=== gsynaptics === | ==== gsynaptics ==== | ||
{{pkg|gsynaptics}} на данный момент считается устаревшим и не рекомендуется для использования. | {{pkg|gsynaptics}} на данный момент считается устаревшим и не рекомендуется для использования. | ||
=== gpointing-device-settings === | ==== gpointing-device-settings ==== | ||
{{pkg|gpointing-device-settings}} пришел на замену {{pkg|gsynaptics}}, поддерживает гораздо больше опций и считается передовым на данный момент. | {{pkg|gpointing-device-settings}} пришел на замену {{pkg|gsynaptics}}, поддерживает гораздо больше опций и считается передовым на данный момент. | ||
=== Встроенные в Gnome === | ==== Встроенные в Gnome ==== | ||
{{Stub}} {{Fixme| описать для последней версии Gnome}} | {{Stub}} {{Fixme| описать для последней версии Gnome}} | ||
В Gnome есть собственный раздел настройки. При конфигурировании сторонними утилитами может случиться, что настройки не меняются, несмотря на отсутствие ошибок в параметрах. Дело в том, что Gnome перекрывает своими настройками любые другие. В таком случае нужно выключить плагин ''gnome-settings-daemon'', открыв {{cmd|gconf-editor}} и сняв галочку с ключа '''/apps/gnome_settings_daemon/plugins/mouse/active'''. | В Gnome есть собственный раздел настройки. При конфигурировании сторонними утилитами может случиться, что настройки не меняются, несмотря на отсутствие ошибок в параметрах. Дело в том, что Gnome перекрывает своими настройками любые другие. В таком случае нужно выключить плагин ''gnome-settings-daemon'', открыв {{cmd|gconf-editor}} и сняв галочку с ключа '''/apps/gnome_settings_daemon/plugins/mouse/active'''. | ||
=== Встроенные в XFCE === | ==== Встроенные в XFCE ==== | ||
{{pkg|XFCE}} также имеет собственный раздел настройки тачпадов, однако опций там минимум. Поэтому рекомендуется для полноценного тюнинга использовать Х-сервер/{{pkg|synclient}}. | {{pkg|XFCE}} также имеет собственный раздел настройки тачпадов, однако опций там минимум. Поэтому рекомендуется для полноценного тюнинга использовать Х-сервер/{{pkg|synclient}}. | ||
=== Встроенные в KDE === | ==== Встроенные в KDE ==== | ||
После установки пакета {{pkg|kde4-synaptiks}} в параметрах KDE4 в разделе ''Оборудование'' -> ''Устройства ввода'' появится раздел «''Сенсорная панель''», где можно настраивать практически все возможные опции тачпада в удобном виде. | После установки пакета {{pkg|kde4-synaptiks}} в параметрах KDE4 в разделе ''Оборудование'' -> ''Устройства ввода'' появится раздел «''Сенсорная панель''», где можно настраивать практически все возможные опции тачпада в удобном виде. | ||
== Сохранение настроек == | === Сохранение настроек === | ||
Правильным способом является конфигурирование путем добавления опций Х-сервера. | Правильным способом является конфигурирование путем добавления опций Х-сервера. | ||
Строка 239: | Строка 237: | ||
Также можно применять команду {{cmd|xinput}} из одноименного пакета. | Также можно применять команду {{cmd|xinput}} из одноименного пакета. | ||
=См. так же= | == См. так же == | ||
*[[Участник:Petr-akhlamov/EnableSynaptics|EnableSynaptics]] | *[[Участник:Petr-akhlamov/EnableSynaptics|EnableSynaptics]] | ||
= Ссылки = | == Ссылки == | ||
* https://wiki.archlinux.org/index.php/Touchpad_Synaptics | * https://wiki.archlinux.org/index.php/Touchpad_Synaptics | ||
* http://en.opensuse.org/SDB:Touchpad | * http://en.opensuse.org/SDB:Touchpad |
Текущая версия от 12:51, 21 апреля 2022
Тачпад (англ. 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 либо xinput.
synclient
В последней (1.7.3) версии synclient нет опции -m , соответственно, настраивать тачпад возможно только методом подбора. Впрочем, в логах загрузки Х-сервера можно узнать производителя и отталкиваться от этого в тяжелых случаях.
Формат команды: 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-сервер не поддерживает данную опцию. В принципе, за пару дней пользования можно и вслепую подобрать необходимые параметры.
xinput
Узнать текущее устройство :
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ Sleep Button id=10 [slave keyboard (3)]
↳ Asus WMI hotkeys id=12 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
Id тачпада в данном случае равен 14. Теперь можно узнавать текущие и выставлять новые значения.
$ xinput list-props 14 | grep -i palm
Synaptics Palm Detection (296): 0
Synaptics Palm Dimensions (297): 10, 199
Включаем определение ладони:
$ xinput set-prop 14 "Synaptics Palm Detection" 1
Уменьшаем значения (допустим, край ладони не определяется, а трех пальцевый клик все равно не используется), вместо имени опции можно использовать её номер:
$ xinput set-prop 14 297 7 150
Смотрим значения:
$ xinput list-props 14 | grep -i palm
Synaptics Palm Detection (296): 1
Synaptics Palm Dimensions (297): 7, 150
syndaemon
В пакете xorg-drv-synaptics есть еще программа syndaemon, которая может отключать тачпад во время набора текста. Пример запуска:
$ syndaemon -i 2 -d
В данном варианте программа работает в фоновом режиме (-d), ждет 2 секунды после нажатия любой клавиши, если в течении этого времени нет нажатия следующей клавиши, включает тачпад (-i 2). Для отключения только кликов и скроллинга можно добавить опцию -t. Также можно поставить пакет xorg-synaptics-touchfreeze, содержащий настроенный скрипт запуска syndaemon.
Опции
Команда synclient -l выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для xinput (и для xorg.conf.d), описанный в man synaptics.
Некоторые опции:
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 — угол вокруг центра тачпада, при прохождении которого генерируется одно вращение колесика мыши. Целое с дробной частью.
CircScrollTrigger — одна из зон тачпада, начало движения на которой будет восприниматься как начало прокрутки. Варианты: 0 — все стороны, 1 — верхний край, 2 — верхний правый угол, 3 — правая сторона, 4 — нижний правый угол, 5 — нижний край, 6 — нижний левый угол, 7 — левая сторона, 8 — левый верхний угол. Целое число.
SingleTapTimeout — время, которое тачпад ждет после первого касания последующие, если их не следует, то генерируется одиночный клик. Увеличивайте, если не успеваете сделать двойной клик. Целое число.
GrabEventDevice — опция, нужная, если в конфигурационном файле опция protocol установлена в event. При других значениях или при отсутствии опции (дефолтном auto-dev) игнорируется. При изменении применится только после [пере]загрузки драйвера synaptics. 0 или 1.
TapAndDragGesture — использовать ли перетаскивание мышью (двойной клик, причем второе касание не отпускается, аналог зажатой левой клавиши мышки). 0 или 1.
AreaLeftEdge, AreaRightEdge, AreaTopEdge, AreaBottomEdge — опция для отключения части площади тачпада с левой/правой/верхней/нижней стороны соответственно. Если поддерживается сервером (версия больше 1.9), можно указывать в процентах от общей ширины/высоты. Целые числа.
Особенности для разных протоколов
Тачпад Synaptics
Особых параметров и манипуляций не требуется, все должно работать из коробки.
Тачпад Elantech
До ядра 2.6.34 этот тачпад не поддерживался в Linux (работал как обычная мышь) без пропатченого модуля psmouse; после требовалось загружать модуль psmouse с опцией force_elantech=1 (по отзывам, у некоторых работает, если загружать эту опцию на старте системы, передавая ядру в командной строке опцию psmouse.force_elantech=1); в версии ядра 3.9.4 работает автоматически через драйвер synaptics (соответственно, в модуле psmouse пропала данная опция). Для того, чтобы включить разделяемую память (если опция SHMConfig не срабатывает), требуется собрать Х-сервер с опцией «INPUT_DEVICES=synaptics»[1].
Программные кнопки
При наличии «двухкнопочного» кликпада (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
Для обработки касаний одним, двумя и тремя пальцами требуется добавить перед "EndSection" строки:
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
Тачпад ALPS
У тачпада Alps невозможно (пока?) получить координаты двух-трех пальцев, соответственно, работают только одиночные жесты. Но все же, если принять во внимание координату w (ширину пятна контакта) и величину z (силу нажатия), то можно примерно определять, когда на поле тачпада находятся один, а когда больше пальцев. Для этого применяются опции EmulateTwoFingerMinW и EmulateTwoFingerMinZ соответственно, а также EmulateMidButtonTime. Естественно, не все жесты работают, но двухпальцевый скроллинг идет как горизонтальный, так и вертикальный.
GUI
Существуют и графические утилиты для настройки тачпадов. Ниже приведены наиболее распространенные.
gsynaptics
gsynaptics на данный момент считается устаревшим и не рекомендуется для использования.
gpointing-device-settings
gpointing-device-settings пришел на замену gsynaptics, поддерживает гораздо больше опций и считается передовым на данный момент.
Встроенные в Gnome
В Gnome есть собственный раздел настройки. При конфигурировании сторонними утилитами может случиться, что настройки не меняются, несмотря на отсутствие ошибок в параметрах. Дело в том, что Gnome перекрывает своими настройками любые другие. В таком случае нужно выключить плагин gnome-settings-daemon, открыв gconf-editor и сняв галочку с ключа /apps/gnome_settings_daemon/plugins/mouse/active.
Встроенные в XFCE
XFCE также имеет собственный раздел настройки тачпадов, однако опций там минимум. Поэтому рекомендуется для полноценного тюнинга использовать Х-сервер/synclient.
Встроенные в KDE
После установки пакета kde4-synaptiks в параметрах KDE4 в разделе Оборудование -> Устройства ввода появится раздел «Сенсорная панель», где можно настраивать практически все возможные опции тачпада в удобном виде.
Сохранение настроек
Правильным способом является конфигурирование путем добавления опций Х-сервера.
Если на ноутбуке несколько пользователей со своими предпочтениями, то различающиеся опции можно вписать в файл ~/.xprofile в виде команды synclient option1=param1 option2=param2 option3=param3 либо положить файл с командами и опциями в каталог автозапуска настольного окружения. Также можно применять команду xinput из одноименного пакета.
См. так же
Ссылки
- https://wiki.archlinux.org/index.php/Touchpad_Synaptics
- http://en.opensuse.org/SDB:Touchpad
- http://wiki.debian.org/SynapticsTouchpad
- http://bb.comp-house.ru/comp-house.repo/wiki/xorg-conf-synaptic-alps