Тачпад. Как отучить дергать курсором во время печати. (Краткий гайд.)
Добавлено: 16 сен 2019, 17:04
Наверное многие из тех кто на ноутбуках регулярно работают, сталкивались с бесячим поведением курсора, когда в процессе печати вы слегка задевали тачпад и тем самым сбивали фокус ввода. А то и выделяли печатаемый текст с последующим удалением. Руки то у все разные, не всегда получается при печати тачпад не цеплять.
К счастью, в линуксе об этом оказывается давно подумали, и существует небольшой демон который умеет делать очень простую вещь - мониторить клавиатуру, и как только начинается ввод - блокировать тачпад. Когда ввод завершен, по таймауту демон вновь разрешает пользоваться тачпадом.
В XFCE запуск этого демона автоматизируется через настройки мыши и тачпадов (соответствующая иконка в панели управления) Вот только есть маленький нюанс - опции там довольно урезанные, а главное - на некоторых моделях ноутбуков оно не работает по умолчанию. Потому - гайд с упором на консоль и ручной запуск.
Итак, за саму фичу отвечает syndaemon - подробности можно посмотреть в
И все бы хорошо и просто, да вот беда - не на всех ноутбуках оно работает сразу. Причем в интернете народ в основном шаманит перестановками пакетов относящихся к иксам, у некоторых даже начинает в результате работать, а причину найти не могут. А ларчик между тем открывается довольно просто, по крайней мере в части случаев.
В некоторых ноутбуках, например как в попавшем мне под руку Dell Insprion 15 3573 - тачпад видится системой как ДВА устройства. А syndaemon как и многие другие программы пытается взаимодействовать с первым из списка. Решение простое - надо заблокировать второе устройство, чтобы иксы его игнорировали. И все заработает. Делаем так:
На вышеозначенном ноутбуке получаем вот такую картину:
Как видите: имеем
Проще всего, IMHO, это сделать так:
создаем каталог
Пишем в файл такое содержимое:
Identifer - может быть любой, это просто метка.
А вот в MatchProduct надо вписать название ненужного нам второго устройства, которое мы получили из xinput.
После чего перегружаем иксы и радуемся - syndaemon должен нормально работать, как и настройка оного в XFCE.
К счастью, в линуксе об этом оказывается давно подумали, и существует небольшой демон который умеет делать очень простую вещь - мониторить клавиатуру, и как только начинается ввод - блокировать тачпад. Когда ввод завершен, по таймауту демон вновь разрешает пользоваться тачпадом.
В XFCE запуск этого демона автоматизируется через настройки мыши и тачпадов (соответствующая иконка в панели управления) Вот только есть маленький нюанс - опции там довольно урезанные, а главное - на некоторых моделях ноутбуков оно не работает по умолчанию. Потому - гайд с упором на консоль и ручной запуск.
Итак, за саму фичу отвечает syndaemon - подробности можно посмотреть в
man syndaemon
, а для примера: syndaemon -i 0.8 -k -d
запустит программу в режиме демона, с задержкой активации тачпада 0.8 секунды после нажатия последней клавиши. И игнорированием клавиш командных модификаторов (CTRL, Alt и т.д. не будут вызывать блокировку тачпада сами по себе.)И все бы хорошо и просто, да вот беда - не на всех ноутбуках оно работает сразу. Причем в интернете народ в основном шаманит перестановками пакетов относящихся к иксам, у некоторых даже начинает в результате работать, а причину найти не могут. А ларчик между тем открывается довольно просто, по крайней мере в части случаев.
В некоторых ноутбуках, например как в попавшем мне под руку Dell Insprion 15 3573 - тачпад видится системой как ДВА устройства. А syndaemon как и многие другие программы пытается взаимодействовать с первым из списка. Решение простое - надо заблокировать второе устройство, чтобы иксы его игнорировали. И все заработает. Делаем так:
xinput
На вышеозначенном ноутбуке получаем вот такую картину:
Код: Выделить всё
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Cypress PS/2 to USB Adapter id=10 [slave pointer (2)]
⎜ ↳ DELL083E:00 04F3:3088 Touchpad id=12 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Cypress PS/2 to USB Adapter id=9 [slave keyboard (3)]
↳ Integrated Webcam: Integrated W id=11 [slave keyboard (3)]
↳ Intel HID events id=13 [slave keyboard (3)]
↳ Dell WMI hotkeys id=14 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=15 [slave keyboard (3)]
DELL083E:00 04F3:3088 Touchpad
и ETPS/2 Elantech Touchpad
. В данном ноутбуке рабочий для иксов - первый. Второй, который ETPS/2 Elantech Touchpad - лишний, и ломает нам всю малину. Будем отключать. (На другой машине нужный вариант придется искать экспериментальным методом, благо откатывается все легко, а худшее что может случится - до отката не будет работать тачпад. При наличии внешней мыши - никаких проблем вообще.)Проще всего, IMHO, это сделать так:
создаем каталог
/etc/X11/xorg.conf.d
, а в нем файл /etc/X11/xorg.conf.d/11-disable-second-pad.conf
.Пишем в файл такое содержимое:
Код: Выделить всё
Section "InputClass"
Identifier "ETPS/2 Elantech Touchpad blacklist"
MatchProduct "ETPS/2 Elantech Touchpad"
Option "Ignore" "on"
EndSection
А вот в MatchProduct надо вписать название ненужного нам второго устройства, которое мы получили из xinput.
После чего перегружаем иксы и радуемся - syndaemon должен нормально работать, как и настройка оного в XFCE.