/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イベントハンドラとして生成できます。バラよりここいくつかの例を見てください。