udev では USB キーボードの修飾キーを通常のキーにマッピングできない

udev では USB キーボードの修飾キーを通常のキーにマッピングできない

hwdb ファイルを使用すると、 USB キーボードの /etc/udev/hwdb.d/99-keyboard.hwdb左キーを次のキーとして再マップできます。AltCtrl

keyboard:usb:v*p*
 KEYBOARD_KEY_700e2=leftctrl

これは、左Shiftキーをキーとして再マップしようとした場合にも機能しますCtrl

Caps Lockしかし、キーとして再マップしようとするとCtrl、機能しません。

keyboard:usb:v*p*
 KEYBOARD_KEY_70039=leftctrl

実行中はevtest、動作しているはずです。

Event: time 1399438713.757082, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1399438713.757082, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1399438713.757082, -------------- SYN_REPORT ------------
Event: time 1399438713.885078, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1399438713.885078, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0
Event: time 1399438713.885078, -------------- SYN_REPORT ------------

また、私が試した他の非修飾キー、たとえば では機能しませんZ

次のように、USB 以外のキーボードのCaps Lock左キーにマッピングすることも試みました。Ctrl

keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*
 KEYBOARD_KEY_3a=leftctrl

これは完璧に動作します。Fedora 20 と Arch Linux で、いくつかの異なる USB および非 USB キーボードを使用して udev バージョン 208 と 212 を試しました。

USBキーボードで非修飾キーをCaps Lock修飾キーに再マッピングするにはどうすればいいですか?Ctrlユーデブ?

アップデート

左キーCtrl自体が別のキーに再マップされている場合、再マップされたキーは左キーとして機能し始めますCtrl。例:

keyboard:usb:v*p*
 KEYBOARD_KEY_700e0=grave
 KEYBOARD_KEY_70035=esc
 KEYBOARD_KEY_70039=leftctrl
 KEYBOARD_KEY_70029=capslock

この動作は、再マップされたキーと元のキーの両方が修飾子として残る可能性がある非 USB キーボードとは異なります。

関連情報