#format wiki #language it <
> <> = Introduzione = Questa guida spiega come attivare i tasti multimediali su Linux. = Accorgimenti veloci = Verificare il funzionamenti dei tasti con '''gnome-keybinding-properties''' presente in '''''Preferenze -> Scorciatoie da tastiera'''''. Se non funziona: 0. Vai in una console reale e premi i tuoi tasti multimediali uno alla volta. 0. Guarda l'output in console per scoprire quale codice è stato generato, dovrebbe essere qualcosa come:{{{ atkbd.c: Unknown key pressed (translated set 2, code 0x9e on isa0060/serio0). atkbd.c: Use 'setkeycodes e01e ' to make it known.}}}dovresti trovare le stesse informazioni con:{{{ dmesg}}} 0. Utilizza setkeycodes per impostare il codice del tuo tasto come suggerito.(ma prima usa dumpkeys per vedere quali codici per i tasti (d'ora in poi chiamati "keycodes") sono liberi e possono essere quindi utilizzati). 0. Inserisci questi comandi in {{{/etc/init.d/bootmisc.sh}}} 0. Apri il terminale X:{{{ xmodmap -pke > xmodmap.conf}}}Quindi edita questo file e aggiungi le keysyms mancanti al giusto keycodes (usa xev per vedere i keycodes, leggi il file {{{/usr/lib/X11/XKeysymDB}}} per vedere quali keysyms sono disponibili). 0. Dallo stesso terminale:{{{ sudo cp xmodmap.conf /etc cd /etc/X11/gdm/PostLogin sudo cp Default.sample Default}}}dopo apri il file {{{/etc/X11/gdm/PostLogin/Default}}} con il tuo editor preferito e aggiungi queste linee:{{{ xmodmap /etc/xmodmap.conf}}} 0. Usa gnome keybindings o metacity keybindings per collegare le funzioni ai tuoi nuovi tasti configurati. == Istruzioni approfondite == ||<> ||'''Una piccola nota di fondo: Quando premi un tasto sulla tua tastiera, il kernel linux genera uno scancode per esso (se gli è stato assegnato). Questo accade al livello del kernel. X ha una (quasi) totale indipendenza nel modo di gestire i tasti: X legge la tavola dei keycode del kernel allo startup, dopodiché gestisce i keycode in modo indipendente per mezzo di una propria tavola dei keycodes (è lo stesso concetto dei keycodes del kernel, ma la tavola è differente). A questo punto ogni keycode puo' essere mappato in un ''keysym'', per esempio una stringa che rappresenta un tasto o attiva un'azione. Una volta che abbiamo reso i nostri tasti funzionanti dobbiamo "aggiornare" su cio' che abbiamo fatto sia il kernel che il server X. Sembra innaturale, e lo è, ma gli sviluppatori X hanno le loro ragioni per avere diverse impostazioni della tastiera rispetto a quelle del kernel.''' || 0. Usare '''gnome-keybinding-properties''': * Verificate che i tasti funzionino con '''gnome-keybinding-properties''', è sotto il menu' '''''Preferenze -> Scorciatoie da tastiera'''''. Se non funzionano, o se '''''gnome-keybinding-properties''''' non ha un'azione di default che richiedi quel tasto, dovresti leggere l'intero howto. 0. Assegnando i keycodes nel kernel: * Vediamo quali tasti sono stati hanno gia uno scancode/keycode del kernel e quali no. * Andiamo in una console reale digitando F1. * Ora sel premi i tuoi tasti multimediali uno alla volta, dovresti vedere un messaggio in output come questo:{{{ atkbd.c: Unknown key pressed (translated set 2, code 0x9e on isa0060/serio0). atkbd.c: Use 'setkeycodes e01e ' to make it known.}}} * Le stesse informazione possono essere reperite eseguendo:{{{ dmesg}}} * Questo è tutto ciò di cui hai bisogno, ma prima di assegnare il keycode mancante, devi sapere quali keycodes sono disponibili, per evitare conflitti. {{{ dumpkeys}}} * Il comando mostra una lista di scancodes usati. Quindi ora semplicemente scegli quelli che non hanno un keycode assegnato ( solitamente quelli che vanno da 120 a 255). * Ora sapete: * Quali tasti non hanno un keycode * Come impostare scancode/keycode per renderli conosciuti * Quali keycodes sono disponibili per essere usati * Ora è tempo di impostare questi codici, digita:{{{ setkeycodes e01e 120}}}dove e01e e' lo scancode suggerito in dmesg, e 120 e' un keycode libero che hai scelto. * Ripeti questo passaggio per tutti i tasti di cui hai bisogno. * Se vuoi che questi comandi siano eseguiti all' avvio del sistema, aggiungi i comandi che hai lanciato finora alla fine del file {{{/etc/init.d/bootmisc.sh}}} * Ora che il kernel genera gli esatti scancodes, continuiamo: 0. Assegnamo i keysyms per X * Adesso puoi rimanere in X ;) * I keysyms X sono una sorta di piccole stringhe descrittive come: XF86AudioMedia, XF86WWW etc. ma non possiamo usare nomi casuali. Una lista di keysyms X possono essere trovati nel file: {{{/usr/lib/X11/XKeysymDB}}} * Una gran quantita' di modelli di tastiere sono definite in questo file, e quindi puoi trovare il tuo modello e metterlo in {{{/etc/X11/xorg.conf}}} sotto Xkb``Model (o con gnome-keyboard-properties), ma se non ha uno scancode/keycode conosciuto per ogni tasto multimediale, non funzionera'. Quindi dovremmo impostarli manualmente. * Apri un terminale e digita: {{{ xev}}} * Premi un tasto multimediale. Se sei fortunato esiste gia un keysym assegnatogli, quindi l' output di xev per questo tasto sara' qualcosa come:{{{ KeyRelease event, serial 28, synthetic NO, window 0x3200001, root 0xb7, subw 0x0, time 137010761, (693,138), root:(705,256), state 0x10, keycode 136 (keysym 0x1008ff27, XF86Forward), same_screen YES, XLookupString gives 0 bytes:}}} * La terza fila e' la piu' interessante: ci dice se hai un keycode per il tasto (136) cosi come un keysym (XF86Forward). Se hai un keysym e' tutto a posto, puoi usare quella stringa per rappresentare il tuo tasto e usare gnome keybindings o metacity keybindings per correlare un azione ad esso. (Guarda sotto). * Ma probabilmente, troverai che quel tasto non ha un keysym assegnato ad esso, ad esempio:{{{ KeyRelease event, serial 28, synthetic NO, window 0x3200001, root 0xb7, subw 0x0, time 137355697, (401,146), root:(413,264), state 0x10, keycode 136 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes:}}} * In questo caso dovrai assegnare il tuo keysym al keycode (136) (Non e' collegato al keycode del kernel, ma non importa) Questo e' possibile con xmodmap. * Primo, crea un file con le tue impostazioni correnti della tastiera: in un terminale:{{{ xmodmap -pke > xmodmap.conf}}} * Dopo devi aggiungere i keysyms mancanti a questo file; usa xev per vedere quale keycode usare, guarda in {{{/usr/lib/X11/XKeysymDB}}} per trovare il nome del keysym, apri xmodmap.conf e riempilo con i keysym mancanti usando un nome sensato (per esempio se hai un tasto con una calcolatrice stampata su di esso, usa XF86Calculator come keysym). * Ripeti questo passaggio per tutti i tasti multimediali. * Quando hai finito, puoi applicare i cambiamenti con:{{{ xmodmap xmodmap.conf}}} * Ora puoi caricare il nuovo xmodmap.conf all'avvio di X. Ho trovato che il modo migliore e' di mettere il comando nel Post``Login script di gdm. (ovviamente se usi gdm ;)) Digita: {{{ sudo cp xmodmap.conf /etc/xmodmap.conf cd /etc/X11/gdm/PostLogin sudo cp Default.sample Default }}} * Ora apri il file Default con il tuo editor preferito e alla fine di esso aggiungi questa linea:{{{ xmodmap /etc/xmodmap.conf}}} * In questo modo dovresti avere tutti gli scancodes/keycodes/keysyms assegnati nel sistema e all'avvio di X. * Ora puoi fare qualcosa utile con essi, come: 0. Usare gnome keybindings o metacity keybindings per assegnare comandi ai tasti * Primo , prova ad assegnare i tasti con gnome-keybinding-property: e' veloce ed ha alcune azioni utili di default, eseguilo da terminale o dal menu. * L'utility si spiega da sola, ma probabilmente troverai alcune azioni non funzionanti (come sleep per esempio), o che eseguono azioni errate, o che non ci sono azioni assegnate ai tasti. * Puoi indirizzare questi problemi, utilizzando metacity, per collegare tasti a comandi che sono molto piu' flessibili, Apri un terminale ed esegui:{{{ gconf-editor}}}o lancialo dal menu sotto Applications --> System Tools --> Configuration Editor. * Vai sotto apps/metacity in gconf-editor. Vedrai 2 file (tra le altre): {{{global_keybindings}}} e {{{keybinding_commands}}} * Se clicchi su {{{global_keybindings}}}, sul pannello di pannello di destra troverai alcune stringhe per comandi, come: {{{run_command_1}}}, {{{run_command_2}}}, etc. Queste devono essere riempite con il keysym che ti occore per il tuo tasto(come: XF86Play, XF86MyComputer, etc. usa xev per vederlo). * Dopo puoi assegnare assegnare il comando corrispondente (o lo script) nell'altra fila, sotto{{{keybinding_commands.}}} Hai molti comandi a tua disposizione, come:{{{totem --fullscreen}}} o {{{rhythmbox --next}}} etc. * Usa l'aiuto da linea di comando per scoprire quali opzioni sono disponibili, (per esempio totem --help o rhythmbox --help etc.) Per Firefox guarda qui: http://www.mozilla.org/unix/remote.html 0. Indicazione aggiuntive * Le azioni che vuoi eseguire dopo aver premuto un tasto sono limitate solo dalla tua fantasia: bash prevede una quantita' enorme di script e di opzioni per programmi, virtualmente infinite. * Per esempio un'applicazione che puoi trovare utile e' xmacro (sido apt-get install xmacro): fa eseguire una macro del mouse o della tastiera con un comando. Lo uso per eseguire i miei Indietro e Avanti per quanto riguarda i miei tasti multimediali con Destra e Sinistra rispettivamente: in questo modo posso controllare avanti e indietro che non sono previsto in linea di comando. (funziona con tutte le applicazioni che prendonoDestra e Sinistra come tasti "utili"). Questo e' il mio script xmacro: {{{ case "$1" in forward) sleep .3 echo -e "KeyStrPress Alt_L \n KeyStrPress Right \n KeyStrRelease Right \n KeyStrRelease Alt_L" | xmacroplay :0 ;; backward) sleep .3 echo "KeyStrPress Alt_L \n KeyStrPress Left \n KeyStrRelease Left \n KeyStrRelease Alt_L" | xmacroplay :0 ;; esac exit 0}}} * Un'altra indicazione e' che se hai un tasto per lo sleep, e non funziona con gnome-keybinding-properties, puoi usarlo almeno per spegnere il tuo monitor. Ti basta assegnarli questo comando: {{{ xset dpms force off}}} con metacity. * Se hai una "rotella" per lo scroll sulla tua tastiera, puoi assegnargli sempre un codice!Assegnali il keysym "Return", che lo fara' funzionare come un tasto di return. = Risoluzione Problemi = == Packard Bell == Su alcuni portatili Packard Bell i tasti rapidi per regolare la luminosità non funzionano. Per attivarli bisogna: 1. Aprire un ''' terminale ''' (Applicazioni - Accessori - Terminale) 1. Digitare {{{ sudo gedit /etc/default/grub }}} Si aprirà una finestra di ''' gedit '''. 1. Cercare la riga ''' GRUB_CMDLINE_LINUX= ''' e sostituirla con ''' GRUB_CMDLINE_LINUX="acpi_osi=Linux" '''. 1. Salvare e chiudere gedit. 1. Digitare nel terminale {{{ sudo update-grub }}} 1. Riavviare il computer. = Ulteriori risorse = * [[Ubuntu:MultimediaKeys|Documento originale]] ---- CategoryDaRevisionare CategoryHardware ## PrioritàBassa ## RevisioneStilistica