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


27

マジックSysRqをキーの組み合わせ、組み合わせがあるalt+sysrq+rウィキペディアによると、次の処理を行い、:

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

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

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

キーボードがどのモードにあるかを知るにはどうすればよいですか?

回答:


23

キーボードのキーを押すと、スキャンコードと呼ばれる数値コードがコンピューターに送信されます。スキャンコードは、どのキーが押されたかをコンピューターに伝えます。たとえば、一般的な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のためにLeft\eESC文字(ASCII 27)があります。キーボードがASCIIモード(XLATEモードとも呼ばれます)にある場合、キーボードドライバーはこの変換を実行します(「translate」の略)。XLATEモードを使用すると、アプリケーションは文字入力を行うことができますが、「左Shiftキーを押した」などのニュアンスや、Ctrl + Aとは異なるCtrl + Shift + Aにアクセスする必要はありません。

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

魔法のSysRqキーの組み合わせは、さまざまな厄介な状況から回復するためのものです。キーの組み合わせの1つは、Alt+SysRq+K現在の仮想コンソール上のすべてのプログラムを強制終了することです。そのプログラムがキーボードをrawモードにすると、ログインプロンプトで入力することができなくなります(システムの構成によっては表示されることがよくあります)。を押すとAlt+SysRq+R、文字を入力できる通常の(X以外の)ASCIIモードに戻ります。


9

キーボードが送信するコードのタイプを定義できます。これは、キーボードモードで行われます。でキーボードのモードを変更できますkbd_mode

これらはマンページからのオプションです:

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

開発者は、押されたキーのスキャンコードを簡単に取得できれば、左シフトキーが押されたようなキーイベントを簡単にキャッチできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.