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 LockCtrl

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

これは非常にうまく機能します。いくつかの異なるUSBと非USBキーボードを使用して、Fedora 20とArch Linuxでudevバージョン208と212を試しました。

使い方Caps LockCtrlウデブ

修正する

左キーCtrl自体が別のキーに再マップされると、再マップされたキーは左キーの役割を開始しますCtrl。たとえば、

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

この動作は、再マップされたキーと元のキーの両方を修飾キーとして保持できる非USBキーボードとは異なります。

関連情報