如何重新映射 Fn 组合键 (Lenovo G500)

Ana*_*oli 5 keyboard-layout xmodmap

我在联想 G500 笔记本电脑上运行 Kubuntu 13.10。

我的问题与此类似: 如何在 HP 笔记本电脑上重新映射 F 键?

也就是说,我的 F1-F12 键被映射到某些特殊功能,只有按住 Fn 键才能恢复对标准 F1-F12 键的访问。 如何重新映射某些密钥或设备?

我想知道是否有办法将 Fx 重新映射到 Fn+Fx,反之亦然。按照#87043 的说明,我检查了我的 BIOS,没有选项可以切换 Fx/Fn 键功能。

通过谷歌搜索 Leonovo 的支持论坛表明启用此功能的 BIOS 更新正在进行中,但没有迹象表明何时完成。

使用 xev 我能够看到按下 F1-F12 时 X 看到的内容。有些发送单独的键码,但有些则以某种方式映射到组合键或其他未知事物:

F1 - XF86AudioMute

F2 - XF86AudioVolumeLower

F3 - XF86AudioVolumeRaise

F4 - Alt_L + F4

F5 - F5

F6 - 禁用 touchapd,无法完全理解 xev 告诉我正在发生的事情,如果禁用则重新启用(内核日志显示这些具有明确定义的扫描码,未分配给任何键码)

F7 - XF86WLAN

F8 - Alt_L + Ctrl_L + Tab

F9 - 关闭 LCD 背光,xev 什么也看不到

F10 - Super_L + p

F11 - XF86MonBrightnessLower

F12 - XF86MonBrightnessRaise

按照此页面上的说明进行操作: 如何重新映射某些密钥或设备?

我重新映射了所有具有明确键码的键(F1、F2、F3、F5、F7、F11、F12)这仍然使 F4、F6、F8、F9、F10 键无法正常工作。

这尤其令人沮丧,因为 F4、F6、F9 现在分别杀死当前窗口、触摸板和屏幕。

将这些键重新映射到其正确功能的任何帮助将不胜感激!-安纳托利

这 5 个键的 xev 输出:

F4

KeyPress event, serial 40, synthetic NO, window 0x4800001,
    root 0x9d, subw 0x0, time 3674037, (228,298), root:(911,321),
    state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

FocusOut event, serial 40, synthetic NO, window 0x4800001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 40, synthetic NO, window 0x4800001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 40, synthetic NO, window 0x0,
    keys:  4294967197 0   0   0   0   0   0   0   65  0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeyRelease event, serial 40, synthetic NO, window 0x4800001,
    root 0x9d, subw 0x0, time 3674040, (228,298), root:(911,321),
    state 0x8, keycode 70 (keysym 0xffc1, F4), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4800001,
    root 0x9d, subw 0x0, time 3674042, (228,298), root:(911,321),
    state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

ClientMessage event, serial 40, synthetic YES, window 0x4800001,
    message_type 0x12a (WM_PROTOCOLS), format 32, message 0x12b (WM_DELETE_WINDOW)
Run Code Online (Sandbox Code Playgroud)

F6 禁用触摸板

MappingNotify event, serial 40, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

FocusOut event, serial 40, synthetic NO, window 0x4600001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 40, synthetic NO, window 0x4600001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 40, synthetic NO, window 0x0,
    keys:  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

MappingNotify event, serial 41, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248
Run Code Online (Sandbox Code Playgroud)

F6 启用触摸板

MappingNotify event, serial 42, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

FocusOut event, serial 42, synthetic NO, window 0x4600001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 42, synthetic NO, window 0x4600001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 42, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

MappingNotify event, serial 43, synthetic NO, window 0x0,
    request MappingPointer, first_keycode 0, count 0
Run Code Online (Sandbox Code Playgroud)

F8 做什么 F8 做什么

KeyPress event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3508985, (13,-12), root:(696,11),
    state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3508986, (13,-12), root:(696,11),
    state 0x8, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3508988, (13,-12), root:(696,11),
    state 0xc, keycode 23 (keysym 0xff09, Tab), same_screen YES,
    XLookupString gives 1 bytes: (09) " "
    XmbLookupString gives 1 bytes: (09) "       "
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3508989, (13,-12), root:(696,11),
    state 0xc, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3508991, (13,-12), root:(696,11),
    state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3508994, (13,-12), root:(696,11),
    state 0x0, keycode 23 (keysym 0xff09, Tab), same_screen YES,
    XLookupString gives 1 bytes: (09) " "
    XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)

F9 不给 xev 输出

F10 做什么 F10 做什么

KeyRelease event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3586076, (9,-14), root:(692,9),
    state 0x0, keycode 10 (keysym 0x31, 1), same_screen YES,
    XLookupString gives 1 bytes: (31) "1"
    XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3586552, (9,-14), root:(692,9),
    state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3586554, (9,-14), root:(692,9),
    state 0x40, keycode 33 (keysym 0x70, p), same_screen YES,
    XLookupString gives 1 bytes: (70) "p"
    XmbLookupString gives 1 bytes: (70) "p"
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3586557, (9,-14), root:(692,9),
    state 0x40, keycode 33 (keysym 0x70, p), same_screen YES,
    XLookupString gives 1 bytes: (70) "p"
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4600001,
    root 0x9d, subw 0x0, time 3586560, (9,-14), root:(692,9),
    state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)