我有一个罗技蓝牙多功能设备键盘K480,只是按照蓝牙配对安装后,默认设置将离开映射为多媒体键的功能键,所以我必须保持fn访问F1,F2,F3,等。
这对我来说非常违反直觉,我想重新映射它,以便我可以直接访问功能并访问多媒体键 fn
这是F1不按住fn再按住。
KeyPress event, serial 37, synthetic NO, window 0x4e00001,
root 0xd6, subw 0x0, time 63445847, (-438,408), root:(284,460),
state 0x10, keycode 180 (keysym 0x1008ff18, XF86HomePage), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x4e00001,
root 0xd6, subw 0x0, time 63445922, (-438,408), root:(284,460),
state 0x10, keycode 180 (keysym 0x1008ff18, XF86HomePage), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 37, synthetic NO, window 0x4e00001,
root 0xd6, subw 0x0, time 63446510, (-438,408), root:(284,460),
state 0x10, keycode 67 (keysym 0xffbe, F1), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x4e00001,
root 0xd6, subw 0x0, time 63446597, (-438,408), root:(284,460),
state 0x10, keycode 67 (keysym 0xffbe, F1), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)
罗技似乎在 Linux 以外的各种操作系统上提供了一个特殊的驱动程序,它通过向键盘发送一个未记录的魔术命令来完成这种交换。
有些人监视了通信,以找到发送到其他一些类似罗技键盘(例如 760 和 810)的代码。你可以尝试其中之一。
如果失败,您可以使用xmodmap
交换键分配。我们看到您的键盘根据是否按下 Fn 发送 2 个不同的键码。用于xmodmap -pke
列出文件中的所有键映射,然后仅保留引用所需键码的键映射。例如你会有
keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode 180 = XF86HomePage NoSymbol XF86HomePage
Run Code Online (Sandbox Code Playgroud)
等等。简单地反转数字:
keycode 180 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode 67 = XF86HomePage NoSymbol XF86HomePage
Run Code Online (Sandbox Code Playgroud)
然后将此文件名作为参数传递xmodmap
以使其更新映射。