Правильное распознавание большого пальца и ладони с помощью тачпада с помощью libinput

23

Итак, libinput приближается к своему первому стабильному выпуску с кандидатом на выпуск.

К тому же, добавлена ​​надлежащая поддержка обнаружения большого пальца / ладони на сенсорных панелях, а также поддержка жестов смахивания и сдавливания, что очень не хватает в Linux для мультитач-совместимых ноутбуков.

Может кто-нибудь дать хорошую инструкцию, как установить его на Ubuntu 15.04

Как я полагаю, какое-то время мы не увидим его по умолчанию в установке Ubuntu.

Tomodachi
источник
Не так много внимания на этот вопрос. Честно говоря , не знаю почему.
VRR
Определение ладони зависит от драйвера сенсорной панели ядра и может быть настроено в xorg-synaptics. Какой тачпад у вас есть?
Pilot6
@ Pilot6 пакет доступен для скачивания, но файл readme не содержит конкретных инструкций по компиляции в ядро.
RCF
@ RCF-U15.04 libinput- приложение из пользовательского пространства. Это не имеет ничего общего с ядром. Он просто использует события, о которых сообщает ядро.
Pilot6
@tomodachi Если вы хотите настроить детектор ладони в Ubuntu, вы можете задать другой вопрос, и я вам помогу.
Pilot6

Ответы:

14

Это как установить libinput в Ubuntu.

  1. Установите несколько необходимых пакетов

    sudo apt-get install git build-essential autoconf automake pkg-config libtool
    sudo apt-get install libmtdev1 libmtdev-dev libudev-dev libevdev-dev xutils-dev libwacom-dev
    
  2. Установить xserver-xorg-dev. Для 14.04.3 это может быть xserver-xorg-dev-lts-vivid. Быть осторожен. Вам необходимо проверить, какой xserver-xorgпакет установлен.

    sudo apt-get install xserver-xorg-dev
    
  3. Клон libinputа xf86-input-libinput.

    git clone git://anongit.freedesktop.org/git/wayland/libinput
    git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-libinput
    
  4. Сборка и установка.

    cd libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
    cd ../xf86-input-libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
  5. Добавьте в conf/90-libinput.confстроку файла Option "Tapping" "True"перед EndSectionразделом сенсорной панели.

  6. Скопируйте файл конфигурации, чтобы включить libinput.

    sudo cp conf/90-libinput.conf /usr/share/X11/xorg.conf.d/
    

Выйдите из системы и войдите в систему.

Вы увидите, что libinputиспользуется при запуске xinput list-props <your_touchpad_id>.

Если вы не любите использовать libinput, вы всегда можете отключить его

sudo rm /usr/share/X11/xorg.conf.d/90-libinput.conf

Я только что установил его, теперь выясняю, как настроить распознавание ладони. Похоже, что он включен по умолчанию, но я пока не совсем понимаю, как он использует ширину и давление, сообщаемые ядром.

Похоже, что в настоящее время нет серьезных преимуществ использования libinputв Ubuntu.

xf86-input-libinputпросто оборачивает это в Xorg и ничего больше. Поэтому дополнительные жесты не поддерживаются. По крайней мере, я не знаю, если они делают. Думаю, Уэйленд или Мир будут более способными.

После некоторого тестирования я нашел преимущество. Существует проблема, связанная с тем, xorg-synapticsчто, когда вы помещаете палец в область кнопок, вы не можете использовать другой палец для перемещения курсора. Это неудобно для людей, которые любят использовать аппаратные кнопки для нажатия. Об этой проблеме много раз сообщалось как об ошибке.

У libinputэтой проблемы нет вообще.

Это было весело, чтобы проверить. Спасибо за вопрос.

Pilot6
источник
@ Pilot6 Какой смысл в "дополнительных жестах не поддерживается" ?
VRR
@VRR Дело в том, что Ubuntu DE по умолчанию не поддерживает много жестов. Просто наличие libinputне меняет это. 1,2,3 пальца работают из коробки. Обнаружение Palm потенциально более умное, но кажется, что оно не поддерживает сенсорные панели, сообщающие только ширину. Новые модели не поддерживают давление, потому что они работают как сенсорный экран и т. Д.
Pilot6
Я думаю, что немного испортил вещи .. во время процесса .. теперь я получаю черный экран после загрузки .. но нет экрана входа в систему lightdm .. это может быть связано с xorg .. Я знаю более старый номер версии .. может кто-нибудь сказать мне процесс, что делать сейчас .. Я могу добраться до tty
догадка
Если у вас есть проблемы, просто удалите /usr/share/X11/xorg.conf.d/99-libinput.conf. sudo rm /usr/share/X11/xorg.conf.d/99-libinput.conf
Pilot6
Это не решение проблемы. Можете ли вы упомянуть кое-что о xserver-xorg-dev ...., где вы также упомянули ... будьте осторожны ... Как вернуться к более старой версии ...
догадка
25

Для Ubuntu 15.10+ вы можете установить libinput( коварный , дружественный , yakkety ) через apt:

sudo apt install xserver-xorg-input-libinput

Мне все еще нужно было отредактировать файл конфигурации, чтобы включить прослушивание, я предполагаю, что когда Unity поглощает libinput, он будет выставлять это через настройки панели управления (здесь я использовал vi, вы можете использовать gedit или что угодно):

Отредактируйте следующий файл (проверено 16.04.2016-4-14 и 16.10 2016-10-14):

sudo vi /usr/share/X11/xorg.conf.d/90-libinput.conf 

Настройте раздел «тачпад», чтобы добавить его, Option "tapping" "True"и Option "DisableWhileTyping" "True"если вы предпочитаете следующее:

Section "InputClass"
    Identifier "libinput touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "Tapping" "True"
    Option "DisableWhileTyping" "True"
EndSection

Выйдите, войдите .. наслаждайтесь! :)

JimB
источник
В libinput нет опции «PalmDetection», DisableWhileTyping включен по умолчанию. Таким образом, нет необходимости добавлять все это.
Pilot6
Скорректированы и удалены оба варианта. Я оставил «Нажатие», потому что он не включен по умолчанию.
ДжимБ
А также я не рекомендую использовать libinput для всех устройств. В моем случае клавиатура отстает, поэтому я выбрал событие тачпада event5и записал его в этот файл.
Pilot6
@ Pilot6 - не могли бы вы рассказать подробнее о том, как использовать libinput только для сенсорной панели?
BeeOnRope
4
Похоже, вы также можете добавить Option "AccelSpeed" "-0.5", где значение может быть плавающим от -1 (более медленный курсор) до +1 (более быстрый курсор). Вы также можете поэкспериментировать с этим и другими значениями, используя xinput. сначала найдите идентификатор, запустив его xinput, затем, если ваш идентификатор равен 12, вы можете сделать xinput list-props 12список всех реквизитов. если вы хотите изменить его, получите int для реквизита (например, libinput Accel Speed ​​(281): -0.500000), тогда вы можете xinput set-prop 12 281 -0.4изменить аксел на -0.4.
David784
1

У меня была похожая проблема на Lubuntu 17. Я попытался установить libinput и отредактировать файл .conf безрезультатно.

Но затем я увидел пост @ Pilot6 выше об использовании xinput для проверки того, что libinput активен (также было бы неплохо узнать, по какому критерию нужно проверять, но я отвлекся).

Я проверил свой xinput с xinput list-props 14(может быть другое число в вашем случае).

который дал мне synapticsтачпад.

В списке была опция для обнаружения ладони с ассоциированным с ней номером (316).

Поэтому я использовал xinput set-prop 14 316 1для активации обнаружения ладони. И это наконец работает.

CodeMonkey
источник