我的键盘中本应作为 XF86AudioMedia 工作的按键(通过 Fn 组合键)不会在 Linux 中打开默认音乐播放器,但在 Windows 中却可以工作,打开 Windows 媒体播放器。
据我所见,xev
输出没有显示任何内容,evtest
并将showkey
其标识为 171,但重新映射该代码并xmodmap
没有显示任何内容。
如果有用的话,我的键盘是 Blackweb BWK2T(根据 evtest 的 MOSART Semi.2.4G 无线键盘)。
xev 输出:
MappingNotify event, serial 37, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
FocusOut event, serial 37, synthetic NO, window 0x4e00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 38, synthetic NO, window 0x4e00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 38, synthetic NO, window 0x0,
keys: 123 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
ev测试输出:
Event: time 1512613277.517833, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0183
Event: time 1512613277.517833, type 1 (EV_KEY), code 171 (KEY_CONFIG), value 1
Event: time 1512613277.517833, -------------- SYN_REPORT ------------
Event: time 1512613277.725803, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0183
Event: time 1512613277.725803, type 1 (EV_KEY), code 171 (KEY_CONFIG), value 0
Event: time 1512613277.725803, -------------- SYN_REPORT ------------
答案1
部分答案:
FocusOut
和事件FocusIn
意味着某些其他应用程序(可能是您的窗口管理器)正在捕获该事件,因为它想要对此做出反应(例如启动与此键关联的某些操作)。
KEY_CONFIG
看起来内核输入级别映射对于您的键盘来说是错误的,因此尝试重新映射它是正确的想法。请注意,xmodmap
如果您使用的是 Wayland,而不是 X 服务器,则该方法将不起作用。另请注意,输入级别键控代码与 X 使用的键控代码之间存在偏移量 (IIRC 8)。
建议:首先尝试重新映射其他键(例如a
)b
以查看其工作情况,然后将您的 映射171
到XF86AudioMedia
。您仍需要确保您的桌面、窗口管理器或负责系统的任何人启动媒体播放器(可能通过配置它)。