生のキーボードモードとは何ですか?

生のキーボードモードとは何ですか?

内部に魔法システムalt+sysrq+rキーの組み合わせWikipediaによると、次のことを行う組み合わせがあります。

キーボードを生モード(X11やsvgalibなどのプログラムで使用されるモード)からXLATEモードに切り替えます。

生モードとは何ですか? XLATEモードとは何ですか?

XLATEモードに切り替えた後、元のモードに戻すことはできますか?

私のキーボードがどのモードにあるのか、どうすればわかりますか?

答え1

キーボードのキーを押すと、スキャンコードと呼ばれる数値コードがコンピュータに送信されます。スキャンコードは、どのキーが押されたかをコンピュータに通知します。たとえば、一般的なアメリカのキーボードでは、キーを押すAとスキャンコード30が送信されます(キーを離すとスキャンコード158が送信されます)。キーボードがネイティブモードにあるとき、キーボードドライバはこれらのコードをアプリケーションに直接報告します(「raw」はキーボードですぐに処理されないことを意味します)。一部のプログラムは生モードを使用し、独自のキーボード処理を実行します。Xサーバー最も目立つものです。

ほとんどのプログラムは、キーを押すとプログラムが文字A(ASCII 97)を読み、+をa押すとプログラムが読み(ASCII 65)、+を押すとプログラムが文字(ASCII 1)を読み取ることを期待しています。 。関連文字のないキーはforなどのエスケープシーケンスを送信します。ここではESC文字(ASCII 27)です。キーボードドライバは、キーボードがXLATEモード(「翻訳」の略語)とも呼ばれるASCIIモードにあるときにこの変換を実行します。 XLATEモードを使用すると、アプリケーションは文字入力を実行できますが、Ctrl + Aとは異なる左ShiftまたはCtrl + Shift + Aの微妙な違いにアクセスできないという欠点があります。ShiftAACtrlACtrl+A\e[ALeft\e

これkbd_modeモード間の切り替えを許可し、引数なしで呼び出すと現在のモードが表示されます。

魔法のSysRqキーの組み合わせは、あらゆる種類の悪い状況から回復するように設計されています。キーの組み合わせの1つは、Alt+SysRq+K現在仮想コンソールにあるすべてのプログラムを終了します。プログラムがキーボードをネイティブモードに切り替えると、ログインプロンプト(システム構成によって頻繁に表示されます)に入力できません。Alt+SysRq+R文字を入力できる一般(Xを除く)ASCIIモードを再開するには、押します。

答え2

キーボードから送信されるコードの種類を定義できます。これはキーボードモードで行われます。を使ってキーボードモードを変更できますkbd_mode

マンページのオプションは次のとおりです。

   -s: scancode mode (RAW),
   -k: keycode mode (MEDIUMRAW),
   -a: ASCII mode (XLATE),
   -u: UTF-8 mode (UNICODE).

開発者が押したキーのスキャンコードしか取得できない場合は、左のShiftキーを押すなどの主要なイベントをキャプチャする方が簡単です。

関連情報