web-dev-qa-db-fra.com

Gestes multitouch sur le touchpad

Je voulais savoir comment configurer des gestes multi-touch dans Ubuntu. Dans Windows, je peux le faire en utilisant le logiciel de pilote Synaptics.

J'ai déjà utilisé synclient pour configurer les taps, palmdetect, scroll, etc. Mais j'aimerais aussi une prise en charge des gestes. Est-ce même possible?

Infos système: Ubuntu 12.10, Clickpad Synaptics

11
kapad

Mise à jour du 15/09/2016 Multitouch fonctionne immédiatement, et toutes les solutions énumérées ci-dessous (mtrack, synclient, ginn, ...) vont tout gâcher. Par conséquent, si vous mettez à jour à partir d'un noyau plus ancien qui en a besoin, supprimez tout. les applications auxiliaires et essayez le comportement du noyau prêt à l'emploi avec l'interface tactile du pavé tactile pour votre gestionnaire de bureau. Il devrait faire ce dont vous avez besoin, et si vous voulez plus de gestes et de choses, ajoutez easystroke qui fonctionne bien. Il est maintenant trié dans les pilotes d’entrée du noyau et fonctionne sans problème depuis au moins le noyau 4.1.32, bien que certains des premiers noyaux 4.0 ne fonctionneraient pas. Le noyau actuel de LTS, 4.4 fonctionne bien, tout comme 4.7.

mise à jour 9/2015 ... les noyaux supérieurs à 3.14 ou plus ont la plupart des systèmes multitouch intégrés, essayez donc de désinstaller mtrack si vous rencontrez des problèmes. le pilote multitouch intégré et easystroke fonctionnent correctement pour moi depuis le noyau 3.14, bien que les versions 4.0 et supérieures semblent avoir une régression qui casse le trackpad Apple. Le noyau 3.18 fonctionne très bien cependant.

Il existe de nombreuses solutions, dont la plupart sont encore un peu à moitié cuites. La plupart des documents sont périmés, alors assurez-vous de bien regarder la date de ce que vous recherchez sur Google.

Ubuntu a intégré la prise en charge des gestes rudimentaires (2 doigts) dans l’applet des paramètres de la souris/du pavé tactile.
Je l’ai trouvé coincé au hasard et le défilement à deux doigts serait alors mystérieusement grisé, ce qui me mettrait sur une longue chaîne de recherches sur Google pour le récupérer peut-être.
Ensuite, j'ai essayé le touchegg, qui a parfois fonctionné.
C’est le moyen le plus simple à configurer et il existe de bonnes instructions, mais il est basé sur une ancienne solution du démon au problème.
Le manuel d'utilisation multitouch d'ubuntu (vous devrez le rechercher sur Google car je ne peux inclure que deux liens) était très désuet, mais il commence lentement à travailler. Il propose en quelque sorte un autre ensemble de solutions incomplètes, mais est en cours de mise à jour.

La solution que j'utilise actuellement est mtrack (dans les pensions) associée à easystroke (compiler à partir des sources).
Mtrack prend en charge la version de multitouch dans le noyau plutôt qu'une solution ad hoc telle que touchegg et ginn si je comprends bien, mais easystroke est une autre solution démon qui semble bien fonctionner pour l'instant sur mtrack.

L'approche de Mtrack semble être l'orientation que prend l'évolution.

désinstaller les autres éléments (ginn, touchegg) si vous l’utilisez, puis installez mtrack à partir du nom complet du référentiel: xserver-xorg-input- mtrack .

Il est difficile de configurer et je n'ai pas eu trois doigts à glisser. Voir le lien à la fin du fil pour les différents fichiers de configuration des gens. J'utilise un trackpad magique Apple et c'est très bien pour cela, même s'il a un petit problème gênant dans ce double-clic et faire glisser par exemple pour déplacer une fenêtre est erratique. La solution de contournement consiste à utiliser un clic de bouton réel pour déplacer les fenêtres ou à hésiter une fraction de seconde après un appui double avant de déplacer la fenêtre.

Je viens de trouver easystroke , et jusqu'à ce que mtrack reçoive une interface graphique, vous pouvez essayer si vous êtes assez aventureux pour essayer de compiler un programme.

une fois compilé en exécutant make -j2 et installé par Sudo make install, démarrez-le avec easystroke -g pour obtenir l'interface graphique et accédez à la page wiki pour obtenir des instructions.

Les conducteurs sont un autre problème que vous devrez peut-être résoudre.

Si vous utilisez mtrack , vous devrez peut-être renuméroter les fichiers pour que votre pilote mtrack soit lu en dernier ou le les paramètres de synaptics saisiront tout.

Ces pilotes sont stockés dans /usr/share/X11/xorg.conf.d .

copiez le pilote mtrack dans /etc/X11/xorg.conf.d , modifiez les paramètres dans ce dossier (voir le fil lié et le README pour savoir comment faire) pour obtenir la bonté de vos trois doigts si vous le pouvez (ou utilisez easystroke ) et renommez le fichier à un nombre plus élevé, donc 50-mtrack.conf devient 60-mtrack.conf , sinon j'ai trouvé que le pilote synaptique saisit votre pavé tactile une fois sur deux.

Mettre le fichier dans /etc signifie qu'il ne sera pas écrasé lors des mises à jour comme les fichiers /usr , et qu'il est lu. last et a donc priorité sur les pilotes par défaut de /usr .

J'espère que cela t'aides. C'est un domaine de développement assez actif, donc tout ce que j'écris sera probablement obsolète d'ici un an, espérons-le pour le mieux.

11
Richard Rath

Je voulais juste suggérer d’utiliser ma suite de mtrack disponible sur github: https://github.com/p2rkw/xf86-input-mtrack , car il prend en charge le glissement 3 doigts (instructions au bas du fichier lisezmoi) .

Je l'utilise également en conjonction avec easystroke, mais je devais modifier easystroke pour supprimer certaines restrictions relatives aux périphériques absolus, avec ce simple changement (je ne me souviens pas de la raison exacte pour cela, désolé):

diff --git a/handler.cc b/handler.cc
index 8830ea2..c9e3f91 100644
--- a/handler.cc
+++ b/handler.cc
@@ -563,7 +563,7 @@ protected:
        }
 protected:
        void move_back() {
-               if (!prefs.move_back.get() || (xstate->current_dev && xstate->current_dev->absolute))
+               if (!prefs.move_back.get())
                        return;
                XTestFakeMotionEvent(dpy, DefaultScreen(dpy), orig_x, orig_y, 0);
        }

J'ai également réduit la marge d'erreur pour les gestes:

diff --git a/gesture.cc b/gesture.cc
index 8531c08..0df990e 100644
--- a/gesture.cc
+++ b/gesture.cc
@@ -104,9 +104,9 @@ int Stroke::compare(RStroke a, RStroke b, double &score) {
                return -1;
        score = MAX(1.0 - 2.5*cost, 0.0);
        if (a->timeout)
-               return score > 0.85;
+               return score > 0.95;
        else
-               return score > 0.7;
+               return score > 0.92;
 }

... et ça marche très bien.

Remarque secondaire sur la configuration pénible: vous pouvez utiliser xinput pour le configurer à la volée, puis éditer xorg.conf en conséquence ou créer un script de démarrage avec des invocations xinput.

2
p2rkw