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)

9 pensieri riguardo “Pinch e Swipe su Linux”

  1. Safari 525.20.1 Mac OS X 10.5.5

    Davvero interessante questo tuo post. Non pensavo che qualcun altro avesse ideato delle “mouse-gestures” in stile apple.

    Devo ammettere però che il mio post qui non serve tanto a celebrare il tuo post, quanto a farti vedere che grazie al commento che mi hai lasciato sul mio blog ora mi son iscritto al tuo di blog ( blog davvero interessante!).

    A rileggerci! ;)

  2. Mozilla Firefox 3.0.3 Windows XP

    ciao, queste opzioni oltre che sul macbook air ci sono anche sul macbook pro. da domani magari anche su altri modelli…

    cmq articolo interessante
    ciao

  3. Mozilla Firefox 2.0.0.13 Windows XP

    Quasi quasi ti proporrei il dilemma che mi affligge con la 8.04, oramai, da giorni, che non vuol saperne né di installarsi né di girare su una macchina dove aveva girato Gutsy tranquillamente fino a quando non mi é venut la brillante idea di fare l’aggiornamento.
    Anyway, sono qui per spammare. :P
    Volevo dirti che, in vista del RomeCamp2008, stò propondendo un’iniziativa tra blogger: cusemu.blog.cena ; la data é aperta, per venire incontro alle esigenze di quanti più possibile. Info al solito anche qui.
    Spero che tu e consorte presenzierete.
    Byez!

  4. Mozilla Firefox 3.6.15 Ubuntu Linux

    Interessantissimo! Ho dato un’occhiata allo script ma non mi intendo di perl purtroppo… sarebbe interessante modificarlo aggiungendo anche il “riduci a icona” facendo lo swipe con le quattro dita! L’utile funzione, sempre con quattro dita mi pare, che rimpicciolisce e allinea tutte le finestre aperte, con questa logica non può essere implementata… ma magari qualcuno ha delle idee a riguardo!

  5. Mozilla Firefox 3.6.15 Ubuntu Linux

    Purtroppo però mi sono arenato qui: già un pacchetto mancava e l’ho scaricato, questo X11/intinsec invece non si trova. :-( (ubuntu 10.10)

    sudo make install
    cc -c -I/usr/X11R6/include -I/usr/X/include -Wall -O2 -DVERSION=\”0.21\” -DXS_VERSION=\”0.21\” -fPIC “-I/usr/lib/perl/5.10/CORE” -DNDEBUG -DX11_GUITEST_ALT_L_FALLBACK_META_L GUITest.c
    GUITest.xs:41: fatal error: X11/Intrinsic.h: File o directory non esistente
    compilation terminated.
    make: *** [GUITest.o] Errore 1

    Any suggestions?
    Grazie a tutti e ancora complimenti per la trovata!

Rispondi