キーコードがわからない場合は、Udev hwdbキーの再マッピング

キーコードがわからない場合は、Udev hwdbキーの再マッピング

/etc/udev/hwdb.d/70-keyboard.hwdbいくつかのキーボードキーを再マップするファイルを作成しました。追加のキーを再マップしたいのですが、どの識別子を使用する必要があるのか​​わかりません。

通常、キーボードキーを実行して押すevtestと、次のような出力が表示されます。

Event: time 1639158329.532434, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7000f
Event: time 1639158329.532434, type 1 (EV_KEY), code 38 (KEY_L), value 1

70-keyboard.hwdbその後、上記の最初の行(「EV_MSC」を含む)で16進数の「値」を使用して、私のファイルに次の行を設定しました。

 KEYBOARD_KEY_7000f=rightctrl

今再マップしたいキーは私のものです。 16進値を識別するためにKEY_KBDILLUMDOWN実行すると、evtest出力は1行だけ表示され、「EV_MSC」を含む行はありません。

Event: time 1639158417.741165, type 1 (EV_KEY), code 229 (KEY_KBDILLUMDOWN), value 1

udevでこのキーをどのように再マップしますか?

答え1

おそらく、このキーイベントはACPIドライバによって注入され(実際のキーイベントではありません)、この場合はacpidを介して処理できます。 acpi_listenを試してください(acpidが実行されている場合)。イベントハンドラは/etc/acpi/events/にあり、ハンドラ(デフォルトでは/etc/acpi/にあります)を呼び出します。

この場合、単純なevdevラッパースクリプトを作成して、主要なイベントをacpiイベントハンドラとして生成できます。バラよりここいくつかの例を見てください。

関連情報