我有一个 Cherry 蓝牙键盘,其中包含计算器、邮件、家庭/myPC 的特殊键。我想将它们重新映射到多媒体键,但失败了。我使用了xbindkeys
,它们分别标识为XF86Calculator
、XF86Mail
和XF86HomePage
。但是,将它们绑定到X86AudioNext
、X86AudioPlay
和X86AudioPrev
不起作用。
我检查了xev
输出:
KeyRelease event, serial 37, synthetic NO, window 0x6e00001,
root 0xe8, subw 0x0, time 7101116, (580,268), root:(3094,1340),
state 0x10, keycode 148 (keysym 0x1008ff1d, XF86Calculator), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x6e00001,
root 0xe8, subw 0x0, time 7101620, (580,268), root:(3094,1340),
state 0x10, keycode 158 (keysym 0x1008ff2e, XF86WWW), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 37, synthetic NO, window 0x6e00001,
root 0xe8, subw 0x0, time 7101812, (580,268), root:(3094,1340),
state 0x10, keycode 180 (keysym 0x1008ff18, XF86HomePage), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
于是,我尝试创建一个.Xmodmap
文件
keycode 148 = XF86AudioPrev
keycode 158 = XF86AudioPlay
keycode 180 = XF86AudioNext
但xmodmap .Xmodmap
再次没有任何效果。
然后我检查了/usr/share/X11/xkb/keycodes/xfree86
替代的键符号,并相应地更改了 /usr/share/X11/xkb/symbols/pc,然后重新启动了xkb
配置文件。
key <I14> { [ XF86AudioPrev ] };
key <I1E> { [ XF86AudioPlay ] };
key <I78> { [ XF86AudioNext ] };
知道还能做什么吗?
经过一天的摆弄,我发现计算器和邮件的前两个键可以作为媒体键使用,而 home/myPC 仍然没有响应。对于功能键,xev
给出了以下响应
FocusIn event, serial 50, synthetic NO, window 0x6c00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 50, synthetic NO, window 0x0,
keys: 2 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
更令人困惑的是,不起作用的 myPC 键会返回四个事件xev
,分别针对两个不同的键码,外加一个换行符XKeysymToKeycode returns keycode: 171
我目前的解决方法是使用ctrl + myPC
。这在 xbindkeys 中效果很好。
Debian GNU/Linux 9(延伸)
内核:4.9.0-6-amd64
Xfce4
答案1
我推荐我的项目:键重映射器,使用简单,直接。
我的 Ctrl 键坏了,所以我写了这个,哈哈