Pinch e Swipe su Linux

Pinch e Swipe non sono una scadente imitazione di Itchy e Scratchy

A dispetto di quanto possa sembrare, Swipe e Pinch non sono i nomi di due personaggi dei cartoni animati, bensì si riferiscono a due particolari movimenti effettuati con le dita su una periferica che supporta più tocchi contemporaneamente.

Pinch è il gesto di allargare o avvicinare due dita, è stato reso famoso da vari filmati che ritraggono schermi multitouch ed è stato portato a conoscenza delle masse grazie all’iTouch e all’iPhone. Si usa in genere per lo zoom di un’immagine o di un testo.

Swipe è invece una gesture che viene usata soprattutto sui portatili e comporta l’uso di tre dita spostate velocemente verso destra o verso sinistra. Di solito questo movimento è accostato allo scorrimento di una galleria di foto o della cronologia del browser.

Entrambi i movimenti sono implementati sul touchpad dei MacBook Air di Apple e recentemente anche Synaptics ha aggiunto qualcosa di simile nei driver per Windows.

Su Linux non c’è ancora nulla del genere che si possa definire stabile, ma possiamo lo stesso provare a giocare con pinch e swipe tramite un piccolo hack.

Requisiti

Premessa: i passaggi che verranno descritti si riferiscono ad Ubuntu Hardy Heron 8.04 ma con qualche adattamento possono essere usati anche su altre distribuzioni.

  1. Perl
  2. Modulo Time::Hires per perl
  3. Modulo X11:GUITest per perl
  4. Opzione SHMConfig abilitata in xorg.conf

Se si possiede Ubuntu i primi due punti sono facili da soddisfare

sudo apt-get install perl

Per il terzo punto dobbiamo scaricare il pacchetto X11::GUITest, scompattarlo e compilarlo con i comandi

perl Makefile.PL

make

sudo make install

Se l’installazione non dovesse andare a buon fine, la colpa è probabilmente di qualche libreria mancante, basterà guardare tra i messaggi di errore per scovare quelle necessarie.

Inoltre, nel caso di Ubuntu, lo script di compilazione non riesce a trovare la libreria libXtst.so nonostante sia già stata installata. Per ovviare al problema

sudo ln -s /usr/lib/libXtst.so.6 /usr/lib/libXtst.so

Per il quarto punto apriamo xorg.conf e aggiungiamo la stringa

Option          "SHMConfig"             "on"

all’interno della sezione del touchpad.

Iniziamo a divertirci

Adesso ci serve lo script che ci permetterà di usare le gesture

Scarica lo script

che è tratto da questo articolo sul network di sviluppatori di IBM.

Una volta scompattato l’archivio basterà lanciare

perl gestureListener.pl

per iniziare a giocare con swipe e pinch e provare gli effetti sulle applicazioni che ci interessano.

In breve, il programmino non fa altro che usare i dati passati da synclient per associare a determinati valori un’evento specifico, nel nostro caso una combinazione di tasti. In particolare per swipe la combinazione è Alt+freccia destra o sinistra, per pinch Ctrl ++ o --.

Modificando lo script si può cambiare il comportamento associato alle gesture. Qui invoco l’aiuto di neon o di chiunque altro possa riuscire nell’impresa.

Stacchiamo tutto!

Durante l’esecuzione dello script ogni altro tipo di tocco viene disabilitato, quindi bisogna spostarsi tra le applicazioni sulle quali ci interessa provare i movimenti del touchpad tramite la tastiera.

Per terminare lo script è sufficiente un Control+C e per tornare ad usare normalmente il touchpad lanciamo da terminale

synclient TouchPadOff=0

Ho sperimentato con moderata soddisfazione le gesture su Firefox e Eye of Gnome, il visualizzatore di immagini predefinito in Ubuntu. In ogni caso i risultati variano a seconda del proprio hardware e del programma scelto per le prove.

Crediti immagine: redaktusse (+maggie)