Prawidłowe wykrywanie kciuka i dłoni touchpada z libinput

23

Więc libinput zbliża się do pierwszego stabilnego wydania z kandydatem do wydania

Co zapewnia odpowiednią obsługę wykrywania kciuka / dłoni na tabliczkach dotykowych oraz obsługę gestów przesuwania i szczypania, czego w Linuksie bardzo brakuje w laptopach obsługujących technologię Multi Touch.

Czy ktoś może podać dobrą instrukcję instalacji na Ubuntu 15.04

Ponieważ uważam, że przez pewien czas nie będziemy postrzegać go jako domyślnego w instalacji Ubuntu.

tomodachi
źródło
Niewiele uwagi poświęca temu pytaniu. Szczerze mówiąc nie wiem dlaczego.
VRR
Wykrywanie dłoni zależy od sterownika tabliczki dotykowej jądra i może być również ustawione w xorg-synaptics. Jaki masz touchpad?
Pilot6
@ Pilot6 pakiet jest dostępny do pobrania, ale plik readme nie zawiera szczegółowych instrukcji dotyczących kompilacji do jądra.
RCF
@ RCF-U15.04 libinputto aplikacja przestrzeni użytkownika. Nie ma to nic wspólnego z jądrem. Po prostu wykorzystuje zdarzenia zgłoszone przez jądro.
Pilot6
@tomodachi Jeśli chcesz dobrze skonfigurować wykrywanie dłoni w Ubuntu, możesz zadać kolejne pytanie, a ja ci pomogę.
Pilot6

Odpowiedzi:

14

Oto jak zainstalować libinput w Ubuntu.

  1. Zainstaluj niektóre potrzebne pakiety

    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. Zainstaluj xserver-xorg-dev. Może to być 14.04.3 xserver-xorg-dev-lts-vivid. Bądź ostrożny. Musisz sprawdzić, który xserver-xorgpakiet jest zainstalowany.

    sudo apt-get install xserver-xorg-dev
    
  3. Klon libinputi xf86-input-libinput.

    git clone git://anongit.freedesktop.org/git/wayland/libinput
    git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-libinput
    
  4. Zbuduj i zainstaluj.

    cd libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
    cd ../xf86-input-libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
  5. Dodaj conf/90-libinput.confciąg pliku Option "Tapping" "True"przed EndSectionsekcją touchpada.

  6. Skopiuj plik konfiguracyjny, aby włączyć libinput.

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

Wyloguj się i zaloguj.

Zobaczysz, że libinputjest używany przez uruchomienie xinput list-props <your_touchpad_id>.

Jeśli nie lubisz używać libinput, zawsze możesz ją wyłączyć przez

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

Właśnie go zainstalowałem, teraz zastanawiam się, jak skonfigurować wykrywanie dłoni. Wygląda na to, że jest domyślnie włączony, ale nie do końca rozumiem, w jaki sposób używa szerokości i ciśnienia zgłaszanego przez jądro.

Wygląda na to, że obecnie nie ma większych zalet korzystania libinputz Ubuntu.

xf86-input-libinputpo prostu pakuje to w Xorg i nic więcej. Dlatego dodatkowe gesty nie są obsługiwane. Przynajmniej nie wiem czy tak. Chyba Wayland lub Mir będą bardziej zdolni.

Po kilku testach znalazłem przewagę. Występuje problem xorg-synapticspolegający na tym, że po nałożeniu palca na obszar przycisku nie można użyć innego palca, aby przesunąć kursor. Jest to niewygodne dla osób, które lubią używać przycisków sprzętowych do klikania. Ten problem był wielokrotnie zgłaszany jako błąd.

W libinputogóle nie ma tego problemu.

Testowanie było fajne. Dzięki za pytanie.

Pilot 6
źródło
@ Pilot6 Jaki jest sens „dodatkowe gesty nie są obsługiwane” ?
VRR
@VRR Chodzi o to, że domyślny system Ubuntu DE nie obsługuje wielu gestów. Samo libinputto nie zmienia. 1,2,3 dotknięcia palcami działają od razu po wyjęciu z pudełka. Wykrywanie dłoni jest potencjalnie bardziej inteligentne, ale wydaje się, że nie obsługuje touchpadów zgłaszających tylko szerokość. Nowe modele nie obsługują nacisku, ponieważ działają jak ekran dotykowy itp.
Pilot6
Wydaje mi się, że trochę popsułem różne rzeczy .. podczas procesu .. teraz pojawia się czarny ekran po uruchomieniu .. ale brak ekranu logowania lightdm .. może to być spowodowane xorgiem ... Znam starszy numer wersji .. mogę ktoś mi powie proces, co mam teraz zrobić. Mogę dostać się do tty
przeczucie
Jeśli masz problemy, po prostu usuń /usr/share/X11/xorg.conf.d/99-libinput.conf. sudo rm /usr/share/X11/xorg.conf.d/99-libinput.conf
Pilot6,
To nie rozwiązuje problemu. Czy możesz wspomnieć coś o xserver-xorg-dev .... gdzie również wspomniałeś ... bądź ostrożny ... Jak przywrócić starszą wersję ...
przeczucie
25

Na Ubuntu 15.10+ można zainstalować libinput( przebiegły , xenial , yakkety ) poprzez apt:

sudo apt install xserver-xorg-input-libinput

Nadal musiałem edytować plik konfiguracyjny, aby włączyć stukanie, zakładam, że Unity wchłania libinput, ujawni to poprzez ustawienia panelu sterowania (użyłem tutaj vi, możesz użyć gedit lub cokolwiek chcesz):

Edytuj następujący plik (testowany 16.04 2016-4-14 i 16.10 2016-10-14):

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

Dostosuj sekcję „touchpad”, aby dodać, Option "tapping" "True"a Option "DisableWhileTyping" "True"jeśli wolisz takie zachowanie:

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

Wyloguj się, zaloguj się .. ciesz się! :)

JimB
źródło
W libinput nie ma opcji „PalmDetection”, DisableWhileTyping jest domyślnie włączony. Nie ma więc potrzeby dodawać tego wszystkiego.
Pilot6
Dostosowano i usunięto obie opcje. Zostawiłem „Tapping” włączony, ponieważ domyślnie nie jest włączony.
JimB
A także nie polecam używać libinput dla wszystkich urządzeń. Klawiatura jest opóźniona w moim przypadku, więc wybrałem zdarzenie touchpada w moim przypadku event5i zapisałem je w tym pliku.
Pilot6
@ Pilot6 - czy możesz podać więcej szczegółów na temat używania libinput tylko na touchpad?
BeeOnRope
4
Wygląda na to, że możesz również dodać Option "AccelSpeed" "-0.5", gdzie wartością może być liczba zmiennoprzecinkowa od -1 (wolniejszy kursor) do +1 (szybszy kursor). Możesz także eksperymentować z tą i innymi wartościami za pomocą xinput. najpierw znajdź identyfikator, uruchamiając xinput, a następnie jeśli masz identyfikator 12, możesz zrobić xinput list-props 12listę wszystkich rekwizytów. jeśli chcesz je zmienić, uzyskaj int dla rekwizytu (np. libinput Accel Speed ​​(281): -0.500000), wtedy możesz zrobić, xinput set-prop 12 281 -0.4aby zmienić accel na -0.4.
David784,
1

Miałem podobny problem na Lubuntu 17. Próbowałem zainstalować libinput i edytować plik .conf bezskutecznie.

Ale potem zobaczyłem post @ Pilot6 powyżej o używaniu xinput do sprawdzenia, czy libinput jest aktywny (fajnie byłoby też wiedzieć, jakie jest kryterium weryfikacji, ale przechodzę do dygresji).

Sprawdziłem xinput za pomocą xinput list-props 14(w twoim przypadku może to być inny numer).

który dał mi synapticstouchpad.

Na liście była opcja wykrywania dłoni z powiązanym z nią numerem (316).

Więc kiedyś xinput set-prop 14 316 1aktywowałem wykrywanie dłoni. I w końcu działa.

CodeMonkey
źródło