キーボードのキーを押すと、スキャン コードと呼ばれる数値コードがコンピューターに送信されます。スキャン コードは、どのキーが押されたかをコンピューターに伝えます。たとえば、典型的な US キーボードでは、A キーは、押すとスキャン コード 30 を送信します (離すと 158)。キーボードが raw モードの場合、キーボード ドライバーは、これらのコードをアプリケーションに直接報告します (「raw」とは、未処理で、そのままキーボードを使用することを意味します)。一部のプログラムは raw モードを使用し、独自のキーボード処理を行います。 X サーバーが最も有名です。
ほとんどのプログラムは、A を押すと、 キー、プログラムは文字 a
を読み取ります (ASCII 97)、そして Shift を押すと +A プログラムは A
を読み取ります (ASCII 65)、および Ctrl を押すと +A プログラムは Ctrl+A
を読み取ります 文字 (ASCII 1)。文字が関連付けられていないキーは、エスケープ シーケンスを送信します。 \e[A
左 、ここで \e
ESC 文字 (ASCII 27) です。キーボード ドライバーは、キーボードが XLATE モード (「変換」の略) とも呼ばれる ASCII モードのときにこの変換を実行します。 XLATE モードでは、アプリケーションは文字入力を行うことができますが、Ctrl+A とは異なり、「左 Shift キーが押された」または Ctrl+Shift+A などのニュアンスにアクセスできないという犠牲が伴います。
kbd_mode
モードを切り替えることができ、引数なしで呼び出すと現在のモードが表示されます。
魔法の SysRq キーの組み合わせは、さまざまな厄介な状況から回復するためのものです。キーの組み合わせの 1 つは Alt+SysRq+K
です 現在の仮想コンソール上のすべてのプログラムを強制終了します。そのプログラムがキーボードを raw モードにすると、ログイン プロンプトで入力できなくなります (システム構成によっては、ログイン プロンプトが表示されることがよくあります)。 Alt+SysRq+R
を押す 文字を入力できる通常の (X 以外の) ASCII モードを復元します。
キーボードが送信するコードのタイプを定義できます。これは、キーボード モードを介して行われます。 kbd_mode
でキーボードのモードを変更できます .
これらはマンページのオプションです:
-s: scancode mode (RAW),
-k: keycode mode (MEDIUMRAW),
-a: ASCII mode (XLATE),
-u: UTF-8 mode (UNICODE).
開発者は、押されたキーのスキャンコードを取得できれば、左シフト キーが押されたなどのキー イベントを簡単にキャッチできます。