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

Материал из ALT Linux Wiki
(Новая страница: «''' == Настройка тачпадов на ноутбуках == ''' Тачпады для ноутбуков бывают трех видов: Synaptics, Elan...»)
 
мНет описания правки
 
(не показано 14 промежуточных версий 4 участников)
Строка 1: Строка 1:
'''
Тачпад (''англ.'' touchpad) — маленькая сенсорная панель, располагается обычно на ближнем к пользователю краю открытого ноутбука. Используется для передвижения и кликов указателем мыши в отсутствие или в дополнение к самой мыши.
 
== Настройка тачпадов на ноутбуках ==
== Настройка тачпадов на ноутбуках ==
'''
Тачпады для ноутбуков бывают трех видов: Synaptics, Elantech и Alps.
Тачпады для ноутбуков бывают нескольких производителей. Наиболее распространены трех видов: Synaptics, Elantech и Alps.
Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее, оба последних вида тачпадов уже поддерживаются драйвером synaptics, разница в том, что alps-тачпад не передает количество пальцев, нажимающих его, поэтому жесты, требующие двух и более пальцев, практически не поддерживаются (ниже есть пример обхода).
Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее оба последних вида тачпадов уже поддерживаются драйвером synaptics — разница в том, что alps-тачпад не передает количество пальцев, нажимающих его; поэтому жесты, требующие двух и более пальцев, практически не поддерживаются (ниже есть [[Touchpad#Тачпад ALPS|пример]] обхода).


=='''Драйвер synaptics'''==
=== Драйвер synaptics ===
Данный драйвер содержится в пакете xorg-drv-synaptics.
Данный драйвер содержится в пакете {{pkg|xorg-drv-synaptics}}.
Для подключения тачпада через synaptics требуется создать конфигурационную секцию для X-сервера. В данный момент оптимально создать файл, назовем его 10-synaptic.conf, в папке /etc/X11/xorg/conf.d . Минимальное содержание данного файла:


<code>cat /etc/X11/xorg.conf.d/10.synaptic.conf</code>
Для подключения тачпада через synaptics может потребоваться создать конфигурационную секцию для X-сервера. Если «из коробки» не работает — в данный момент оптимально создать файл, назовем его 10-synaptics.conf, в каталоге {{path|/etc/X11/xorg/conf.d}}; минимальное содержание данного файла:
<source lang="xorg_conf">
 
<source source lang="text" highlight="1">$ cat /etc/X11/xorg.conf.d/10-synaptics.conf
Section "InputClass"
Section "InputClass"
       Identifier "ETPS/2 Elantech Touchpad"
       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>


Поле Identifier можно заполнить просто "touchpad", а можно взять более точное значение из логов Х-сервера:
Раскомментируйте строку с <code>Option "SHMConfig"</code> '''<tt>только на время</tt>''', пока подбираете параметры, это небезопасная опция, позволяющая программам читать и редактировать данные других программ.
<code>cat /var/log/Xorg.0.log| grep -i touchpad</code>
 
(II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/event9)
=== Начальное конфигурирование ===
(**) ETPS/2 Elantech Touchpad: Applying InputClass "evdev touchpad catchall"
 
(**) ETPS/2 Elantech Touchpad: Applying InputClass "ETPS/2 Elantech Touchpad"
Для конфигурирования при загруженном synaptics применяется команда {{cmd|synclient}} либо {{cmd|xinput}}.
(II) Using input driver 'synaptics' for 'ETPS/2 Elantech Touchpad'
(**) ETPS/2 Elantech Touchpad: always reports core events
(--) ETPS/2 Elantech Touchpad: x-axis range 0 - 2436
(--) ETPS/2 Elantech Touchpad: y-axis range 0 - 1044
(--) ETPS/2 Elantech Touchpad: pressure range 0 - 255
(--) ETPS/2 Elantech Touchpad: finger width range 0 - 15
(--) ETPS/2 Elantech Touchpad: buttons: left right double triple
(--) ETPS/2 Elantech Touchpad: touchpad found
(**) ETPS/2 Elantech Touchpad: always reports core events
(II) XINPUT: Adding extended input device "ETPS/2 Elantech Touchpad" (type: TOUCHPAD)
(**) ETPS/2 Elantech Touchpad: (accel) MinSpeed is now constant deceleration 2.5
(**) ETPS/2 Elantech Touchpad: MaxSpeed is now 1.75
(**) ETPS/2 Elantech Touchpad: AccelFactor is now 0.075
(**) ETPS/2 Elantech Touchpad: (accel) keeping acceleration scheme 1
(**) ETPS/2 Elantech Touchpad: (accel) acceleration profile 1
(**) ETPS/2 Elantech Touchpad: (accel) acceleration factor: 2.000
(**) ETPS/2 Elantech Touchpad: (accel) acceleration threshold: 4
(--) ETPS/2 Elantech Touchpad: touchpad found
(II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/mouse0)
Обращаем внимание на значение в кавычках:
(**) ETPS/2 Elantech Touchpad: Applying InputClass "ETPS/2 Elantech Touchpad"


==== synclient ====


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


Для конфигурирования при загруженном synaptics применяется команда synclient. Формат команды: ''synclient опция значение'' или для начального определения ''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
Строка 64: Строка 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 лаконично отвечает
Строка 72: Строка 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 ====
 
Узнать текущее устройство :
 
<source source lang="text" highlight="1">$ 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)] </source>
Id тачпада в данном случае равен 14. Теперь можно узнавать текущие и выставлять новые значения.
 
<source source lang="text" highlight="1">$ xinput list-props 14 | grep -i palm
        Synaptics Palm Detection (296): 0
        Synaptics Palm Dimensions (297):        10, 199</source>
 
Включаем определение ладони:
 
<source source lang="text" highlight="1">$ xinput set-prop 14 "Synaptics Palm Detection" 1</source>


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


Команда <code>synclient -l</code> выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для Х-сервера, который можно вписать для загрузки оптимальной конфигурации при старте графики, а если на ноутбуке несколько пользователей со своими предпочтениями, то различающиеся опции можно вписать в файл ~/.xprofile либо положить файл с опциями в папку автозапуска оконного менеджера.
<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}}.


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


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 или1.
''PalmDetect'' — при нажатии большой площади тачпада автоматически будет блокироваться любая активность указателя. Полезно тем, кто часто сбивает указатель мыши и курсор при наборе текста. 0 или 1.


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


===Тачпад Synaptics===
''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===
==== Тачпад 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>.
 
===== Программные кнопки =====
При наличии «двухкнопочного» кликпада (clickpad) Elantech возможно расширение его функциональности, поскольку нажатия «кнопок» отрабатываются программно; пример для добавления средней кнопки, весьма удобной для быстрой вставки буфера обмена при работе в X11:
 
<source source lang="text" highlight="1">$ 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
</source>
Для обработки касаний одним, двумя и тремя пальцами требуется добавить перед "EndSection" строки:
<source lang="text">
        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
</source>
 
==== Тачпад ALPS ====
 
У тачпада Alps невозможно (пока?) получить координаты двух-трех пальцев, соответственно, работают только одиночные жесты. Но все же, если принять во внимание координату '''w''' (ширину пятна контакта) и величину '''z''' (силу нажатия), то можно примерно определять, когда на поле тачпада находятся один, а когда больше пальцев. Для этого применяются опции ''EmulateTwoFingerMinW'' и ''EmulateTwoFingerMinZ'' соответственно, а также ''EmulateMidButtonTime''. Естественно, не все жесты работают, но двухпальцевый скроллинг идет как горизонтальный, так и вертикальный.
 
=== GUI ===
 
Существуют и графические утилиты для настройки тачпадов. Ниже приведены наиболее распространенные.
 
==== gsynaptics ====
 
{{pkg|gsynaptics}} на данный момент считается устаревшим и не рекомендуется для использования.
 
==== gpointing-device-settings ====
 
{{pkg|gpointing-device-settings}} пришел на замену {{pkg|gsynaptics}}, поддерживает гораздо больше опций и считается передовым на данный момент.
 
==== Встроенные в Gnome ====
{{Stub}} {{Fixme| описать для последней версии Gnome}}
В Gnome есть собственный раздел настройки. При конфигурировании сторонними утилитами может случиться, что настройки не меняются, несмотря на отсутствие ошибок в параметрах. Дело в том, что Gnome перекрывает своими настройками любые другие. В таком случае нужно выключить плагин ''gnome-settings-daemon'', открыв {{cmd|gconf-editor}} и сняв галочку с ключа '''/apps/gnome_settings_daemon/plugins/mouse/active'''.
 
==== Встроенные в XFCE ====
 
{{pkg|XFCE}} также имеет собственный раздел настройки тачпадов, однако опций там минимум. Поэтому рекомендуется для полноценного тюнинга использовать Х-сервер/{{pkg|synclient}}.


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


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


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


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


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


===Gpointing-device===
== См. так же ==
*[[Участник:Petr-akhlamov/EnableSynaptics|EnableSynaptics]]


===Встроенные в Gnome===
== Ссылки ==
* 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


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


<references/>


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

Текущая версия от 09: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 из одноименного пакета.

См. так же

Ссылки