ベストアンサー1
入力レイヤーの非常に簡単な概要:
キーボードデバイスはUSBまたはPS / 2ポートなどを介してPCに接続されます。このメカニズムのカーネルドライバは、キーボードのキーを押すと通信を処理する方法を知っています。
USBキーボードには次の標準があります。高圧ガス放電管(ヒューマンインターフェースデバイス)が存在します。これはキーボードだけでなく、マウス、ジョイスティック、その他の入力デバイスにも当てはまります。したがって、記述子カーネルがエクスポートできる信号と、次のようなさまざまなキーストロークのコードを教えてくれます。静かな標準化されています。
ただし、一部のキーボードのキーは標準化されておらず(たとえば、Fn一部のキーボードのキー)、そのキーに信号を送信する方法は製造元によって異なります。
カーネルにはHIDデバイスを処理するための特別な層があります。この層は生のHID通信を可能にし、/dev/hidrawX
HIDイベントをカーネル入力イベントに変換します。
カーネル入力層は以下を使用します。スキャンコード(デバイス固有の物理キーに対応する数値)を次のように変換します。キーコード(すべてのデバイスにわたって標準化された論理キーに対応する数値)両方がイベントとして提供されます/dev/input/eventX
。変換テーブルを表示するには、などをevdev
使用してこれらのイベントを表示できます。showkey
dumpkeys
Xサーバー(またはWayland)はこれらすべてのイベントを読み取り、主なシンボル(例:、等a
またはá
特殊、例AudioMute
:)。 Xアプリケーションはこのシンボルを受け取り、それに応じて動作できます。アプリケーションビューを使用してこのレイヤーを表示しますxev
。xmodmap
xkbd
xorg.conf
対応するにはAudioMute
いくつかのアプリケーションが必要です。通常、これはウィンドウマネージャですが、ウィンドウマネージャがこれを行わない場合は、別のアプリケーションも機能します。
したがって、単一の「キーボードドライバ」はなく、はるかに複雑で、特に「自動」は必要ありません。