Gesti multitouch sul touchpad


11

Volevo sapere come potevo configurare i gesti multi-touch in Ubuntu. In Windows posso farlo usando il software del driver synaptics.

Ho già usato synclientper configurare i tocchi, palmdetect, scroll, ecc. Ma vorrei anche il supporto gestuale. È anche possibile?

Informazioni di sistema: Ubuntu 12.10, clickpad Synaptics


Volevo specificare alcuni dettagli: Quello che volevo fare è essere in grado di configurare un gesto per i pulsanti Indietro / Avanti del browser / Nautilus. In Windows posso farlo con un colpo di 3 dita. Allo stesso modo per minimizzare / aprire tutte le finestre. In Win7 questo può essere fatto con un dito a quattro dita su o giù. Voglio cose simili al Mac. È possibile?
Kapad,

Risposte:


11

Aggiornamento 15/09/2016 Il multitouch funziona immediatamente e tutte le soluzioni elencate di seguito (mtrack, synclient, ginn, ...) rovineranno le cose, quindi se stai aggiornando da un kernel più vecchio che le richiede, elimina tutto le app di supporto e prova il comportamento predefinito del kernel con l'interfaccia utente del touchpad per il tuo desktop manager. Dovrebbe fare ciò di cui hai bisogno e, se vuoi più gesti e cose, aggiungi easystroke che funziona bene. Ora è ordinato nei driver di input del kernel stock e funziona senza problemi almeno dal kernel 4.1.32, sebbene alcuni dei kernel 4.0 iniziali non funzionerebbero. L'attuale kernel LTS, 4.4 funziona bene, così come 4.7.

aggiornamento 9/2015 ... i kernel sopra 3.14 o giù di lì hanno la maggior parte del multitouch integrato ora, quindi prova a disinstallare mtrack se hai problemi. solo il driver multitouch integrato e easystroke funzionano bene per me dal kernel 3.14, anche se la versione 4.0 e successive sembrano avere una regressione che rompe il trackpad di apple. Il kernel 3.18 funziona benissimo però.

Esistono numerose soluzioni, molte delle quali sono ancora un po 'cotte al forno. Molti di quelli documentati non sono aggiornati, quindi assicurati di guardare la data di qualunque cosa tu google.

Ubuntu ha integrato gesti gestuali rudimentali (2 dita) nell'applet delle impostazioni del mouse / touchpad.
L'ho trovato casualmente staccato e lo scorrimento di due dita sarebbe stato misteriosamente oscurato, mettendomi su una lunga catena di googling per forse riaverlo.
Poi ho provato touchegg, che a volte ha funzionato.
È il più semplice da configurare e ci sono buone istruzioni ma si basa su una soluzione demone precedente al problema.
Il howto di Ubuntu multitouch (dovrete cercarlo su google poiché posso includere solo due link) era malamente obsoleto, ma sta lentamente lavorando. Offre una serie di soluzioni irregolari, ma è in procinto di essere aggiornato.

La soluzione che sto attualmente usando è mtrack (nei repository ) combinata con easystroke (devo compilare dal sorgente).
Mtrack supporta la versione kernel di multitouch piuttosto che una soluzione ad hoc come touchegg e ginn se ho capito bene, ma easystroke è un'altra soluzione demone che sembra funzionare bene per ora su mtrack.

L'approccio di Mtrack sembra essere la direzione che sta prendendo lo sviluppo.

disinstallare le altre cose (ginn, touchegg) se lo si utilizza e quindi installare mtrack dal nome completo del repository è xserver-xorg-input-mtrack .

Configurare è doloroso e non ho tre dita per scorrere. Vedi il link alla fine del thread per i vari file di configurazione delle persone. Uso un trackpad magico di Apple ed è abbastanza buono per questo, anche se ha un fastidioso problema tecnico in quel doppio tocco e trascinare ad esempio per spostare una finestra è irregolare. soluzione alternativa è utilizzare un clic del pulsante effettivo per spostare le finestre o esitare una frazione di secondo dopo aver toccato due volte e tenere premuto prima di spostare la finestra.

Ho appena trovato easystroke e fino a quando mtrack non ottiene una GUI potresti provare che se sei abbastanza avventuroso da provare a compilare un programma.

una volta compilato eseguendo make -j2e installato da sudo make install, avviarlo easystroke -gper ottenere la GUI e andare alla pagina wiki per le istruzioni.

Un altro problema che potrebbe essere necessario risolvere è i driver.

Se si utilizza mtrack , potrebbe essere necessario rinumerare i file in modo che il driver mtrack venga letto per ultimo o le impostazioni di Synaptics cattureranno tutto.

Tali driver sono memorizzati in /usr/share/X11/xorg.conf.d .

copia il driver mtrack in /etc/X11/xorg.conf.d , modifica le impostazioni in quella cartella (vedi il thread collegato e il README per come) per ottenere la bontà a tre dita se puoi (o usa easystroke ), e rinomina il file su un numero più alto, quindi 50-mtrack.conf diventa 60-mtrack.conf , altrimenti ho scoperto che il driver sinaptico catturerà il tuo touchpad per la metà del tempo.

Mettere il file in / etc significa che non verrà sovrascritto su aggiornamenti come i file / usr e che sarà letto per ultimo e quindi avrà la priorità sui driver predefiniti in / usr .

Spero che questo ti aiuti. Questa è un'area di sviluppo abbastanza attivo, quindi tutto ciò che scrivo sarà probabilmente obsoleto entro un anno, si spera in meglio.


Ehi, grazie per questa grande risposta. Mi dispiace, ci è voluto un po 'per controllarlo :)
Kapad,

Qualche novità su una soluzione adeguata al riguardo? Non riesco ancora a farlo funzionare in modo accettabile ...
Tomyo,

Oggi sembra esserci un pacchetto easystroke e l'opzione -g non è nota. Senza l'argomento, però, avvia una GUI. :) PS: corro la Menta 16.
Herbert,

2

Volevo solo suggerire di usare la mia continuazione di mtrack disponibile su github: https://github.com/p2rkw/xf86-input-mtrack , poiché supporta il trascinamento a 3 dita (istruzioni in fondo al file Leggimi).

Lo sto usando anche in combinazione con easystroke, ma ho dovuto modificare easystroke per rimuovere alcune restrizioni sui dispositivi assoluti, con questo semplice cambiamento (non ricordo il motivo esatto per farlo, mi dispiace):

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

Ho anche ridotto il margine di errore per i gesti:

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

... e funziona benissimo.

Nota a margine sulla configurazione dolorosa: puoi usare xinput per configurarlo al volo, quindi modificare xorg.conf di conseguenza, o creare uno script di avvio con invocazioni di xinput.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.