Usare le hotkey delle tastiere multimediali in linux

Introduzione

Ormai quasi tutte le tastiere moderne hanno i cosiddetti tasti multimediali, vediamo un modo per poterli utilizzare sotto linux senza l’aiuto di gnome o kde.

Il keycode

Ad ogni tasto presente sulla tastiera e' associato un segnale speciale, detto keycode che permette di individiare univocamente il tasto in caso di pressione. Sfortunatamente i tasti multimediali non hanno dei keycode standard e per questo e’ necessario individuarli manualmente. Quindi, per prima cosa e' necessario scoprire il keycode associato ad ognitasto che si desidera utilizzare. Per fortuna il programma xev (man xev) serve proprio a questo, ecco un esempio per il mio tasto del controllo volume:

KeyRelease event, serial 30, synthetic NO, window 0x2a00001,
root 0x8e, subw 0x0, time 406136, (928,4), root:(932,846),
state 0x0, keycode 174 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:

La linea interessante e' la penultima ed in particolare il valore keycode 174. Prendiamo nota e ripetiamo l’operazione per tutti i tasti che ci interessano.

Nomi dei tasti

A questo punto possiamo associare dei nomi ai tasti appena scoperti. Creiamo il file .xmodmaprc nella home dell’utente ed inseriamo i valori opportuni:

# Questo e’ il file ~/.xmodmaprc
keycode 174 = F24
keycode 160 = F25
keycode 176 = F26

E' bene evitare di usare valori di Fn inferiori a 12 in quanto gia' presenti sulla tastiera. Il comando xmodmap /home/nome dell’utente/.xmodmaprc attiva i nuovi nomi.

Azioni associate ai tasti

A questo punto utilizzeremo un programma detto keymapper per far eseguire determinate azioni alla pressione dei tasti. Io uso xbindkeys reperibile qui Una volta installato bastera' creare il file di configurazione .xbindkeysrc nella home dell’utente e lanciarlo con il comando xbindkeys -f /home/nome dell’utente/.xbindkeysrc Ecco come appare il mio .xbindkeysrc che si occupa di far funzionare i tasti del volume:

# Questo e’ il file ~/.xbindkeysrc
# Muto
"amixer -c 0 sset Master,0 toggle"
m:0x10 + c:160
Mod2 + F25
# Volume GIU’
"amixer -c 0 sset Master 1- unmute cap"
m:0x10 + c:174
Mod2 + F24
# Volume SU’
"amixer -c 0 sset Master 1+ unmute cap"
m:0x10 + c:176
Mod2 + F26

Come si puo' vedere ad ognuno dei tasti (F25, F24 e F26) sono stati associati dei comandi da lanciare ad ogni pressione. Per sapere cosa fanno questi comandi si puo’ leggere il manuale di amixer (man amixer). Volendo si puo' eseguire qualsiasi comando, ad esempio per far partire il browser firefox bastera' aggiungere una linea simile a questa in .xmodmaprc

keycode 229 = F27

e questa in .xbindkeysrc

# Firefox
"firefox"
m:0x10 + c:229
Mod2 + F27

Tips

  • Ricordiamoci di lanciare ad ogni riavvio del sistema i comandi presentati,

magari mettendoli in script eseguiti automaticamente al login.

  • Mentre mettiamo a punto i tasti assicuriamoci di uccidere ogni istanza di xbindkeys prima di lanciare il successivo comando

xbindkeys -f /home/nome dell’utente/.xbindkeysrc (man ps e man kill per maggiori informazioni).

Autore: Arjuna Del Toso