Как включить «клик» касанием по тачпаду в Linux | Zhbert’s Home
Zhbert's Home
Домашняя страничка Zhbert'а

Как включить «клик» касанием по тачпаду в Linux

Уже не первый раз сталкиваюсь с интересной особенностью — после чистой установки нового дистрибутива 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

Сохраняем и перезагужаем машину. В идеале, все должно работать. Но возможно и нюансы, если, например, в дистрибутиве снова что-то поломали или недочинили. Тогда нужно смотреть по ситуации.