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 2
Versione 1 del 28/05/2005 21.12.33
Dimensione: 10984
Autore: adsl-213-190-44-43
Commento: imported from the old wiki
Versione 2 del 06/07/2005 10.51.14
Dimensione: 10918
Autore: 81-178-116-62
Commento: fixed broken icons
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
= ItalianMultimediaKeys =
Linea 8: Linea 6:
Linea 9: Linea 8:
Linea 10: Linea 10:
Linea 11: Linea 12:
Linea 12: Linea 14:
Linea 13: Linea 16:
Linea 14: Linea 18:
Linea 15: Linea 20:
Linea 16: Linea 22:
Linea 17: Linea 24:
Linea 18: Linea 26:
Linea 19: Linea 28:
Linea 20: Linea 30:
Linea 21: Linea 32:
Linea 22: Linea 34:
Linea 28: Linea 41:
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 46:
Linea 35: Linea 50:
Linea 36: Linea 52:
Linea 37: Linea 54:
Linea 38: Linea 56:
Linea 39: Linea 58:
Linea 40: Linea 60:
Linea 41: Linea 62:
Linea 42: Linea 64:
Linea 43: Linea 66:
Linea 44: Linea 68:
Linea 45: Linea 70:
Linea 46: Linea 72:
Linea 47: Linea 74:
Linea 48: Linea 76:
Linea 49: Linea 78:
Linea 50: Linea 80:
Linea 51: Linea 82:
Linea 52: Linea 84:
Linea 53: Linea 86:
Linea 54: Linea 88:
Linea 55: Linea 90:
Linea 56: Linea 92:
Linea 57: Linea 94:
Linea 58: Linea 96:
Linea 59: Linea 98:
Linea 60: Linea 100:
Linea 61: Linea 102:
Linea 62: Linea 104:
Linea 63: Linea 106:
Linea 64: Linea 108:
Linea 65: Linea 110:
Linea 66: Linea 112:
Linea 67: Linea 114:
Linea 68: Linea 116:
Linea 69: Linea 118:
Linea 70: Linea 120:
Linea 71: Linea 122:
Linea 72: Linea 124:
Linea 73: Linea 126:
Linea 74: Linea 128:
Linea 75: Linea 130:
Linea 76: Linea 132:
Linea 77: Linea 134:
Linea 78: Linea 136:
Linea 79: Linea 138:
Linea 80: Linea 140:
Linea 81: Linea 142:
Linea 82: Linea 144:
Linea 83: Linea 146:
Linea 84: Linea 148:
Linea 85: Linea 150:
Linea 86: Linea 152:
Linea 87: Linea 154:
Linea 88: Linea 156:
Linea 89: Linea 158:
Linea 90: Linea 160:
Linea 91: Linea 162:
Linea 92: Linea 164:
Linea 93: Linea 166:
Linea 94: Linea 168:
Linea 95: Linea 170:
Linea 96: Linea 172:
Linea 97: Linea 174:
Linea 98: Linea 176:
Linea 101: Linea 180:
Linea 102: Linea 182:
Linea 103: Linea 184:
Linea 104: Linea 186:
Linea 105: Linea 188:
Linea 108: Linea 192:
Linea 109: Linea 194:
Linea 110: Linea 196:
Linea 111: Linea 198:
Linea 112: Linea 200:
Linea 113: Linea 202:
Linea 118: Linea 208:
Linea 119: Linea 210:
Linea 124: Linea 216:

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. Digita:

              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!

Traduzione: LorenzoSfarra - Documento Originale: MultimediaKeys