Když stisknete klávesu na klávesnici, odešle se do počítače číselný kód, který se nazývá skenovací kód. Skenovací kód sděluje počítači, která klávesa byla stisknuta; například na typické americké klávesnici A klávesa odešle skenovací kód 30, když jej stisknete (a 158, když jej uvolníte). Ovladač klávesnice hlásí tyto kódy přímo aplikacím, když je klávesnice v nezpracovaném režimu („raw“ znamená nezpracované, přímo z klávesnice). Několik programů používá režim raw a provádí vlastní zpracování klávesnice; X server je nejprominentnější.
Většina programů to očekává, když stisknete A program přečte znak a
(ASCII 97), a to když stisknete Shift +A program přečte A
(ASCII 65), a když stisknete Ctrl +A program čte Ctrl+A
znak (ASCII 1). Klávesy, které nemají přiřazené znaky, odesílají sekvence escape, např. \e[A
pro vlevo , kde \e
je znak ESC (ASCII 27). Ovladač klávesnice provádí tento překlad, když je klávesnice v režimu ASCII, nazývaném také režim XLATE (zkratka pro „přeložit“). Režim XLATE umožňuje aplikacím zadávat znaky za cenu toho, že nemají přístup k takovým nuancím, jako je „stisknuta levá klávesa Shift“ nebo Ctrl+Shift+A na rozdíl od Ctrl+A.
kbd_mode
umožňuje přepínat mezi režimy a zobrazuje aktuální režim, pokud jej vyvoláte bez jakéhokoli argumentu.
Kouzelné kombinace kláves SysRq jsou určeny k zotavení z různých nepříjemných situací. Jedna z kombinací kláves je Alt+SysRq+K
zabít všechny programy na aktuální virtuální konzoli; pokud tento program přepne klávesnici do nezpracovaného režimu, pak nebudete moci psát na výzvu k přihlášení (která se často objeví v závislosti na konfiguraci vašeho systému). Stisknutím Alt+SysRq+R
obnoví obvyklý (mimo X) režim ASCII, kde můžete psát znaky.
Můžete definovat, jaký typ kódu odešle klávesnice. To se provádí pomocí režimu klávesnice. Režim klávesnice můžete změnit pomocí kbd_mode
.
Toto jsou možnosti z manuálové stránky:
-s: scancode mode (RAW),
-k: keycode mode (MEDIUMRAW),
-a: ASCII mode (XLATE),
-u: UTF-8 mode (UNICODE).
Pro vývojáře je mnohem snazší zachytit klíčové události, jako je stisknutí levého tlačítka Shift, pokud může jednoduše získat skenovací kódy stisknutých kláves.