Menu Chiudi

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:

  • 2 dita Swipe su/giù = scorre il contenuto in verticale – COMPORTAMENTO PREDEFINITO
  • 2 dita Swipe sx/dx = scorre in orizzontale, o naviga indietro/avanti in un browser purtroppo non ho avuto successo con questa
  • 3 dita Swipe su/giù/sx/dx = gestisce le finestre (tiling)
  • 4 dita Swipe su/giù = attiva la modalità “Activities” della Shell
  • 4 dita Swipe sx/dx = scorre desktop a sx/dx (ho modificato il comportamento predefinito di GNOME con i desktop in orizzontale piuttosto che in verticale)
  • 3 dita Hold = trascinare le finestre (lo si può ottenere tramite questa Shell extension, ma solo su Wayland)
  • 2 dita Pinch = zoom in/out
  • 3 o 4 dita Pinch = vista applicazioni della Shell (come cavolo si chiama?)

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!

6 commenti

      • Bl@ster

        Ah ok, grazie della precisazione :-) un giorno mi deciderò anche io a tornare a Linux sul laptop, devo dire che sono piuttosto preoccupato proprio perché ormai quando uso il portatile la mia interazione col trackpad è piuttosto stretta

  1. vervelover

    Ciao Felipe,

    dopo non so quanto tempo commento di nuovo su Pollycoke, che gioia :)

    E’ vero quello che dici sulle cose che mancano in Linux. Ma io, dopo 14 anni di uso ininterrotto, quando passo per ragioni di lavoro a MacOs, non posso che notare le cose che mancano a quel sistema rispetto a Linux e che non c’è modo di avere. Ad esempio, una gestione decente delle finestre. Come nel tuo video, su gnome si possono allineare a destra, a sinistra, fianco a fianco, ridimensionarle. Su MacOS ho problemi anche solo a massimizzarle.

    E vogliamo parlare di quanto è comoda l’overview delle finestre alla pressione di un tasto (super), che funziona anche come ricerca di app e file?

    E vogliamo parlare delle estensioni della shell (meteo, clipboard, tiling delle finestre, batteria del mouse, profilo performance sono solo alcune di quelle che uso).

    E della gestione degli spazi di lavoro di gnome? E della assoluta mancanza di virus e malware (beccati su MacOS)? E della gioia per ogni nuova feature della prossima LTS? E della integrazione totale della bash nel sistema? Ok è per smanettoni ma imparare la shell è una cosa meravigliosa.

    Sarò esagerato, ok, ma la verità è che ogni volta che sono costretto a usare Windows e MacOS mi girano le palle per le cose che non ho, non viceversa.

    Saluti

    • felipe

      Macchè esagerato, anche io non vedo l’ora di riavviare GNOME, sarà anche perché voglio recuperare il tempo perso nella lunga pausa :)
      Ci sono decisamente idee buone in tutte le interfacce o quasi

  2. Pingback:GNOME Touch... ah però! - pollycoke :)

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo:
Vai alla barra degli strumenti