pollycoke :)

Gestire i… Gesti Touchpad in Linux

Sì, è la mia mano

In questi giorni ho avuto occasione di verificare che una delle delusioni difficoltà nell’utilizzo di un laptop con Linux è la gestione di GNOME dei gesti per il touchpad. La touchpad.

Suvvia, non mi dite che li chiamate gestures. Se ci fosse al mondo un solo termine che noi italiani professionisti del linguaggio gestuale potremmo fare a meno di importare dall’inglese sarebbe proprio gesture.

Non fatemi fare il patriota ché mi viene innaturale.

Ehi, ma come dite touchpad in italiano?

2 Aug: aggiunta nota con la doc ufficiale GNOME per tutti i gesti supportati

Non siamo ai livelli di qualche anno fa, quando c’era solo da ringhiare imprecazioni a denti stretti contro hardware ignaro e indifferente alle nostre tribolazioni. Adesso in generale abbiamo driver che funzionano, o che quanto meno sono capaci di riconoscere tocchi, doppi tocchi, strisciamenti vari e varie sfumature di significato.

Le scarne preferenze Touchpad di GNOME

Putroppo però ciò non basta: riconoscere segnali non significa necessariamente essere capaci di farne qualcosa di utile – ah, quanta saggezza!

Manca un modo di tradurre i gesti in azioni, e questo è un duplice problema: 1) da una parte è piuttosto complicato mettere d’accordo hardware e software a livello di driver e funzionalità minime supportate da un ipotetico comune denominatore, 2) dall’altra è forse ancora più complicato metterci d’accordo noi su quel che vogliamo che i nostri desktop facciano quando li carezziamo lascivamente.

Gestione di GNOME per i gesti touchpad, predefinito vs configurabile

Lasciamo stare la prima parte del problema e concentriamoci sulla seconda, più squisitamente frivola. Possiamo dire che il minimo sindacale è il classico scorrimento che si attiva con due dita: quello è il comportamento che quasi tutti si aspettano e infatti è predefinito in Ubuntu/GNOME… phewww

Cosa succede invece quando proviamo a scorrere con tre dita, quattro dita, pizzicare (eh?) allargare… ahem… comincio a sentirmi in imbarazzo. Succede, o meglio può succedere un po’ quel che ci pare, visto che A) non solo non c’è un comportamento o un insieme di comportamenti che identificano l’estetica funzionale del nostro desktop – almeno in GNOME – ma B) non esiste neanche un sistema integrato per poter impostare preferenze per combinazioni più erotiche esotiche.

Rimandiamo a dopo la faccenda dell’identificazione dell’estetica eccetera eccetera e invece concentriamoci di nuovo solo sulla seconda. Le mie esigenze sono piuttosto lineari:

Le funzioni in grassetto sono riuscito a ottenerle in maniera stabile, in corsivo funzionicchiano e non ne vale la pena, il resto non va.

Vale la pena segnalare la documentazione ufficiale GNOME per la touchpad che elenca tutti i gesti abilitati/funzionanti in maniera predenita, anche se come ho poi scritto anche in “GNOME Touch… ah però!“, sarebbe ottimo se i gesti per touchpad corrispondessero a quelli per touchscreen

襖の紹介 (vi presento Fusuma)

Fusuma è il nome giapponese di un software che permette di mappare gesti a comandi/azioni. È un possibile modo per ovviare a una frazione del problema, diciamo la parte 2B, ossia il fottutissimo libero arbitrio, ancora una volta! Installare Fusuma è semplice come copincollare nel terminale i comandi elencati nella pagina ufficiale del progetto…

$ sudo apt install libinput-tools
$ sudo apt install ruby
$ sudo gem install fusuma
$ sudo apt install xdotool
$ sudo gpasswd -a $USER input
(e riavviare)

Semplice era la maniera più cortese che sono riuscito a farmi venire in mente per descrivere una procedura che coinvolge ben 5 passaggi più un riavvio del sistema operativo.

Una volta installato, bisogna avviarlo automaticamente all’avvio con GNOME Tweak Tool (eh già). Prossimo passo: creare un file di configurazione con il vostro editor preferito, perchè nel 2020 bisogna ancora avere un editor preferito.

Non c’è nulla di male ad avere un editor preferito, se vi piace quel genere di cose. A me no. Lo faccio ma francamente lo eviterei. Ricopio qui il mio:

$ cat ~/.config/fusuma/config.yml

swipe:
   3:
      left:
         command: "xdotool key super+Left"
      right:
         command: "xdotool key super+Right"
      up:
         command: "xdotool key super+Up"
      down:
         command: "xdotool key super+Down"
   4:
      left:
         command: "xdotool key ctrl+alt+Right"
      right:
         command: "xdotool key ctrl+alt+Left"
      up:
         command: "xdotool key super"
      down:
         command: "xdotool key super"
pinch:
   2:
      in:
         command: "xdotool key ctrl+plus"
         threshold: 0.3
      out:
         command: "xdotool key ctrl+minus"
         threshold: 0.3
hold:
   3:
      sendkey: "LEFTALT+F7"
      treshold: 0.1
      keypress:
         LEFTSHIFT:
            sendkey: "LEFTALT+F8"
threshold:
   swipe: 1
   pinch: 1

interval:
   swipe: 0.5
   pinch: 1

plugin:
   inputs:
      libinput_command_input:
         enable-tap: true
         verbose: true

In grassetto le parti che funzionano degnamente

Spiega e video, ché volevo provare Kdenlive

Le azioni “Swipe” funzionano in maniera decente e devo dire che sono parecchio utili per gestire le finestre in “tiling” o per passare da un desktop all’altro, come da video qui sotto. Nota: il mio file funziona solo se si usano i desktop organizzati in orizzontale, ossia in maniera differente da quella predefinita – accidenti sempre al libero arbitrio.

Le azioni per “Pinch a due dita” servono a imitare maldestramente il pinch to zoom, ma funziona veramente male e solo in alcune applicazioni (è lo zoom dei web browser). Le azioni per “Hold” sono una cosa sperimentale per imitare malissimo il three-fingers drag di macOS, non ci provate nemmeno e se ci provate (ma non ci provate!) dovrete installare anche fusuma-sendkey

Treshold e Interval sono predefiniti e servono a specificare parametri per tutte le azioni, anche se le azioni singole possono sovrascrivere quei valori, ah, ignorate bellamente. La sezione “plugin” serve per far funzionare l’azione “Hold”, dunque ignorate. Un video dimostrativo

Swipe a 3 dita (tiling) e 4 dita (workspaces)

Io ammetto di fare un uso esagerato della touchpad, per questo forse pretendo cose che sembrano fuori dal comune… eppure mi perdonerete se tiro Apple in ballo ma macOS ha un sistema di configurazione del multitouch da oltre una decade. Sarebbe fantastico se la gestione di GNOME dei gesti touchpad fosse integrata nel desktop.

Ad ogni modo sono contento che Fusuma funzioni e di sicuro continuerà a migliorare. Come potete vedere, lo swipe a 3 e 4 dita funziona ed è abbastanza stabile. Se ci fosse una GUI sarebbe una di quelle soluzioni che si possono consigliare ai principianti, per adesso mi sa che ce la teniamo come felipizzazione sperimentale!

Vai alla barra degli strumenti