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

Материал из ALT Linux Wiki
(Форматирование, добавление разделов и ссылок.)
мНет описания правки
 
(не показано 10 промежуточных версий 4 участников)
Строка 1: Строка 1:
Тачпад (''англ.'' touchpad) — маленькая сенсорная панель, располагается обычно на ближнем к пользователю краю открытого ноутбука. Используется для передвижения и кликов указателем мыши в отсутствие или в дополнение к самой мыши.
Тачпад (''англ.'' touchpad) — маленькая сенсорная панель, располагается обычно на ближнем к пользователю краю открытого ноутбука. Используется для передвижения и кликов указателем мыши в отсутствие или в дополнение к самой мыши.


= Настройка тачпадов на ноутбуках =
== Настройка тачпадов на ноутбуках ==
   
   
Тачпады для ноутбуков бывают нескольких производителей. Наиболее распространены трех видов: Synaptics, Elantech и Alps.
Тачпады для ноутбуков бывают нескольких производителей. Наиболее распространены трех видов: Synaptics, Elantech и Alps.
Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее оба последних вида тачпадов уже поддерживаются драйвером synaptics — разница в том, что 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}}; минимальное содержание данного файла:


<code>$ cat /etc/X11/xorg.conf.d/10-synaptics.conf</code>
<source source lang="text" highlight="1">$ cat /etc/X11/xorg.conf.d/10-synaptics.conf
<source lang="xorg_conf">
Section "InputClass"
Section "InputClass"
       Identifier "touchpad catchall"
       Identifier "touchpad catchall"
Строка 22: Строка 21:
</source>
</source>


Раскомментируйте строку с <code>Option "SHMConfig"</code> '''<tt>только на время</tt>''', пока подбираете параметры.
Раскомментируйте строку с <code>Option "SHMConfig"</code> '''<tt>только на время</tt>''', пока подбираете параметры, это небезопасная опция, позволяющая программам читать и редактировать данные других программ.


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


Для конфигурирования при загруженном synaptics применяется команда {{cmd|synclient}} либо {{cmd|xinput}}.
Для конфигурирования при загруженном synaptics применяется команда {{cmd|synclient}} либо {{cmd|xinput}}.


====synclient====
==== synclient ====
 
<tt>'''В последней (1.7.3) версии {{cmd|synclient}} нет опции ''-m'' , соответственно, настраивать тачпад возможно только методом подбора. Впрочем, в логах загрузки Х-сервера можно узнать производителя и отталкиваться от этого в тяжелых случаях.'''</tt>


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


<code>$ synclient -m 50</code>
<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
Строка 44: Строка 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''' — координаты гостевого устройства.


Если при запуске synclient лаконично отвечает
Если при запуске synclient лаконично отвечает
Строка 52: Строка 53:
  Can't access shared memory area. SHMConfig disabled?
  Can't access shared memory area. SHMConfig disabled?


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


====xinput====
==== xinput ====


Узнать текущее устройство :{{cmd|xinput list}}
Узнать текущее устройство :
 
<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)]
Строка 68: Строка 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. Теперь можно узнавать текущие и выставлять новые значения.


{{cmd|xinput list-props 14 | grep -i palm}}
<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>


Включаем определение ладони:
Включаем определение ладони:


{{cmd|xinput set-prop 14 "Synaptics Palm Detection" 0}}
<source source lang="text" highlight="1">$ xinput set-prop 14 "Synaptics Palm Detection" 1</source>


===Опции===
Уменьшаем значения (допустим, край ладони не определяется, а трех пальцевый клик все равно не используется), вместо имени опции можно использовать её номер:


Команда {{cmd|synclient -l}} выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для {{pkg|xinput}}, описанный в {{pkg|man synaptics}}.
<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 Dimensions (297):        7, 150</source>
 
==== syndaemon ====
 
В пакете {{pkg|xorg-drv-synaptics}} есть еще программа {{cmd|syndaemon}}, которая может отключать тачпад во время набора текста.
Пример запуска:
 
<source source lang="text" highlight="1">$ syndaemon -i 2 -d</source>
 
В данном варианте программа работает в фоновом режиме (-d), ждет 2 секунды после нажатия любой клавиши, если в течении этого времени нет нажатия следующей клавиши, включает тачпад (-i 2). Для отключения только кликов и скроллинга можно добавить опцию -t.
Также можно поставить пакет {{pkg|xorg-synaptics-touchfreeze}}, содержащий настроенный скрипт запуска {{cmd|syndaemon}}.
 
==== Опции ====
 
Команда {{cmd|synclient -l}} выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для {{pkg|xinput}} (и для {{path|xorg.conf.d}}), описанный в {{cmd|man synaptics}}.


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


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


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


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


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


''CircScrollTrigger'' одна из зон тачпада, начало движения на которой будет восприниматься как начало прокрутки. Варианты: 0 — все стороны, 1 — верхний край, 2 — верхний правый угол, 3 — правая сторона, 4 — нижний правый угол, 5 — нижний край, 6 — нижний левый угол, 7 — левая сторона, 8 — левый верхний угол. Целое число.
''CircScrollTrigger'' — одна из зон тачпада, начало движения на которой будет восприниматься как начало прокрутки. Варианты: 0 — все стороны, 1 — верхний край, 2 — верхний правый угол, 3 — правая сторона, 4 — нижний правый угол, 5 — нижний край, 6 — нижний левый угол, 7 — левая сторона, 8 — левый верхний угол. Целое число.


''SingleTapTimeout'' время, которое тачпад ждет после первого касания последующие, если их не следует, то генерируется одиночный клик. Увеличивайте, если не успеваете сделать двойной клик. Целое число.
''SingleTapTimeout'' — время, которое тачпад ждет после первого касания последующие, если их не следует, то генерируется одиночный клик. Увеличивайте, если не успеваете сделать двойной клик. Целое число.


''GrabEventDevice'' опция, нужная, если в конфигурационном файле опция '''protocol''' установлена в ''event''. При других значениях или при отсутствии опции ( дефолтном ''auto'') игнорируется. При изменении применится только после [пере]загрузки драйвера ''synaptics''. 0 или 1.
''GrabEventDevice'' — опция, нужная, если в конфигурационном файле опция '''protocol''' установлена в ''event''. При других значениях или при отсутствии опции (дефолтном ''auto-dev'') игнорируется. При изменении применится только после [пере]загрузки драйвера ''synaptics''. 0 или 1.


''TapAndDragGesture'' использовать ли перетаскивание мышью (двойной клик, причем второе касание не отпускается, аналог зажатой левой клавиши мышки). 0 или 1.
''TapAndDragGesture'' — использовать ли перетаскивание мышью (двойной клик, причем второе касание не отпускается, аналог зажатой левой клавиши мышки). 0 или 1.


''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"'''.
До ядра 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:


<code>$ cat /etc/X11/xorg.conf.d/10-synaptics.conf</code>
<source source lang="text" highlight="1">$ cat /etc/X11/xorg.conf.d/10-synaptics.conf
<source lang="xorg_conf">
Section "InputClass"
Section "InputClass"
         Identifier "touchpad catchall"
         Identifier "touchpad catchall"
Строка 172: Строка 194:
         Option "SoftButtonAreas"  "60% 0 82% 0 40% 59% 82% 0"
         Option "SoftButtonAreas"  "60% 0 82% 0 40% 59% 82% 0"
EndSection
EndSection
</source>
Для обработки касаний одним, двумя и тремя пальцами требуется добавить перед "EndSection" строки:
<source lang="text">
        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
</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}}
В Gnome есть собственный раздел настройки. При конфигурировании сторонними утилитами может случиться, что настройки не меняются, несмотря на отсутствие ошибок в параметрах. Дело в том, что Gnome перекрывает своими настройками любые другие. В таком случае нужно выключить плагин ''gnome-settings-daemon'', открыв {{cmd|gconf-editor}} и сняв галочку с ключа '''/apps/gnome_settings_daemon/plugins/mouse/active'''.
 
==== Встроенные в XFCE ====
 
{{pkg|XFCE}} также имеет собственный раздел настройки тачпадов, однако опций там минимум. Поэтому рекомендуется для полноценного тюнинга использовать Х-сервер/{{pkg|synclient}}.


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


===Встроенные в KDE===
После установки пакета {{pkg|kde4-synaptiks}} в параметрах KDE4 в разделе ''Оборудование'' -> ''Устройства ввода'' появится раздел «''Сенсорная панель''», где можно настраивать практически все возможные опции тачпада в удобном виде.


После установки пакета {{pkg|kde4-synaptiks}} в параметрах KDE4 в разделе ''Оборудование'' -> ''Устройства ввода'' появится раздел "''Сенсорная панель''", где можно настраивать практически все возможные опции тачпада в удобном виде.
=== Сохранение настроек ===


==Сохранение настроек==
Правильным способом является конфигурирование путем добавления опций Х-сервера.


Правильным способом является конфигурирование путем добавления опций Х-сервера.  
Если на ноутбуке несколько пользователей со своими предпочтениями, то различающиеся опции можно вписать в файл {{path|~/.xprofile}} в виде команды {{cmd|synclient option1&#61;param1 option2&#61;param2 option3&#61;param3}} либо положить файл с командами и опциями в каталог автозапуска настольного окружения.
Также можно применять команду {{cmd|xinput}} из одноименного пакета.


Если на ноутбуке несколько пользователей со своими предпочтениями, то различающиеся опции можно вписать в файл {{path|~/.xprofile}} в виде команды {{cmd| synclient option1=param1 option2=param2 option3=param3}} либо положить файл с командами и опциями в каталог автозапуска настольного окружения.
== См. так же ==
Также можно применять команду {{pkg|xinput}}.
*[[Участник: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
* http://wiki.debian.org/SynapticsTouchpad
* http://wiki.debian.org/SynapticsTouchpad
* http://bb.comp-house.ru/comp-house.repo/wiki/xorg-conf-synaptic-alps
* http://bb.comp-house.ru/comp-house.repo/wiki/xorg-conf-synaptic-alps
<references/>


[[Категория:Ноутбуки]]
[[Категория:Ноутбуки]]

Текущая версия от 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

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
FIXME:  описать для последней версии 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 из одноименного пакета.

См. так же

Ссылки