shivalinux titolo 

Sfruttare anche con linux i tasti extra e multimediali

Tutte, o quasi tutte le tastiere, dispongono di vari tasti extra che per essere utilizzati necessitano di un programma che, come al solito, viene fornito solo nella versione per Windows, ma anche con linux c'è il modo per renderli utili, anzi utilissimi!


Per prima cosa è necessario conoscere il codice (keycode) attivato dalla pressione del tasto che ci interessa, e per farlo si usa il comando xev, questo programma apre una finestra che registra e visualizza nella shell da cui è stato avviato la descrizione di eventi come la pressione di un tasto o i movimenti del mouse.
Apri una shell digita: xev e premi <Invio>
Ora premendo il tasto "a" dovresti vedere nella shell un output di questo tipo:

KeyPress event, serial 30, synthetic NO, window 0x3000001,
    root 0x71, subw 0x0, time 19139443, (-515,591), root:(157,615),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 30, synthetic NO, window 0x3000001,
    root 0x71, subw 0x0, time 19139573, (-515,591), root:(157,615),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
Quello che ci interessa è il valore del Keycode che in questo caso è keycode 38 a cui corrisponde il valore keysym che in questo caso è (keysym 0x61, a)
Premendo invece uno dei tasti extra dovresti ottenere un output di questo tipo:
KeyPress event, serial 30, synthetic NO, window 0x3000001,
    root 0x71, subw 0x0, time 19164807, (-515,591), root:(157,615),
    state 0x10, keycode 222 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 30, synthetic NO, window 0x3000001,
    root 0x71, subw 0x0, time 19164999, (-515,591), root:(157,615),
    state 0x10, keycode 222 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
La differenza in questo caso è che a keysym non è assegnato nessun valore (keysym 0x0, NoSymbol), quello che dobbiamo fare è proprio assegnare quel valore mancante.
Premete in successione tutti i tasti extra annotandovi il valore del keycode, fermate xev chiudendo la finestrella che ha aperto, adesso usando il comando xmodmap che è un programma per dire al server X come interpretare i segnali da tastiera possiamo assegnare il valore per il keysym, per evitare di ripetere l'operazione ogni volta che riavviamo il Pc conviene fare un piccolo e semplice script.
Create un file di nome "xmodmap", và bene anche un altro nome ma senza estensione che dovrà essere come questo:
#!/bin/bash
xmodmap -e "keycode 144=F28"
xmodmap -e "keycode 153=F29"
xmodmap -e "keycode 160=F30"
xmodmap -e "keycode 161=F31"
xmodmap -e "keycode 162=F32"
xmodmap -e "keycode 164=F33"
xmodmap -e "keycode 174=F34"
xmodmap -e "keycode 176=F35"
xmodmap -e "keycode 178=F24"
xmodmap -e "keycode 222=F25"
xmodmap -e "keycode 223=F26"
xmodmap -e "keycode 227=F27"
Ovviamente dovrete sostituire il valore del keycode con quello che vi siete annotati nell'operazione precedente, come valore keysym da abbinargli (quello dopo il segno "=") per praticità e meglio usare un valore da "F13" in sù,salvate il file nella cartella Autostart di KDE, così che venga letto ed eseguito ad ogni avvio ~/.kde/Autostart ora rendete eseguibile il file appena creato con il comando chmod +x xmodmap ed eseguitelo per rendere immediatamente disponibili i nuovi tasti.
Ora non resta che abbinare il tasto al programma che vogliamo andando nell'editor del menu di KDE, per aprire l'editor cliccate con il tasto destro sul menu K nella barra in fondo e sciegliete la voce "editor menu", ad ogni programma è ora possibile associare uno dei vostri "nuovi" tasti, cliccate sul pulsante con la scritta "nessuno" si apre una finestra cliccate il tasto che volete usare e il gioco è fatto

Oltre a ciò potete creare altri comandi da abbinare ad uno dei "nuovi" tasti ad esempio io ho creato una nuova voce nel menu che ho chiamato "eject" e alla voce "comando" ho scritto:
eject /media/cdrecorder eject è un programma da console per aprire il cassettino di un lettore cd o altro dispositivo del genere e /media/cdrecorder è il punto di montaggio del mio masterizzatore, voi lo dovreste cambiare con il vostro ovviamente, e adesso per estrarre il cd non devo più spostare le mani dalla tastiera!


torna sutorna all'indice dei trucchi
Per contattarmi scrivi a ^shiva^