- Touchpad
- Содержание
- Настройка тачпадов на ноутбуках [ править ]
- Драйвер synaptics [ править ]
- Начальное конфигурирование [ править ]
- synclient [ править ]
- xinput [ править ]
- syndaemon [ править ]
- Опции [ править ]
- Особенности для разных протоколов [ править ]
- Тачпад Synaptics [ править ]
- Тачпад Elantech [ править ]
- Программные кнопки [ править ]
- Тачпад ALPS [ править ]
- GUI [ править ]
- gsynaptics [ править ]
- gpointing-device-settings [ править ]
- Встроенные в Gnome [ править ]
- Встроенные в XFCE [ править ]
- Встроенные в KDE [ править ]
- Сохранение настроек [ править ]
- MNorin.com
- Блог про Linux, Bash и другие информационные технологии
- Настройка тачпада в Linux (Synaptics TouchPad)
- Условия
- Программа synclient
- Опции и их назначение
- Сохранение настроек
Touchpad
Тачпад (англ. touchpad) — маленькая сенсорная панель, располагается обычно на ближнем к пользователю краю открытого ноутбука. Используется для передвижения и кликов указателем мыши в отсутствие или в дополнение к самой мыши.
Содержание
Настройка тачпадов на ноутбуках [ править ]
Тачпады для ноутбуков бывают нескольких производителей. Наиболее распространены трех видов: Synaptics, Elantech и Alps. Synaptics — открытый протокол, elantech и alps — закрытый. Тем не менее оба последних вида тачпадов уже поддерживаются драйвером synaptics — разница в том, что alps-тачпад не передает количество пальцев, нажимающих его; поэтому жесты, требующие двух и более пальцев, практически не поддерживаются (ниже есть пример обхода).
Драйвер synaptics [ править ]
Данный драйвер содержится в пакете xorg-drv-synaptics .
Для подключения тачпада через synaptics может потребоваться создать конфигурационную секцию для X-сервера. Если «из коробки» не работает — в данный момент оптимально создать файл, назовем его 10-synaptics.conf, в каталоге /etc/X11/xorg/conf.d ; минимальное содержание данного файла:
Раскомментируйте строку с Option «SHMConfig» только на время, пока подбираете параметры, это небезопасная опция, позволяющая программам читать и редактировать данные других программ.
Начальное конфигурирование [ править ]
Для конфигурирования при загруженном synaptics применяется команда synclient либо xinput .
synclient [ править ]
В последней (1.7.3) версии synclient нет опции -m , соответственно, настраивать тачпад возможно только методом подбора. Впрочем, в логах загрузки Х-сервера можно узнать производителя и отталкиваться от этого в тяжелых случаях.
Формат команды: synclient опция значение или для начального определения — synclient -m время (в мсек) . Запускаете онлайн-слежение и производите разные жесты на тачпаде (касания, передвижение одного/нескольких пальцев)
Здесь time — время от начала работы программы, x, y — координаты нажатия от верхнего левого угла, z — сила нажатия, f — количество распознанных пальцев,w — ширина (диаметр) пятна нажатия, l, r, u, d, m, multi — соответственно левая, правая, верхняя, нижняя, средняя и многофункциональная дополнительные кнопки тачпада (полосы прокрутки?), единица соответствует нажатию, далее идут параметры для подключаемого устройства (guest device): gl, gm, gr — левая, средняя и правая кнопки, gdx, gdy — координаты гостевого устройства.
Если при запуске synclient лаконично отвечает
значит, либо опция SHMConfig не включена в файле 10-synaptics.conf, либо X-сервер не поддерживает данную опцию. В принципе, за пару дней пользования можно и вслепую подобрать необходимые параметры.
xinput [ править ]
Узнать текущее устройство :
Id тачпада в данном случае равен 14. Теперь можно узнавать текущие и выставлять новые значения.
$ xinput list-props 14 | grep -i palm
Включаем определение ладони :
$ xinput set-prop 14 «Synaptics Palm Detection» 1
Уменьшаем значения (допустим, край ладони не определяется, а трех пальцевый клик все равно не используется), вместо имени опции можно использовать её номер:
$ xinput set-prop 14 297 7 150
$ xinput list-props 14 | grep -i palm
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:
Для обработки касаний одним, двумя и тремя пальцами требуется добавить перед «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.
Встроенные в XFCE [ править ]
XFCE также имеет собственный раздел настройки тачпадов, однако опций там минимум. Поэтому рекомендуется для полноценного тюнинга использовать Х-сервер/ synclient .
Встроенные в KDE [ править ]
После установки пакета kde4-synaptiks в параметрах KDE4 в разделе Оборудование -> Устройства ввода появится раздел «Сенсорная панель», где можно настраивать практически все возможные опции тачпада в удобном виде.
Сохранение настроек [ править ]
Правильным способом является конфигурирование путем добавления опций Х-сервера.
Если на ноутбуке несколько пользователей со своими предпочтениями, то различающиеся опции можно вписать в файл
/.xprofile в виде команды synclient option1=param1 option2=param2 option3=param3 либо положить файл с командами и опциями в каталог автозапуска настольного окружения. Также можно применять команду xinput из одноименного пакета.
Источник
MNorin.com
Блог про Linux, Bash и другие информационные технологии
Настройка тачпада в Linux (Synaptics TouchPad)
Настройка тачпада в Linux предполагает, что драйвер тачпада позволяет делать гораздо больше, чем с ним обычно делают. Например, можно включить или выключить скроллинг двумя пальцами (как вертикальный, так и горизонтальный), включить клик одним, двумя, тремя пальцами по тачпаду, изменить направление скроллинга (если вы, например, привыкли к скроллингу на планшете). Давайте посмотрим, как же можно тонко настроить тачпад, причем из командной строки.
Условия
Прежде всего нужно обговорить, если вы упустили это в заголовке, что речь идет о настройке тачпадов, пожалуй, самого известного производителя — Synaptics. За поддержку тачпадов Synaptics в Debian GNU/Linux отвечает пакет xserver-xorg-input-synaptics. Соответственно, он должен быть установлен. Обычно он ставится по умолчанию, но проверить лишним не будет. Это можно сделать командой
И, если такой пакет у вас не установлен, а тачпад Synaptics есть, то этот пакет надо будет поставить командой
В других дистрибутивах название пакета не отличается принципиально, в некоторых даже полностью совпадает.
Программа synclient
Эта программа — основной инструмент тонкой настройки сенсорной панели (тачпада) Synaptics. Synclient использует интерфейс командной строки, формат команды следующий:
Как видите, длинных (GNU) опций нет, только короткие (Posix), и то совсем немного.
-h, -? | Вывод справки |
-V | Вывод версии программы |
-l | Вывод всех используемых опций и их значений |
var1=value1 | Задать опции с названием var1 ее новое значение value1. Программа может в одной строке принимать сразу много разных опций. После названия переменной перед знаком равенства и после знака равенства пробелов быть не должно |
Опции и их назначение
Вот список доступных опций с описанием:
LeftEdge | Координаты левой стороны тачпада |
RightEdge | Координаты правой стороны тачпада |
TopEdge | Координаты верхней стороны тачпада |
BottomEdge | Координаты нижней стороны тачпада |
FingerLow | Минимальная степень нажатия. Если давление становится ниже, чем указанное, считается, что произошло отпускание |
FingerHigh | Максимальная степень нажатия. Если давление стало выше указанного, значит произошло нажатие |
MaxTapTime | Таймаут, до истечения которого касание считается одиночным нажатием. После истечения интервала считается, что происходит удержание |
MaxTapMove | Максимальное движение пальца, допустимое при клике по тачпаду. Его значение отбрасывается и не считается перемещением. |
MaxDoubleTapTime | Аналогично MaxTapTime, но для двойного клика |
SingleTapTimeout | Когда вы делаете одно касание, в течение данного таймаута ожидается, что последует следующее касание. Если в течение указанного временного интервала повторное касание не произошло, считается, что произошло одно касание |
ClickTime | Продолжительность клика. То есть, длительность касания, интервал времени, в течение которого засчитывается клик, если вы в пределах этого интервала коснулись, а затем подняли палец |
EmulateMidButtonTime | Интервал времени, в течение которого обрабатывается нажатие на среднюю кнопку мыши, которое может быть настроено на нажатие одним, двумя или тремя пальцами |
EmulateTwoFingerMinZ | Минимальный уровень давление, который будет определен как касание двумя пальцами |
EmulateTwoFingerMinW | Минимальное расстояние между точками нажатия, которое будет определено как касание двумя пальцами |
VertScrollDelta | Расстояние, на которое надо передвинуть палец для вертикального скроллинга |
HorizScrollDelta | Расстояние, на которое надо передвинуть палец для горизонтального скроллинга |
VertEdgeScroll | Включить вертикальный скроллинг при проведении пальцем вдоль правого края тачпада (1 — включить, 0 — выключить) |
HorizEdgeScroll | Включить горизонтальный скроллинг при проведении пальцем вдоль верхнего края тачпада (1 — включить, 0 — выключить) |
CornerCoasting | Опция, которая используется при скроллинге проведением пальца вдоль правой стороны тачпада. Она определяет, использовать ли продолжение скроллинга после того, как палец дошел до правого нижнего угла. |
VertTwoFingerScroll | Включить вертикальный скроллинг двумя пальцами (1 — включить, 0 — выключить) |
HorizTwoFingerScroll | Включить горизонтальный скроллинг двумя пальцами (1 — включить, 0 -выключить) |
MinSpeed | Минимальная скорость движения курсора |
MaxSpeed | Максимальная скорость движения курсора. Если максимальная скорость равна минимальной, то ускорения движения курсора не будет |
AccelFactor | Коэффициент ускорения курсора. Чем он больше, тем быстрее скорость увеличивается с минимальной до максимальной |
TouchpadOff | Выключить тачпад (0 — тачпад включен, 1 — тачпад выключен, любые значения больше 1 — включено только перемещение курсора) |
LockedDrags | При перетаскивании касаниями (tap-and-drag), если эта опция выставлена в 1, отпускание кнопки мыши происходит только после дополнительного клика. Это позволяет отрывать палец от поверхности тачпада до окончания перетаскивания |
LockedDragTimeout | Опция, определяющая, по истечении какого временного интервала после отрывания пальца от тачпада автоматически закончить перетаскивание касаниями. |
RTCornerButton | Какую кнопку мыши эмулировать при нажатии на правый верхний угол тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
RBCornerButton | Какую кнопку мыши эмулировать при нажатии на правый нижний угол тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
LTCornerButton | Какую кнопку мыши эмулировать при нажатии на левый верхний угол тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
LBCornerButton | Какую кнопку мыши эмулировать при нажатии на левый нижний угол тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
TapButton1 | Какую кнопку мыши эмулировать при касании одним пальцем не у края тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
TapButton2 | Какую кнопку мыши эмулировать при касании двумя пальцами не у края тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
TapButton3 | Какую кнопку мыши эмулировать при касании тремя пальцамине у края тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
ClickFinger1 | Какую кнопку мыши эмулировать при касании одним пальцем в левой стороне тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
ClickFinger2 | Какую кнопку мыши эмулировать при касании двумя пальцами в левой стороне тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
ClickFinger3 | Какую кнопку мыши эмулировать при касании тремя пальцами в левой стороне тачпада (0 — отключено, 1 — левая кнопка, 2 — средняя кнопка, 3 — правая кнопка) |
CircularScrolling | Интересная возможность — круговая прокрутка. Это работает следующим образом: вы делаете круговые движения по тачпаду, и таким образом заменяете прокрутку колесиком мыши. По часовой стрелке — прокрутка вниз, против часовой стрелки — прокрутка вверх. 0 — выключено, 1 — включено |
CircScrollDelta | Угол смещения пальца относительно центра тачпада при прохождении которого генерируется такое же системное событие, как при прокрутке колесика на одно деление |
CircScrollTrigger | Область тачпада, при начале движения по которой будет активироваться скроллинг при использовании круговой прокрутки. 0 — любая сторона тачпада 1 — верхняя сторона 2 — верхний правый угол 3 — правая сторона 4 — правый нижний угол 5 — нижняя сторона 6 — нижний левый угол 7 — левая сторона 8 — левый верхний угол |
CircularPad | Если эта опция выставлена в 1, то область тачпада определяется не как прямоугольник, а как эллипс, вписанный в стороны тачпада |
PalmDetect | Определять нажатие ладонью. Эта опция полезна, когда вы печатаете на клавиатуре и случайно нажимаете частью ладони на тачпад. Если она включена, то при нажатии на большую площадь движение курсора будет выключено. 0 — выключено, 1 — включено |
PalmMinWidth | Минимальная ширина касания, при которой касание будет определено как касание ладонью. |
PalmMinZ | Минимальное давление, при котором будет определено касание ладонью |
CoastingSpeed | Скорость, с которой должны генерироваться события скроллинга, чтобы поддерживалось продолжение скроллинга при достижении пальцем стороны тачпада |
CoastingFriction | Количество событий скроллинга делёное на секунду в квадрате, на которые будет снижаться скорость скроллинга при достижении стороны тачпада |
PressureMotionMinZ | Минимальное давление пальца на тачпад, при котором будет происходить определение движения по тачпаду |
PressureMotionMaxZ | Максимальное давление на тачпад, при котором будет определяться движение пальцем по тачпаду |
PressureMotionMinFactor | Минимальный множитель усиления коэффициента давления при определении движения пальцем |
PressureMotionMaxFactor | Максимальный множитель усиления коэффициента давления при определении движения пальцем |
GrabEventDevice | Эта опция имеет смысл только при использовании событий устройств в ядре linux 2.6. При использовании других протоколов эта опция игнорируется. Если опция выставлена в 1, драйвер будет эксклюзивно захватывать устройство для обработки событий с него. |
TapAndDragGesture | Включить перетаскивание при помощи двойного касания (первое короткое, второе постоянное) аналогично перетаскиванию левой кнопкой мыши (0 — выключено, 1 — включено) |
AreaLeftEdge | Координата с левой стороны, любые движения и клики слева от которой |
AreaRightEdge | Включить (1) или выключить (0) область вдоль правой стороны тачпада |
AreaTopEdge | Включить (1) или выключить (0) область вдоль верхней стороны тачпада |
AreaBottomEdge | Включить (1) или выключить (0) область вдоль нижней стороны тачпада |
HorizHysteresis | Минимальное аппаратное расстояние по горизонтали, необходимое для генерации события движения. Может указываться в процентах |
VertHysteresis | Минимальное аппаратное расстояние по вертикали, необходимое для генерации события движения. Может указываться в процентах |
ClickPad | Является ли устройство клик-падом, то есть панелью без аппаратных кнопок |
Сохранение настроек
Для сохранения настроек тачпада придется вызывать команду synclient удобным для вас способом. Для этого можно сделать скрипт, который будет вызывать эту команду, и который будет запускаться при входе в учетную запись, например.
Вот как это сделать в LXDE. Создаем скрипт /home/user/bin/touchpad следующего содержания:
После этого создаем файл /home/user/.config/autostart/touchpad.desktop
И при входе в систему настройки тачпада должны подгрузиться автоматически.
Источник