Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Hardware/Periferiche/TastiMultimediali"
Differenze tra le versioni 1 e 8 (in 7 versioni)
Versione 1 del 28/05/2005 21.12.33
Dimensione: 10984
Autore: adsl-213-190-44-43
Commento: imported from the old wiki
Versione 8 del 10/02/2007 21.29.36
Dimensione: 11156
Commento: ``
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
= ItalianMultimediaKeys =
## page was renamed from MultimediaKeys
Linea 8: Linea 7:
Linea 9: Linea 9:
Linea 10: Linea 11:
Linea 11: Linea 13:
Linea 12: Linea 15:
Linea 13: Linea 17:
Linea 14: Linea 19:
Linea 15: Linea 21:
Linea 16: Linea 23:
Linea 17: Linea 25:
Linea 18: Linea 27:
Linea 19: Linea 29:
Linea 20: Linea 31:
Linea 21: Linea 33:
Linea 22: Linea 35:
Linea 28: Linea 42:
http://www.ubuntulinux.org/wiki/IconNote.png Una piccola nota di fondo: Quando premi un tasto sulla tua tastiera, il kernel linux genera uno scancode per esso (se gli e' 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, dopodiche' gestisce i keycode in modo indipendente per mezzo di una propria tavola dei keycodes (e' lo stesso concetto dei keycodes del kernel, ma la tavola e' 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 e', ma gli sviluppatori X hanno le loro ragioni per avere diverse impostazioni della tastiera rispetto a quelle del kernel. attachment:IconsPage/IconNote.png Una piccola nota di fondo: Quando premi un tasto sulla tua tastiera, il kernel linux genera uno scancode per esso (se gli e' 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, dopodiche' gestisce i keycode in modo indipendente per mezzo di una propria tavola dei keycodes (e' lo stesso concetto dei keycodes del kernel, ma la tavola e' 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 e', ma gli sviluppatori X hanno le loro ragioni per avere diverse impostazioni della tastiera rispetto a quelle del kernel.
Linea 32: Linea 47:
Linea 35: Linea 51:
Linea 36: Linea 53:
Linea 37: Linea 55:
Linea 38: Linea 57:
Linea 39: Linea 59:
Linea 40: Linea 61:
Linea 41: Linea 63:
Linea 42: Linea 65:
  * Questo e' tutto cio' di cui hai bisogno, ma prima di assegnare il keycode mancante, devi sapere quali keycodes sono disponibili, per evitare conflitti. Digita:{{{
* Questo e' tutto cio' di cui hai bisogno, ma prima di assegnare il keycode mancante, devi sapere quali keycodes sono disponibili, per evitare conflitti. {{{
Linea 44: Linea 69:
Linea 45: Linea 71:
Linea 46: Linea 73:
Linea 47: Linea 75:
Linea 48: Linea 77:
Linea 49: Linea 79:
Linea 50: Linea 81:
Linea 51: Linea 83:
Linea 52: Linea 85:
Linea 53: Linea 87:
Linea 54: Linea 89:
Linea 55: Linea 91:
Linea 56: Linea 93:
Linea 57: Linea 95:
Linea 58: Linea 97:
  * Apri un terminale e digita:{{{
* Apri un terminale e digita: {{{
Linea 60: Linea 101:
Linea 61: Linea 103:
Linea 62: Linea 105:
Linea 63: Linea 107:
Linea 64: Linea 109:
Linea 65: Linea 111:
Linea 66: Linea 113:
Linea 67: Linea 115:
Linea 68: Linea 117:
Linea 69: Linea 119:
Linea 70: Linea 121:
Linea 71: Linea 123:
Linea 72: Linea 125:
Linea 73: Linea 127:
Linea 74: Linea 129:
Linea 75: Linea 131:
Linea 76: Linea 133:
Linea 77: Linea 135:
Linea 78: Linea 137:
  * Ora puoi caricare il nuovo xmodmap.conf all'avvio di X. Ho trovato che il modo migliore e' di mettere il comando nel PostLogin script di gdm. (ovviamente se usi gdm ;)) Digita:{{{
* 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: {{{
Linea 80: Linea 141:
Linea 81: Linea 143:
        sudo cp Default.sample Default}}}
sudo cp Default.sample Default
}}}
Linea 83: Linea 148:
Linea 84: Linea 150:
Linea 85: Linea 152:
Linea 86: Linea 154:
Linea 87: Linea 156:
Linea 88: Linea 158:
Linea 89: Linea 160:
Linea 90: Linea 162:
Linea 91: Linea 164:
Linea 92: Linea 166:
Linea 93: Linea 168:
Linea 94: Linea 170:
Linea 95: Linea 172:
Linea 96: Linea 174:
Linea 97: Linea 176:
Linea 98: Linea 178:
Linea 101: Linea 182:
Linea 102: Linea 184:
Linea 103: Linea 186:
Linea 104: Linea 188:
Linea 105: Linea 190:
Linea 108: Linea 194:
Linea 109: Linea 196:
Linea 110: Linea 198:
Linea 111: Linea 200:
Linea 112: Linea 202:
Linea 113: Linea 204:
Linea 118: Linea 210:
Linea 119: Linea 212:
Linea 123: Linea 217:
Traduzione: LorenzoSfarra - Documento Originale: MultimediaKeys Documento Originale: wiki:Ubuntu/MultimediaKeys

Hai una tastiera con i tasti multimediali ma non sai come renderli attivi con linux? Questo mini-howto dovrebbe esserti di aiuto.

Accorgimenti veloci

  1. Vedi se il tuo tasto funziona con gnome-keybinding-properties, e' sotto il menu: Desktop --> Preferences --> Keyboard Shortcuts. Se non funziona:

  2. Vai in una console reale e premi i tuoi tasti multimediali uno alla volta.
  3. Guarda l'output in console per scoprire quale codice e' stato generato, dovrebbe essere qualcosa come:

            atkbd.c: Unknown key pressed (translated set 2, code 0x9e on isa0060/serio0).
    
            atkbd.c: Use 'setkeycodes e01e <keycode>' to make it known.

    dovresti trovare le stesse informazioni con:

            dmesg
  4. 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).
  5. Inserisci questi comandi in /etc/init.d/bootmisc.sh

  6. 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).

  7. 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
  8. Usa gnome keybindings o metacity keybindings per collegare le funzioni ai tuoi nuovi tasti configurati.

Woo, e' stato veloce! ;)

Istruzioni approfondite

attachment:IconsPage/IconNote.png Una piccola nota di fondo: Quando premi un tasto sulla tua tastiera, il kernel linux genera uno scancode per esso (se gli e' 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, dopodiche' gestisce i keycode in modo indipendente per mezzo di una propria tavola dei keycodes (e' lo stesso concetto dei keycodes del kernel, ma la tavola e' 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 e', ma gli sviluppatori X hanno le loro ragioni per avere diverse impostazioni della tastiera rispetto a quelle del kernel.

Non e' difficile, e' solo un lavoro un po' noioso.

  1. Usare gnome-keybinding-properties:
    • Prova a vedere se i tuoi tasti funzionano con gnome-keybinding-properties, e' sotto il menu': Desktop --> Preferences --> Keyboard Shortcuts. Se non funzionano, o se gnome-keybinding-properties non ha un'azione di default che richiedi per quel tasto, dovresti leggere l'intero howto ;)

  2. 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 <ctrl><alt>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 <keycode>' to make it known.
    • Le stesse informazione possono essere reperite eseguendo:

              dmesg
    • Questo e' tutto cio' 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 sai:
      • Quali tasti non hanno un keycode
      • Come impostare scancode/keycode per renderli conosciuti
      • Quali keycodes sono disponibili per essere usati
    • Ora e' 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:
  3. 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 XkbModel (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 PostLogin 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:
  4. 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, sottokeybinding_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

  5. 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 <Alt>Destra e <Alt>Sinistra rispettivamente: in questo modo posso controllare avanti e indietro che non sono previsto in linea di comando. (funziona con tutte le applicazioni che prendono<Alt>Destra e <Alt>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.

Questo e' tutto!

Documento Originale: wiki:Ubuntu/MultimediaKeys