Уже не первый раз сталкиваюсь с интересной особенностью — после чистой установки нового дистрибутива Linux, не важно какого конкретно, не работает «клик» мышкой по касанию тачпада. В принципе, это не сильно критично, ведь можно просто щелкать расположенными рядом клавишами, но лучше, конечно же, настроить, тем более, что делается это буквально парой команд в консоли.
Для начала, посмотрим список всех доступных устройств ввода. Для этого откройте удобный Вам терминал и наберите команду xinput
.
zhbert@zhbert-ThinkPad-T430:~$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech M705 id=9 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=13 [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)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=14 [slave keyboard (3)]
zhbert@zhbert-ThinkPad-T430:~$
Нас интересует в данном конкретном случае интересует строчка SynPS/2 Synaptics TouchPad
, а именно ее id
, представленный чуть правее — 12
.
Далее нужно посмотреть все доступные для настройки параметры выбранного устройства ввода. Для этого введем команду xinput list-props 12
:
zhbert@zhbert-ThinkPad-T430:~$ xinput list-props 12
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (165): 1
Coordinate Transformation Matrix (167): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (321): 0
libinput Tapping Enabled Default (322): 0
libinput Tapping Drag Enabled (323): 1
libinput Tapping Drag Enabled Default (324): 1
libinput Tapping Drag Lock Enabled (325): 0
libinput Tapping Drag Lock Enabled Default (326): 0
libinput Tapping Button Mapping Enabled (327): 1, 0
libinput Tapping Button Mapping Default (328): 1, 0
libinput Natural Scrolling Enabled (303): 0
libinput Natural Scrolling Enabled Default (304): 0
libinput Disable While Typing Enabled (329): 1
libinput Disable While Typing Enabled Default (330): 1
libinput Scroll Methods Available (305): 1, 1, 0
libinput Scroll Method Enabled (306): 1, 0, 0
libinput Scroll Method Enabled Default (307): 1, 0, 0
libinput Accel Speed (312): 0.000000
libinput Accel Speed Default (313): 0.000000
libinput Left Handed Enabled (317): 0
libinput Left Handed Enabled Default (318): 0
libinput Send Events Modes Available (288): 1, 1
libinput Send Events Mode Enabled (289): 0, 0
libinput Send Events Mode Enabled Default (290): 0, 0
Device Node (291): "/dev/input/event5"
Device Product ID (292): 2, 7
libinput Drag Lock Buttons (319): <no items>
libinput Horizontal Scroll Enabled (320): 1
zhbert@zhbert-ThinkPad-T430:~$
Нас интересует строчка libinput Tapping Enabled (321): 0
, которая говорит о том, что функция «тапа» в текущий момент отключена (0). Обратите внимание на число 321
в круглых скобках — это номер настройки, он нужен будет далее.
Переключим выбранную выше функцию в положение «Включено«, то есть выставим ей значение 1
. Для этого введем команду xinput set-prop 12 321 1
. В ней мы запускаем команду xinput
, указываем ей, что хотим установить параметр (set-prop
) и говорим какой конкретно — устройство №12, параметр 321, значение 1. После ввода команды проверяем еще раз все параметры устройства.
zhbert@zhbert-ThinkPad-T430:~$ xinput list-props 12
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (165): 1
Coordinate Transformation Matrix (167): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (321): 1
Все, устройство готово, клик тапом работает.
В указанном выше способе есть один нюанс: такое «ручное» включение работает только на текущий сеанс, и после перезагрузки будет снова сброшено в 0. Для решения этой проблемы есть два варианта:
- написать простой скрипт на bash, который будет после старта системы выполнять приведенную выше команду каждый раз после перезагрузки;
- добавить нужные настройки в системный конфигурационный файл.
Рассмотрим более подробно второй вариант. Создаем файл /etc/X11/xorg.conf.d/10-libinput.conf
. Добавляем в него следующие строки:
Section "InputClass"
Identifier "touchpad catchall"
Driver "libinput"
MatchProduct "SynPS/2 Synaptics TouchPad"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "Tapping" "true"
EndSection
Сохраняем и перезагужаем машину. В идеале, все должно работать. Но возможно и нюансы, если, например, в дистрибутиве снова что-то поломали или недочинили. Тогда нужно смотреть по ситуации.