キーボードのFNキーは、唯一のイベントの代わりにctrl + a、ctrl + c、ctrl + vを送信します。

キーボードのFNキーは、唯一のイベントの代わりにctrl + a、ctrl + c、ctrl + vを送信します。

xmodmapキーコードマッピングを使用して簡単に再マッピングできる一意のキーコードの代わりに、ctrl+aF2、F3、およびF4キーがそれぞれイベントを送信するキーボードがありますctrl+cctrl+v

私の目標は、キーボードのFn修飾子を押さずに、メディアキーの代わりにキーボードのファンクションキーをファンクションキーとして使用することです。デフォルトでは、キーボードはFNキーを送信する内蔵FNスイッチをサポートしていないようです。

このマッピングをどのように実装できますか?

xevログを見ると、次のイベントを区別できないようです。

実際のctrl+aボタン:

KeyPress event, serial 33, synthetic NO, window 0x2a00001,
    root 0x79a, subw 0x0, time 59266583, (648,900), root:(648,900),
    state 0x0, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XKeysymToKeycode returns keycode: 37
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 36, synthetic NO, window 0x2a00001,
    root 0x79a, subw 0x0, time 59266869, (647,899), root:(648,900),
    state 0x4, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (01) ""
    XmbLookupString gives 1 bytes: (01) ""
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x2a00001,
    root 0x79a, subw 0x0, time 59266989, (647,899), root:(648,900),
    state 0x4, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (01) ""
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x2a00001,
    root 0x79a, subw 0x0, time 59266989, (647,899), root:(648,900),
    state 0x4, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XKeysymToKeycode returns keycode: 37
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

F2キーを押す:

KeyPress event, serial 33, synthetic NO, window 0x2a00001,
    root 0x79a, subw 0x0, time 59337346, (648,900), root:(648,900),
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 33, synthetic NO, window 0x2a00001,
    root 0x79a, subw 0x0, time 59337346, (648,900), root:(648,900),
    state 0x4, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (01) ""
    XmbLookupString gives 1 bytes: (01) ""
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x2a00001,
    root 0x79a, subw 0x0, time 59337451, (648,900), root:(648,900),
    state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x2a00001,
    root 0x79a, subw 0x0, time 59337451, (648,900), root:(648,900),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

このキーボードのブランドはEOENKKです。

出力bluetoothctl info <device>

[Bluetooth Keyboard]# info 15:10:40:4F:00:07
Device 15:10:40:4F:00:07 (public)
        Name: Bluetooth Keyboard
        Alias: Bluetooth Keyboard
        Appearance: 0x03c1
        Icon: input-keyboard
        Paired: yes
        Bonded: yes
        Trusted: no
        Blocked: no
        Connected: yes
        WakeAllowed: yes
        LegacyPairing: no
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
        UUID: Human Interface Device    (00001812-0000-1000-8000-00805f9b34fb)
        UUID: Unknown                   (0000ff50-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v04E8p7021d0300
        ManufacturerData Key: 0x4b51
        ManufacturerData Value:
  49 45                                            IE              
[Bluetooth Keyboard]# 

キーボード映像:絵

関連情報