Détection correcte du pouce et de la paume du pavé tactile avec libinput


23

Alors libinput s'approche de sa première version stable avec une version candidate

Ce qui ajoute une prise en charge appropriée pour la détection du pouce / de la paume sur les tablettes tactiles ainsi que des gestes de glissement et de pincement, ce qui manque beaucoup à Linux pour les ordinateurs portables multi-touch.

Quelqu'un peut-il fournir une bonne instruction sur la façon de l'installer sur Ubuntu 15.04

Comme je crois que nous ne le verrons pas par défaut dans une installation Ubuntu pendant un certain temps.


Pas beaucoup d'attention pour cette question. Honnêtement, je ne sais pas pourquoi.
VRR

La détection de la paume dépend du pilote du pavé tactile du noyau et peut également être configurée dans xorg-synaptics. Quel pavé tactile possédez-vous?
Pilot6

@ Pilot6, le package est disponible en téléchargement, mais le fichier readme ne donne pas d'instructions spécifiques sur la façon de compiler vers le noyau.
RCF

@ RCF-U15.04 libinputest une application d'espace utilisateur. Cela n'a rien à voir avec le noyau. Il utilise simplement les événements rapportés par le noyau.
Pilot6

@tomodachi Si vous voulez bien configurer la détection des palmiers dans Ubuntu, vous pouvez poser une autre question et je vous aiderai.
Pilot6

Réponses:


14

Voici comment installer libinput sur Ubuntu.

  1. Installez certains packages nécessaires

    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. Installez xserver-xorg-dev. Pour le 14.04.3, c'est possible xserver-xorg-dev-lts-vivid. Faites attention. Vous devez vérifier quel xserver-xorgpackage est installé.

    sudo apt-get install xserver-xorg-dev
    
  3. Cloner libinputet xf86-input-libinput.

    git clone git://anongit.freedesktop.org/git/wayland/libinput
    git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-libinput
    
  4. Construisez et installez.

    cd libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
    cd ../xf86-input-libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
  5. Ajoutez à la conf/90-libinput.confchaîne de fichier Option "Tapping" "True"avant EndSectiondans la section du pavé tactile.

  6. Copiez le fichier de configuration pour l'activer libinput.

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

Déconnectez-vous et connectez-vous.

Vous verrez qu'il libinputest utilisé en exécutant xinput list-props <your_touchpad_id>.

Si vous n'aimez pas utiliser libinput, vous pouvez toujours le désactiver en

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

Je viens de l'installer, maintenant je trouve comment configurer la détection de la paume. Il semble qu'il soit activé par défaut, mais je ne comprends pas encore comment il utilise la largeur et la pression signalées par le noyau.

Il semble qu'il n'y ait actuellement aucun avantage majeur à utiliser libinputdans Ubuntu.

xf86-input-libinputenveloppe simplement Xorg et rien d'autre. Les gestes supplémentaires ne sont donc pas pris en charge. Au moins, je ne sais pas s'ils le font. Wayland ou Mir seront plus capables, je suppose.

Après quelques tests, j'ai trouvé un avantage. Il y a un problème avec xorg-synapticscela lorsque vous placez un doigt sur la zone des boutons, vous ne pouvez pas utiliser un autre doigt pour déplacer le curseur. Cela n'est pas pratique pour les personnes qui aiment utiliser les boutons matériels pour cliquer. Ce problème a été signalé plusieurs fois comme un bogue.

Il libinputn'y a pas du tout ce problème.

C'était amusant à tester. Merci pour la question.


@ Pilot6 À quoi sert "les gestes supplémentaires ne sont pas pris en charge" ?
VRR

@VRR Le fait est que Ubuntu DE par défaut ne prend pas en charge de nombreux gestes. Le simple fait de libinputne pas le changer. 1, 2, 3 tapotements de doigts fonctionnent hors de la boîte. La détection de la paume est potentiellement plus intelligente, mais il semble qu'elle ne prend pas en charge les pavés tactiles ne signalant que la largeur. Les nouveaux modèles ne supportent pas la pression, car ils fonctionnent comme un écran tactile, etc.
Pilot6

Je pense que j'ai un peu gâché les choses..pendant le processus..maintenant, je reçois l'écran noir après le démarrage..mais pas d'écran de connexion lightdm..il peut être dû à xorg..Je connais l'ancien numéro de version ..can quelqu'un me dit le processus que faire maintenant .. je peux arriver à tty
hunch

Si vous rencontrez des problèmes, supprimez-le /usr/share/X11/xorg.conf.d/99-libinput.conf. sudo rm /usr/share/X11/xorg.conf.d/99-libinput.conf
Pilot6

Cela ne résout pas le problème. Pouvez-vous mentionner quelque chose à propos du xserver-xorg-dev .... où vous avez également mentionné .. soyez prudent .. Comment revenir à une version plus ancienne ..
hunch

25

Pour Ubuntu 15.10+ vous pouvez installer libinput( rusée , xenial , yakkety ) par apt:

sudo apt install xserver-xorg-input-libinput

Je devais encore éditer le fichier de configuration pour activer le tapotement, je suppose que lorsque Unity absorbe libinput, cela l'exposera via les paramètres du panneau de contrôle (j'ai utilisé vi ici, vous pouvez utiliser gedit ou tout ce que vous voulez):

Modifiez le fichier suivant (testé le 16.04 2016-4-14 et 16.10 2016-10-14):

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

Ajustez la section 'touchpad' pour ajouter Option "tapping" "True"et Option "DisableWhileTyping" "True"si vous préférez ce comportement:

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

Déconnectez-vous, connectez-vous .. profitez-en! :)


Il n'y a pas d'option "PalmDetection" dans libinput, DisableWhileTyping est activé par défaut. Il n'est donc pas nécessaire d'ajouter tout cela.
Pilot6

Ajustement et suppression des deux options. J'ai laissé 'Tapping' activé car il n'est pas activé par défaut.
JimB

Et je ne recommande pas non plus d'utiliser libinput pour tous les appareils. Le clavier est en retard dans mon cas, j'ai donc choisi l'événement touchpad, dans mon cas event5et l' ai écrit dans ce fichier.
Pilot6

@ Pilot6 - pouvez-vous donner plus de détails sur la façon d'utiliser libinput pour le pavé tactile uniquement?
BeeOnRope

4
Il semble que vous pouvez également ajouter Option "AccelSpeed" "-0.5", où la valeur peut être un flottant de -1 (curseur plus lent) à +1 (curseur plus rapide). Vous pouvez également tester cette valeur et d'autres à l'aide de xinput. trouvez d'abord l'id en exécutant xinput, puis si votre id est 12, vous pouvez faire xinput list-props 12pour lister tous les accessoires. si vous voulez en changer un, obtenez l'int pour l'hélice (par exemple libinput Accel Speed ​​(281): -0.500000), alors vous pouvez faire xinput set-prop 12 281 -0.4pour changer l'accel à -0.4.
David784


1

J'ai eu un problème similaire sur Lubuntu 17. J'ai essayé d'installer libinput et d'éditer le fichier .conf en vain.

Mais ensuite, j'ai vu @ Pilot6 poster ci-dessus sur l'utilisation de xinput pour vérifier que libinput est actif (ce serait aussi bien de savoir quel est le critère à vérifier, mais je m'éloigne du sujet).

J'ai vérifié mon xinput avec xinput list-props 14(pourrait être un nombre différent dans votre cas).

ce qui m'a donné un synapticspavé tactile.

Dans la liste, il y avait une option pour la détection des palmiers avec un numéro associé (316).

J'ai donc utilisé xinput set-prop 14 316 1pour activer la détection des paumes. Et ça marche enfin.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.