Quando premi un tasto sulla tastiera, invia un codice numerico al computer, chiamato codice di scansione. Il codice di scansione dice al computer quale tasto è stato premuto; ad esempio, su una tipica tastiera americana, la A tasto invia lo scan code 30 quando lo si preme (e 158 quando lo si rilascia). Il driver della tastiera riporta questi codici direttamente alle applicazioni quando la tastiera è in modalità raw ("raw" significa non elaborato, direttamente dalla tastiera). Alcuni programmi utilizzano la modalità raw ed eseguono la propria elaborazione da tastiera; il server X è il più importante.
La maggior parte dei programmi se lo aspetta quando premi A tasto, il programma legge il carattere a
(ASCII 97), e questo quando premi Maiusc +A il programma legge A
(ASCII 65) e quando premi Ctrl +A il programma legge il Ctrl+A
carattere (ASCII 1). Le chiavi che non hanno caratteri associati inviano sequenze di escape, ad es. \e[A
per Sinistra , dove \e
è il carattere ESC (ASCII 27). Il driver della tastiera esegue questa traduzione quando la tastiera è in modalità ASCII, chiamata anche modalità XLATE (abbreviazione di "translate"). La modalità XLATE consente alle applicazioni di eseguire l'inserimento dei caratteri, a costo di non avere accesso a sfumature come "Tasto Maiusc sinistro premuto" o Ctrl+Maiusc+A come distinto da Ctrl+A.
Il kbd_mode
ti consente di passare da una modalità all'altra e mostra la modalità corrente se la invochi senza alcun argomento.
Le magiche combinazioni di tasti SysRq hanno lo scopo di riprendersi da varie brutte situazioni. Una delle combinazioni di tasti è Alt+SysRq+K
terminare tutti i programmi sulla console virtuale corrente; se quel programma mette la tastiera in modalità raw, non sarai in grado di digitare al prompt di accesso (che apparirà spesso, a seconda della configurazione del tuo sistema). Premendo Alt+SysRq+R
ripristina la solita modalità ASCII (fuori da X) in cui puoi digitare i caratteri.
Puoi definire quale tipo di codice invia la tua tastiera. Questo viene fatto tramite la modalità tastiera. Puoi cambiare la modalità di una tastiera con kbd_mode
.
Queste sono le opzioni della manpage:
-s: scancode mode (RAW),
-k: keycode mode (MEDIUMRAW),
-a: ASCII mode (XLATE),
-u: UTF-8 mode (UNICODE).
È molto più facile per uno sviluppatore rilevare eventi chiave come il tasto Maiusc sinistro premuto, se può semplicemente ottenere gli scancode dei tasti premuti.