-------------[ Configurazione dei tasti supplementari della "tastiera multimediale"

Per tastiera multimediale immagino abbiate capito a cosa mi riferisco, ovvero a quella tastiera che presenta anche un set aggiuntivo di tasti per controllare ad es., il volume dell'audio, la gestione del lettore CD o per lanciare programmi predefiniti come il browser, la calcolatrice, o anche funzioni di sistema come suspend, close, etc.
Farla funzionare sotto windows non rapprsenta alcun problema, dato che e' sempre fornita con il suo corredo di driver, i casini iniziano quando la si vuole utilizzare sotto Linux.

Quello che ho trovato io non e' il modo migliore di utilizzarla, perche' ho semplicemente mappato certi tasti con una sequenza di altri.
Ad esempio, quando premo il tastino "WWW" e' come se premessi la sequenza di tasti:

   lynx -book

e quindi mi si apre il browser testuale lynx, ma se dovessi essere gia' dentro un programma in esecuzione, premere tale tastino corrisponde ad dare i comandi corrispondenti ai tasti:

   "l", "y", "n", "x", " ", "-", "b", "o", "o", "k", "INVIO"

quindi potrebbe portare a brutte conseguenze.
Immaginiamo infatti che stiamo lavorando su un programma testuale che si aspetta ora un comando, noi digitiamo il tastino che abbiamo mappato con "lynx -book\n" ["\n" sta per invio], e per il nostro programma la lettera "l" corrisponde al comando deLete, quindi ci chiedera' la conferma circa l'imminente cancellazione, e la lettera successiva passata dal tastino e' "y", quindi e' come se dessimo una conferma. Spero di essere stato chiaro.

In poche parole, quello che per ora sono riuscito a fare e' solo abbinare una sequenza di tasti ad un altro. Cio' sara' utile se noi per esempio aprimo una nuova console per avviare lynx, e invece di scrivere il comando per esteso, basta premere il corrispondente tastino.

Altro utilizzo e' mappare i 2 tastini del volume, il "+" e il "-" ad un qualsiasi programma per la regolazione del volume che accetta nella linea di comando le modifiche da apportare al mixer: per esempio io uso aumix, e per abbassare il volume di 5 punti percentuali basta che digiti

   aumix -v-5

Ho quindi mappato il tastino "-" del volume a tale comando, il tastino "+" a aumix -v+5, e per finire il tastino "mute" a aumix -v 0.

Vediamo ora come fare.

Qui illustro come mappare un solo tasto, dato che l'operazione e' uguale per tutti. Prendo come esempio il tasto "WWW".

Per prima cosa dobbiamo trovare la sequenza di escape ad esso assegata:

   /usr/bin/showkey -s

e digitare il tasto in questione.
Il risultato che vediamo apparire e' qualcosa dle tipo:
0xe0 0x32 quando lo premiamo e
0xe0 0xb2 quando lo rilasciamo
questi (32 e b2) sono i "raw scan-codes" assegnati al tasto (esadecimali).

Il passo successivo consiste nell'assegnargli un codice ("key code)":

   setkeycodes e032 120

(mappare anche quando rilasciamo il tasto non ci interessa, in questo caso ci serve solo mappare la pressione, quindi usiamo il codice 32)
Per controllare semplicemente facciamo:

   getkeycodes

e verifichiamo che nella tabellina Escaped scancodes al valore 32 sia assegnato il codice 120.

Ora dobbiamo editare il file usato per la definiziuone della tastiera: nel mio caso, il piu' generico, e' /usr/lib/kbd/keymaps/i386/qwerty/it.map, ma per verificarlo basta verificare nel file /etc/rc.d/rc.M la chiamata a loadkeys.
Editiamo dunque il it.map (nel caso abbiate it.map.gz, no probl, basta decompattarlo con gzip -d it.map.gz e potete lasciarlo anche non compresso, non cambia nulla, il loadkeys se ne accorge da solo) e inserire alla fine le seguenti righe:

keycode 120 = F70
string F70 = "lynx -book\n"

Per rendere operativo il tutto, basta una semplice chiamata a:

   loadkeys it

E ogni volta che verra' premuto il tastino "WWW" partira' magicamente lynx :)

Nota1: questo metodo non funziona sotto X (e quindi xterm e tutti gli altri), ma solo su console.
Nota2: per fare in modo che al riavvio successivo le impostazioni non vadano perse, basta mettere nel file /etc/rc.d/rc.local la seguente riga:

setkeycodes e032 120

Fine.