KEY_PRESENTATIONをxmodmap互換エントリに再マップするためにudev hwdbの設定中にブロックされました。

KEY_PRESENTATIONをxmodmap互換エントリに再マップするためにudev hwdbの設定中にブロックされました。

だから私はAcer Nitroノートブックを持っていて、Cinnamon DEの実行中にDebianの本をインストールしました。このノートブックには、数字キーパッドの横に特別な「Nitro Sense」キーがあります。 Windows では、このキーを押すと acer の拡張がシステム全体に伝播しますが、Linux ではキーコード 425(KEY_PRESENTATION) を送信します。

このキーを使って端末を開きたいので、xmodmapを設定しようとしましたが、0〜255の間のキーコードだけが機能しているようです。/usr/share/X11/xkb/keycodes/evdevここで定義されているので、私はこれを知っています。

// Key codes below cannot be used in X
<I433> = 433;           // #define KEY_PRESENTATION        425

udevを使ってKEY_PRESENTATIONを4つのKEY_PROGキーのうちの1つに再マップしようとしていますが、運はありません。

/etc/udev/hwdb.d/99-acer-nitro-nitrosense-key-remap.hwdb次の内容で新しいファイルを作成します。

evdev:input:b0011v0001p0001eAB41*
 KEYBOARD_KEY_f5=prog3

デバイスのバスタイプ、製品、ベンダー、およびバージョンの出力に基づいて入力を構築しました。

$ ls /sys/class/input/event0/device/id
bustype  product  vendor  version

$ cat /sys/class/input/event0/device/id/* 
0011 
0001 
0001 
ab41

その後、次のコマンドを実行してinitramfsを更新してコンピュータを再起動します。

systemd-hwdb update 
(i have also tried running: udevadm hwdb --update)

udevadm trigger /dev/input/event0

ただし、コンピュータを再起動して実行すると、udevadm info /sys/class/input/event0次の行が表示されます。KEYBOARD_KEY_f5=プレゼンテーション変えるKEYBOARD_KEY_f5=prog3

使っていますKEYBOARD_KEY_f5なぜなら、evtestを実行するときにキーを押すと、次のような結果が出力されるからです。

Event: time 1675476830.534080, -------------- SYN_REPORT ------------
Event: time 1675476831.052993, type 4 (EV_MSC), code 4 (MSC_SCAN), value f5
Event: time 1675476831.052993, type 1 (EV_KEY), code 425 (KEY_PRESENTATION), value 1
Event: time 1675476831.052993, -------------- SYN_REPORT ------------
Event: time 1675476831.166335, type 4 (EV_MSC), code 4 (MSC_SCAN), value f5
Event: time 1675476831.166335, type 1 (EV_KEY), code 425 (KEY_PRESENTATION), value 0
Event: time 1675476831.166335, -------------- SYN_REPORT ------------

次は何を試すべきかわかりません。どんな助けでも大変感謝します。

ベストアンサー1

キーボードはUSBキーボードではなくATキーボードと見なすことができます(sudo evemu-describe確認するには実行してください)。すべてのATキーボードに適用されるルールを作成します。

evdev:atkbd:*
 KEYBOARD_KEY_f5=prog3

おすすめ記事