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

Материал из ALT Linux Wiki
(Форматирование, добавление разделов и ссылок.)
Строка 26: Строка 26:
==Начальное конфигурирование==
==Начальное конфигурирование==


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


Строка 49: Строка 53:


значит, либо опция SHMConfig не включена в файле 10-synaptics.conf, либо X-сервер не поддерживает данную опцию. В принципе, методом тыка за пару дней пользования можно подобрать необходимые параметры.
значит, либо опция SHMConfig не включена в файле 10-synaptics.conf, либо X-сервер не поддерживает данную опцию. В принципе, методом тыка за пару дней пользования можно подобрать необходимые параметры.
====xinput====
Узнать текущее устройство :{{cmd|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. Теперь можно узнавать текущие и выставлять новые значения.
{{cmd|xinput list-props 14 | grep -i palm}}
        Synaptics Palm Detection (296): 0
        Synaptics Palm Dimensions (297):        10, 199
Включаем определение ладони:
{{cmd|xinput set-prop 14 "Synaptics Palm Detection" 0}}


===Опции===
===Опции===


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


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


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


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


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


''CircScrollDelta'' -- угол вокруг центра тачпада, при прохождении которого генерируется одно вращение колесика мыши. Целое с дробной частью.
''GrabEventDevice'' — опция, нужная, если в конфигурационном файле опция '''protocol''' установлена в ''event''. При других значениях или при отсутствии опции ( дефолтном ''auto'') игнорируется. При изменении применится только после [пере]загрузки драйвера ''synaptics''. 0 или 1.
 
''TapAndDragGesture'' — использовать ли перетаскивание мышью (двойной клик, причем второе касание не отпускается, аналог зажатой левой клавиши мышки). 0 или 1.
 
''AreaLeftEdge'', ''AreaRightEdge'', ''AreaTopEdge'', ''AreaBottomEdge''  — опция для отключения части площади тачпада с левой/правой/верхней/нижней стороны соответственно. Если поддерживается сервером (версия больше 1.9), можно указывать в процентах от общей ширины/высоты. Целые числа.


==Особенности для разных протоколов==
==Особенности для разных протоколов==
Строка 153: Строка 192:
===Встроенные в Gnome===
===Встроенные в Gnome===


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


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


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


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


= Ссылки =
= Ссылки =
* 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://bb.comp-house.ru/comp-house.repo/wiki/xorg-conf-synaptic-alps


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

Версия от 18:37, 4 июня 2013

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

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

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

Драйвер synaptics

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

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

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

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

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

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

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

synclient

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

$ synclient -m 50

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

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

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

Can't access shared memory area. SHMConfig disabled?

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

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

       Synaptics Palm Detection (296): 0
       Synaptics Palm Dimensions (297):        10, 199

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

xinput set-prop 14 "Synaptics Palm Detection" 0

Опции

Команда synclient -l выдает на консоль все параметры с их значениями. Каждый параметр имеет свой аналог для xinput, описанный в 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) игнорируется. При изменении применится только после [пере]загрузки драйвера 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".

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

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

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

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

Тачпад ALPS

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

GUI

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

gsynaptics

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

gpointing-device-settings

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

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

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

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

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

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

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

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

Ссылки