GNU/Linux テキスト コンソール、X11 は関係なく、実際にはインストールさえされていません。キーボードは US レイアウト、キーマップは US デフォルトです。カーネル バージョン 2.20.x 以降。
C で記述されたアプリケーションは、変換モード (つまりXLATE
、 または) でキーボード入力を取得していますUNICODE
。キーが押されると、アプリケーションは対応するキー文字列を受け取ります。例として、F1 を押すと、アプリケーションは"\033[[A"
.
カーネルがキー文字列をアプリケーションに送信する前に、どのキーが押されたかを知る必要があります。つまり、スキャンコードを知る必要があります。上記の F1 の例では、押されたキーのスキャンコードは 59 または 0x3b です。
つまり、キーボードが翻訳モードの場合でも、スキャンコードはメモリのどこかに保持されます。RAW
キーボードをまたはMEDIUMRAW
モードに切り替えずに、アプリケーションがそれらにアクセスするにはどうすれば
よいですか? コードスニペットが役立ちます。