Multitouch-Gesten auf dem Touchpad

11

Ich wollte wissen, wie ich Multi-Touch-Gesten in Ubuntu konfigurieren kann. In Windows kann ich dies mit der Synaptics-Treibersoftware tun.

Ich habe bereits synclientdie Taps, Palmdetect, Scroll usw. konfiguriert. Ich möchte aber auch Gestenunterstützung. Ist das überhaupt möglich?

System-Info: Ubuntu 12.10, Synaptics Clickpad

Kapad
quelle
Ich wollte einige Details angeben: Ich wollte in der Lage sein, eine Geste für die Schaltflächen Browser / Nautilus Zurück / Vorwärts zu konfigurieren. In Windows kann ich dies mit einem 3-Finger-Wisch tun. Ebenso zum Minimieren / Öffnen aller Fenster. In Win7 kann dies mit einem Vier-Finger-Wisch nach oben oder unten erfolgen. Ich möchte ähnliche Dinge wie der Mac. Ist das möglich?
Kapad

Antworten:

11

Update 15.09.2016 Multitouch ist sofort einsatzbereit und alle unten aufgeführten Lösungen (mtrack, synclient, ginn, ...) bringen Probleme. Wenn Sie also von einem älteren Kernel aktualisieren, der sie benötigt, löschen Sie alle die Hilfs-Apps und testen Sie das Out-of-Box-Kernel-Verhalten mit der Touchpad-Benutzeroberfläche für Ihren Desktop-Manager. Es sollte tun, was Sie brauchen, und wenn Sie mehr Gesten und Dinge wollen, fügen Sie einen einfachen Strich hinzu, der gut funktioniert. Es ist jetzt in den Standard-Kernel-Eingabetreibern sortiert und funktioniert seit mindestens Kernel 4.1.32 problemlos, obwohl einige der frühen 4.0-Kernel nicht funktionieren würden. Der aktuelle LTS-Kernel 4.4 funktioniert einwandfrei, ebenso wie 4.7.

Update 9/2015 ... Kernel über 3.14 oder so haben die meisten Multitouch-Funktionen bereits integriert. Versuchen Sie daher, mtrack zu deinstallieren, wenn Sie Probleme haben. Nur der eingebaute Multitouch-Treiber und Easystroke funktionieren seit Kernel 3.14 einwandfrei für mich, obwohl 4.0 und höher eine Regression zu haben scheinen, die das Apple Trackpad kaputt macht. 3.18 Kernel funktioniert aber super.

Es gibt zahlreiche Lösungen, von denen die meisten noch etwas halbgebacken sind. Viele der dokumentierten sind veraltet. Sehen Sie sich also das Datum von Google an.

Ubuntu hat rudimentäre Gesten (2 Finger) im Applet für Maus- / Touchpad-Einstellungen integriert.
Ich stellte fest, dass es zufällig ausgeblendet war und das Scrollen mit zwei Fingern auf mysteriöse Weise ausgegraut war, was mich zu einer langen Kette von Googeln veranlasste, um es vielleicht zurückzubekommen.
Dann habe ich Touchegg ausprobiert, was manchmal funktioniert hat.
Es ist am einfachsten zu konfigurieren und es gibt gute Anweisungen, aber es basiert auf einer älteren Daemon-Lösung für das Problem.
Das Ubuntu Multitouch-Howto (Sie müssen es googeln, da ich nur zwei Links einfügen kann) war veraltet, wird aber langsam bearbeitet. Es bietet eine Reihe weiterer lückenhafter Lösungen, wird jedoch gerade aktualisiert.

Die Lösung, die ich derzeit verwende, ist mtrack (in den Repos) kombiniert mit easystroke (muss aus dem Quellcode kompiliert werden).
Mtrack unterstützt die Kernel-Version von Multitouch anstelle einer Ad-hoc-Lösung wie Touchegg und Ginn, wenn ich das richtig verstehe, aber easystroke ist eine weitere Daemon-Lösung, die derzeit neben mtrack gut zu funktionieren scheint.

Mtracks Ansatz scheint die Richtung zu sein, in die die Entwicklung geht.

Deinstallieren Sie die anderen Inhalte (Ginn, Touchegg), wenn Sie sie verwenden, und installieren Sie dann mtrack aus dem Repos. Der vollständige Name lautet xserver-xorg-input-mtrack .

Es ist mühsam zu konfigurieren und ich habe nicht drei Finger zum Wischen bekommen. Unter dem Link am Ende des Threads finden Sie die verschiedenen Konfigurationsdateien der Benutzer. Ich benutze ein Apple Magic Trackpad und es ist ziemlich gut dafür, obwohl es einen nervigen Fehler in diesem doppelten Tippen und Ziehen hat, zum Beispiel um ein Fenster zu verschieben, ist unberechenbar. Problemumgehung besteht darin, entweder einen tatsächlichen Knopfklick zu verwenden, um Fenster zu verschieben, oder einen Sekundenbruchteil nach dem doppelten Tippen und Halten zu zögern, bevor Sie das Fenster verschieben.

Ich habe gerade easystroke gefunden , und bis mtrack eine GUI bekommt, möchten Sie das vielleicht versuchen, wenn Sie abenteuerlustig genug sind, um ein Programm zu kompilieren.

Sobald es durch Ausführen kompiliert make -j2und installiert wurde sudo make install, starten Sie es mit easystroke -g, um die GUI zu erhalten, und gehen Sie zur Wiki- Seite, um Anweisungen zu erhalten.

Ein weiteres Problem, das Sie möglicherweise lösen müssen, sind die Treiber.

Wenn Sie mtrack verwenden , müssen Sie möglicherweise die Dateien neu nummerieren, damit Ihr mtrack- Treiber zuletzt gelesen wird, oder die Synaptics- Einstellungen übernehmen alles.

Diese Treiber werden unter /usr/share/X11/xorg.conf.d gespeichert .

Kopieren Sie den mtrack- Treiber nach /etc/X11/xorg.conf.d , bearbeiten Sie die Einstellungen in diesem Ordner (wie im verknüpften Thread und in der README- Datei beschrieben ), um Ihre Drei-Finger-Güte zu erhalten, wenn Sie können (oder easystroke verwenden ), und benennen Sie sie um die Datei auf eine höhere Zahl so 50-mtrack.conf wird 60-mtrack.conf , sonst fand ich den synaptischen Fahrer Touchpad die Hälfte der Zeit greifen.

Das Einfügen der Datei in / etc bedeutet, dass sie bei Updates wie den / usr- Dateien nicht überschrieben wird , dass sie zuletzt gelesen wird und daher Vorrang vor den Standardtreibern in / usr hat .

Hoffe das hilft. Dies ist ein Bereich ziemlich aktiver Entwicklung, daher wird alles, was ich schreibe, wahrscheinlich innerhalb eines Jahres veraltet sein, hoffentlich zum Besseren.

Richard Rath
quelle
Hey, danke für diese tolle Antwort. Entschuldigung, es hat eine Weile
gedauert
Gibt es Neuigkeiten zu einer geeigneten Lösung in dieser Angelegenheit? Ich kann es immer noch nicht zum Laufen bringen.
Tomyo
Heutzutage scheint es ein Easystroke-Paket zu geben, und die Option -g ist ihm nicht bekannt. Ohne das Argument wird jedoch eine GUI gestartet. :) PS: Ich laufe Mint 16.
Herbert
2

Ich wollte nur vorschlagen, meine Fortsetzung von mtrack zu verwenden, die unter github verfügbar ist: https://github.com/p2rkw/xf86-input-mtrack , da sie das Ziehen mit drei Fingern unterstützt (Anweisungen am Ende der Readme-Datei).

Ich verwende es auch in Verbindung mit easystroke, aber ich musste easystroke mit dieser einfachen Änderung ändern, um einige Einschränkungen für absolute Geräte zu beseitigen (ich erinnere mich nicht an den genauen Grund dafür, sorry):

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);
        }

Ich habe auch die Fehlerquote für Gesten reduziert:

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;
 }

... und es funktioniert super.

Randnotiz zur schmerzhaften Konfiguration: Sie können xinput verwenden, um es im laufenden Betrieb zu konfigurieren, dann xorg.conf entsprechend bearbeiten oder ein Startskript mit xinput-Aufrufen erstellen.

p2rkw
quelle