La tastiera è il dispositivo tramite il quale l’utente impartisce i comandi al sistema, ma come è stato evidenziato nella sez. 1.10 i tasti presenti su di essa possono variare dipendentemente dal layout della stessa e per questo il sistema deve essere opportunamente configurato per interpretare correttamente le informazioni da essa inviate.
La tastiera invia dei segnali al sistema ogni volta che viene premuto o rilasciato un tasto. In corrispondenza di ognuno di tali eventi viene infatti generata una sequenza di codici, detti scancode, che viene inviata al driver della tastiera (che fa parte del kernel).
Gli scancode possono essere interpretati dal driver della tastiera e convertiti in altri codici, detti keycode. I keycode possono essere ulteriormente convertiti in altri codici (ASCII o UTF-8) o stringhe per mezzo di una tabella detta keymap.
Tutti questi possibili strati di conversione permettono di personalizzare la configurazione della tastiera intervenendo al livello più opportuno.
Il driver della tastiera può funzionare in una delle seguenti modalità
____________________________________________________________________
Comando: kbd_mode
Path: /bin/kbd_mode
SINTASSI
$ kbd_mode [option]
DESCRIZIONE
Nel caso in cui option non sia specificato, viene visualizzata la modalità corrente._________
La corrispondenza (keybinding) tra gli scancode ed i keycode viene stabilita in base ad una tabella che può essere visualizzata per mezzo del comando getkeycodes (man page getkeycodes(8)), mentre il comando setkeycodes (man page setkeycodes(8)) può essere utilizzato per modificarla.
[da completare ...] ... esempi ...
Un esempio di keybinding tra scancode e keycode è riportato di seguito (output di getkeycodes)
Plain scancodes xx (hex) versus keycodes (dec) for 1-83 (0x01-0x53) scancode equals keycode 0x50: 80 81 82 83 99 0 86 87 0x58: 88 117 0 0 95 183 184 185 0x60: 0 0 0 0 0 0 0 0 0x68: 0 0 0 0 0 0 0 0 0x70: 93 0 0 89 0 0 85 91 0x78: 90 92 0 94 0 124 121 0 Escaped scancodes e0 xx (hex) e0 00: 0 0 0 0 0 0 0 0 e0 08: 0 0 0 0 0 0 0 0 e0 10: 165 0 0 0 0 0 0 0 e0 18: 0 163 0 0 96 97 0 0 e0 20: 113 140 164 0 166 0 0 0 e0 28: 0 0 255 0 0 0 114 0 e0 30: 115 0 150 0 0 98 255 99 e0 38: 100 0 0 0 0 0 0 0 e0 40: 0 0 0 0 0 119 119 102 e0 48: 103 104 0 105 112 106 118 107 e0 50: 108 109 110 111 0 0 0 0 e0 58: 0 0 0 125 126 127 116 142 e0 60: 0 0 0 143 0 217 156 173 e0 68: 128 159 158 157 155 226 0 112 e0 70: 0 0 0 0 0 0 0 0 e0 78: 0 0 0 0 0 0 0 0
Le corrispondenze tra keycode e caratteri (ASCII o UTF-8), cioè la keymap, possono essere visualizzate per mezzo de comando dumpkeys. La keymap viene generalmente caricata in memoria all’avvio del sistema, ma è possibile modificarla in qualunque momento per mezzo del comando loadkeys, che permette di caricare in memoria una keymap contenuta in un file (che generalmente si trova nella directory /usr/lib/kbd/keytables), il cui formato è illustrato dalla man page keymaps(5). Per la definizione della keymap può essere utile anche il comando setmetamode.
[da completare ...] ... esempio di keymap ...
La keymap indica le azioni da compiere in corrispondenza del verificarsi di ogni specifico keycode.
Una volta configurata la tastiera, può essere opportuno configurare il terminale (v. man page console_codes(4)), impostandolo a gestire i caratteri Unicode (UTF-8), per mezzo del comando unicode_start (man page unicode_start(1)).
____________________________________________________________________
Comando: unicode_start
Path: /bin/unicode_start
SINTASSI
$ unicode_start [font [font_map]]
DESCRIZIONE
Il terminale e la tastiera possono essere disabilitati a scambiarsi caratteri Unicode con il comando unicode_stop (man page unicode_stop(1)), che li imposta a funzionare in modalità ad 8 bit (ASCII standard).
|
Nelle recenti distribuzioni di GNU/Linux, la tastiera, nei terminali a carattere è configurata in modalità Unicode (UTF-8) e di conseguenza il terminale a carattere è impostato per visualizzare i caratteri Unicode. |
I simboli utilizzati per la visualizzazione dei caratteri possono essere impostati con il comando setfont o consolechars (???).
Per cancellare quanto visualizzato sullo schermo del terminale si può utilizzare il comando clear (man page clear(1)).
____________________________________________________________________
Comando: clear
Path: /usr/bin/clear
SINTASSI
$ clear
___________________________________________________________________________
Il comando reset (man page tset(1)) invece, permette di inizializzare il terminale. Questo può essere utile qualora il terminale finisse per trovarsi in uno stato anormale.