Assegnare bottoni mouse in Linux Mint

Assegnare bottoni mouse in Linux a tasti di tastiera o al lancio di programmi, è uno scoglio che un utente in fuga da Windows può incontrare. Con mouse dotati di molti bottoni, in Windows hai vita facile perché il produttore hardware fornisce un programma per rimappare ognuno di essi.
Anche se tali produttori non sempre hanno a cuore Linux, si può ovviare, ma si deve fare da soli.

In precedenza ho anche parlato di come modificare il comportamento della rotellina del mouse e la sua velocità di scorrimento, nel tutorial La rotellina del mouse in Linux.

Circa il tema di oggi, puoi assegnare a singoli bottoni azioni come la pressione del tasto Canc sulla tastiera, o le funzioni di Taglia, Copia e Incolla che, forse lo sai, si ottengono rispettivamente con le combinazioni di tasti CTRL+X, CTRL+C e CTRL+V.

Puoi far sì che il sistema interpreti la pressione di un bottone del mouse come la combinazione di tasti CTRL+Alt+Canc per aprire la finestra di gestione delle sessioni o CTRL+Alt+Fine (o End) per aprire il menu di spegnimento o riavvio del PC. Ma puoi anche assegnare ad un bottone l'apertura di un programma installato o la scrittura di formule di vario genere e intere frasi.

Servono: un po' di terminale, una manciata di comandi e la preparazione di un file. Compreso il meccanismo però diventa rapido e tutt'altro che impossibile, anche per un principiante. E gli esempi ed i riferimenti che fornisco ti aiuteranno anche per adattarli alle tue esigenze.

Guarda il video su YouTube

Ho testato la mia soluzione con Linux Mint 20.3 ma funzionerà anche in altre distribuzioni. Dubito però che possa funzionare con quelle che adottano il nuovo gestore di finestre Wayland come le ultime versioni di Ubuntu. Ho fatto le mie prove con i mouse Logitech, M500 e i gloriosi e indistruttibili MX518 e Marathon M705. Ma per quelli con più bottoni il discorso non dovrebbe cambiare.

Intercettare numero dei bottoni mouse in Linux

La prima cosa da comprendere, è come sono identificati dal sistema i singoli bottoni del tuo mouse. Poi potrai assegnare loro una combinazione di tasti, la pressione di un singolo tasto di tastiera, l'apertura di un programma o la digitazione di un testo.

Se sei fortunato, potresti risparmiarti questa parte del lavoro. Nei miei mouse Logitech e forse anche in altri, che prevedono, due bottoni per l'uso con il pollice, la rotellina cliccabile come pulsante centrale oltre che inclinabile a sinistra e a destra, ecco i numeri identificativi dei singoli bottoni

  1. bottone sinistro
  2. bottone centrale (clic su rotella)
  3. bottone destro
  4. rotella su
  5. rotella giù
  6. rotella a sinistra
  7. rotella a destra
  8. bottone indietro
  9. bottone avanti

Se hai più tasti o se più avanti scopri che la tua situazione è differente, lancia il comando xev che intercetta gli eventi di mouse e tastiera. Eseguilo in una finestra di terminale nella forma

xev -event button

per isolare solo la pressione dei bottoni del mouse e non anche il movimento del puntatore. Si apre una finestrina quadrata. Sposta la freccia del mouse su di essa e premi un bottone. Vengono sempre intercettati due eventi: la pressione e il rilascio del bottone. Li trovi nel terminale, nell'ultima delle tre righe di dettagli per ogni evento.

xev per identificare bottoni mouse in Linux

Il più importante è il dettaglio dopo la prima virgola, perché identifica il bottone premuto. Adesso puoi creare una mappa come la mia, salvarla in un file di testo e non dovrai più rifarlo per quel mouse.

Installare due pacchetti per rimappare bottoni mouse

Preparata la mappa dei bottoni del tuo mouse, installa i pacchetti: xbindkeys e xvkbd. Se sei già in Linux, puoi cliccare i link per lanciare automaticamente il comando apt per installarli. Ma puoi cercarli e installarli con un clic anche da Gestore Applicazioni, il centro software di Linux Mint o con il Gestore pacchetti Synaptic. Ma ovviamente basta un comando apt da terminale

sudo apt install xbindkeys xvkbd

Insieme consentono di raggiungere il nostro obbiettivo: catturare la pressione di un bottone, assegnargli uno o più tasti della tastiera e passare al sistema queste informazioni invece che la semplice pressione del bottone.

Creare e personalizzare il file di configurazione

Va creato un file di configurazione, da salvare tra i file normalmente nascosti nella tua cartella sotto /home/tuonome. Abilita nel file manager la visualizzazione dei file nascosti dal menu Visualizza o con CTRL+H.
Premi il clic del pulsante destro su uno spazio libero della cartella e seleziona Nuovo Documento. Chiamalo .xbindkeysrc con il punto iniziale e senza estensione e salvalo.

Supponi di voler assegnare alla pressione del bottone 6 la pressione del tasto Canc nella tastiera, dovrai aggiungere queste due righe al file.

"xvkbd -text "\d""
m:0x0 + b:6

Per riassegnare ai bottoni 8 e 9, che normalmente servono per andare e avanti e indietro nella navigazione, le funzioni di copia e incolla, aggiungi al file le seguenti informazioni:

"xvkbd -text "\Cc""
m:0x0 + b:8

"xvkbd -text "\Cv""
m:0x0 + b:9

La prima riga indica quale tasto o combinazione passare. Presta attenzione solo a ciò che è scritto e scriverai tra la seconda e terza serie di virgolette semplici.

Negli esempi citati la C maiuscola dopo il backslash (\) indica il CTRL premuto, la minuscola successiva, la lettera premuta sulla tastiera in combinazione con il CTRL. Puoi ad esempio mappare un bottone con \Cx per fare CTRL+X ovvero Taglia.

La seconda riga imposta la pressione del bottone cui il comando deve essere assegnato. Il bottone va indicato con b:numero.

Via via che aggiungi comandi, è bene poterli identificare rapidamente nel file, per successive modifiche. Precedi ogni assegnazione con una riga che inizia con # e servirà come nota senza venire interpretata come comando. Il file di configurazione, con i comandi già visti, assume la forma:

# assegna il Canc al tasto 6
"xvkbd -text "\d""
m:0x0 + b:6

# assegna il Copia al tasto 8
"xvkbd -text "\Cc""
m:0x0 + b:8

# assegna l'Incolla al tasto 9
"xvkbd -text "\Cv""
m:0x0 + b:9

Codici dei tasti simulabili anche in combinazione

Visti i primi esempi spiccioli, ecco un elenco delle corrispondenze più comuni che ti serviranno per creare le tue azioni. Il manuale di xvkbd, lo consulti da terminale digitando man xvkbd, riporta le seguenti opzioni. Ti consiglierei di prendere nota di questo specchietto anche nello stesso file con la tua numerazione dei bottoni.

  • \r per Invio
  • \t per tasto TAB
  • \b per backspace cioè l'eliminazione dell'ultimo carattere digitato
  • \e per Esc
  • \d per Canc o Del
  • \S per Maiuscolo o Shift
  • \C per CTRL
  • \A per Alt
  • \M per il tasto Meta
  • \W per il tasto Windows
  • \[F1] per simulare un tasto funzione
  • \[End] per simulare il tasto fine
  • \[Prior] simula il tasto Pag Su
  • \[Next] simula il tasto Pag Giù
  • \[Print] per il tasto stamp o PrintScreen (esegue uno screenshot)
  • \{XX} simula la pressione di un tasto da indicarsi come numero corrispondente al dettaglio keycode intercettato da xev. Ad esempio sarà, probabilmente anche per te, 66 per il blocco maiuscole e 77 per il blocco del tastierino numerico.

Alcuni di questi codici li abbiamo già visti. C'è di che sbizzarrirsi! Ogni lettera con il backslash iniziale presente nell'elenco, viene passata come pressione del tasto corrispondente. Quelle non precedute da backslash, sono passate come semplici lettere digitate sulla tastiera. Ecco perché \Cc, \Cv e \Cx corrispondono a CTRL+C, CTRL+V e CTRL+X.

Esempi utili di configurazione di .xbindkeysrc per xvkbd

Puoi lanciare CTRL+Alt+Canc e aprire il menu di termine sessione o cambio utente con il clic del bottone 8 con

# Simula CTRL+Alt+Canc (menu sessioni)
"xvkbd -text "\C\A\d""
m:0x0 + b:8

Oppure il menu di blocco, spegnimento e riavvio al bottone 9 con

# Simula CTRL+Alt+Fine (menu uscita)
"xvkbd -text "\C\A\[End]""
m:0x0 + b:9

La chiusura della finestra corrente che, come in Windows, si ottiene con Alt+F4, puoi assegnarla al bottone 6 con

# Chiude la finestra corrente simulando Alt+F4
"xvkbd -text "\A\[F4]""
m:0x0 + b:6

Con i bottoni avanti e indietro puoi catturare l'intero schermo o solo la finestra corrente. Come con il pulsante Stamp (o PrintScreen) oppure con Alt+Stamp. Il comando per il file .xbindkeysrc potrà essere

# Screenshot schermo
"xvkbd -text "\[Print]""
m:0x0 + b:8

# Screenshot finestra
"xvkbd -text "\A\[Print]""
m:0x0 + b:9

Preferisci assegnare i bottoni 8 e 9 a Pagina Su e Pagina giù? Ecco cosa scrivere:

# Pagina Su con B8
"xvkbd -text "\[Prior]""
m:0x0 + b:8

# Pagina Giù con B9
"xvkbd -text "\[Next]""
m:0x0 + b:9

Vuoi assegnare ai bottoni 8 e 9 rispettivamente ogni pressione del tasto Blocco Maiuscole o Blocco Numeri? Salverai

# simula pressione Blocco Maiuscole
"xvkbd -text "\{66}""
m:0x0 + b:8

# simula pressione Blocco Numeri
"xvkbd -text "\{77}""
m:0x0 + b:9

Se i codici numerici tra parentesi graffe non funzionano per la tua tastiera, lancia nel terminale xev in questa forma

xev -event keyboard

e identifica il numero di keycode del tasto premuto per sostituirlo tra le parentesi graffe.

Un ulteriore consiglio che mi sento di darti è quello di consultare l'elenco di scorciatoie di tastiera per Linux Mint 20 o scaricare l'infografica che trovi a fondo pagina. Oltre ad imparare trucchi che magari non conosci, puoi replicare molte di esse con i tuoi bottoni del mouse.

Peraltro, il citato elenco di "shortcuts" ufficiali non esaurisce le possibilità. In Linux Mint Cinnamon sono previste molte altre funzioni utili per le quali puoi creare scorciatoie personalizzate. Apri Tastiera nel menu sotto Preferenze e spostati nella scheda Scorciatoie.

impostazioni tastiera scorciatoie Linux Mint

Esplora l'albero delle impostazioni e ne troverai molte per le quali non ci sono scorciatoie preimpostate. Creane di nuove, che non siano in conflitto con altre (più facile se usi CTRL, Alt e Maiusc insieme) e potrai assegnare ai bottoni mouse ulteriori interessanti funzioni di controllo.

Lanciare un programma con un bottone del mouse

Puoi usare bottoni del mouse per lanciare specifici programmi installati. Le righe sono anche più semplici in questo caso. Racchiudi tra virgolette il nome del pacchetto nella prima riga. Non serve altro perché sia passata al terminale come comando di lancio.

# Lancia pix con il bottone 7
"pix"
m:0x0 + b:7

# Lancia gimp con il bottone 8
"gimp"
m:0x0 + b:8

# Lancia il terminale con il bottone 9
"gnome-terminal"
m:0x0 + b:9

Macro di testo per i bottoni mouse in Linux

Il file di configurazione passa al sistema una combinazione di tasti speciali e di lettere o numeri. Questo può consentirti di assegnargli anche la scrittura di frasi o formule di uso ripetuto.

Ecco esempi che potresti assegnare ai tasti 8 e 9.

# Scrivi (da aggiornare) con B8
"xvkbd -text "(da aggiornare)""
m:0x0 + b:8

# Scrivi formula di chiusura con B9
"xvkbd -text "Cordiali saluti,\rDario.""
m:0x0 + b:9

Nell'ultimo esempio, la mia formula di chiusura viene scritta su due righe grazie a \r che, come visto sopra, equivale a passare il tasto Invio. Infatti ecco il risultato.

macro di testo per bottoni mouse in Linux

Con queste possibilità di assegnare macro di testo ai bottoni del mouse, troverai occasioni in cui potrebbero consentirti di risparmiare tempo. Diversi copia e incolla ripetitivi possono diventare solo incolla se hai già assegnato il testo ad un bottone!

Avviare e riavviare xbindkeys

Abbiamo finito con le configurazioni e salvato il file .xbindkeysrc in /home/tuonome.

Ho lasciato il piacere per ultimo, dopo le fatiche! Vediamo all'opera il risultato dei nostri sforzi e lanciamo nel terminale semplicemente

xbindkeys

I bottoni fanno ciò che ti aspetti? Se così non fosse e dopo modifiche alla configurazione, questa deve essere ricaricata. Meglio chiudere xbindkeys e riavviarlo. Digita prima

killall xinbdkeys

poi lancialo di nuovo.

Quando tutto funziona come previsto, non dovrai lanciare xbindkeys ad ogni avvio del PC perché l'installazione del pacchetto aggiunge anche un comando per farlo automaticamente.

Se però la tua mappatura di bottoni del mouse non funziona al riavvio, aggiungi manualmente xbindkeys all'elenco Applicazioni d'avvio come si chiama tale opzione in Linux Mint. Apri il menu, digita avvio o cerca sotto Preferenze. Clicca il +, su Aggiungi comando personalizzato e metti come nome xbindkeys.

Interfaccia grafica per la configurazione di xbindkeys

Svelo un segreto alla fine. Per la configurazione di xbindkeys è disponibile nei repository di Linux Mint anche il pacchetto xbindkeys-config. Anche questo puoi installarlo da Gestore Applicazioni, da Gestore Pacchetti o da terminale. Una volta installato, non viene creata un'icona nel menu o nel desktop. Devi lanciarlo da terminale semplicemente con il nome.

schermata di xbindkeys-config

Ne parlo solo ora perché credo fermamente che si debba avere chiaro il meccanismo di xbindkeys e un file di configurazione già pronto per poterlo usare con profitto. Anzi, secondo me non è davvero intuitivo per un principiante ma solo se sei esperto e conosci già ogni aspetto del comando e delle sue opzioni. Io non sono tra questi e continuo a preferire e suggerire la soluzione manuale!

Conclusioni

È vero non è proprio semplicissimo assegnare bottoni del mouse in Linux senza un programma grafico come in Windows. Ma, per come la vedo io, la cosa diventa più semplice in Linux dopo le reinstallazioni perché non devi riconfigurare tutto da capo.
Fatto lo sforzo iniziale, salvi il file di configurazione e lo ricopi nella tua home dopo la reinstallazione di Linux Mint e dei pacchetti necessari. E andrà sempre bene per quel mouse e forse anche per altri.

Concludo con i miei riferimenti sull'argomento, nel caso tu abbia bisogno di altre informazioni che vanno oltre gli aspetti che ho potuto conoscere per rimappare bottoni mouse in linux. Sono in inglese però.

Diffondi la conoscenza!

6 commenti su “Assegnare bottoni mouse in Linux Mint”

  1. Bellissimo tutorial Dario!
    Spiegato in modo preciso, dettagliato e semplice.
    Sarà ora più facile per i nuovi utenti rimappare il tutto!
    Linux non è difficile da usare se viene spiegato in modo semplice.
    Complimenti.

    Rispondi
    • Ciao Albano, grazie! Ho diversi preferiti sull’argomento e ognuno fa in modo differente. Trovata una soluzione minima, cerco di non dare per scontate conoscenze.

      Rispondi
    • Ciao Leonardo, ti ringrazio. Avevo trascurato questo aspetto anche per me, all’inizio del passaggio a Linux. Ma è proprio bello, per chi non vuole rinunciare a mouse performanti, sapere che c’è un modo per sfruttarli!

      Rispondi
  2. Ciao Dario,
    vorrei assegnare al pulsante centrale (click su rotellina) la funzione di doppio click, cosa che facevo con grande soddisfazione già ai tempi del 486 con Win 3.1. Come si identifica il doppio clik da poter inserire nei file di configurazione? Grazie mille e complimenti ancora per i tuoi contributi sempre molto ben fatti!
    Marco

    Rispondi
    • Ciao Marco, ottima domanda. Non mi ero posto il problema. Non esiste un evento doppio click ma credo ci siano diverse strade per inviare al kernel 2 click separati da un breve ritardo. Però ci devo studiare.. Vedi se le istruzioni che trovi all’ultimo link nella pagina sulla personalizzazione sono valide nell’attesa. Grazie a te per gli apprezzamenti e per la segnalazione su come migliorare le informazioni dell’articolo.

      Rispondi

Lascia un commento