Xubuntu 22.04 部分Super+字母快捷键失效问题求助
Xubuntu 22.04 部分Super+字母快捷键失效问题求助
大家好,我刚全新安装了Xubuntu 22.04,遇到了一个头疼的快捷键问题——我设置了一些Super+字母的自定义快捷键,但部分组合完全失效,之前用Xubuntu 16.04的时候完全没这个问题。
具体问题
举个最基础的例子,我设置的Super+W启动浏览器的快捷键完全没用:如果当前焦点在终端窗口,按下这个组合只会输入字母w,就像只按了W键一样。
重要细节:我用的是外接AZERTY键盘,W键就在左Super键的正上方。
还有两个有意思的现象:
- 有趣细节1:如果我重新修改这个快捷键绑定的命令,它会暂时正常工作,但重启后问题又会复发。
- 有趣细节2:不是所有Super+字母组合都失效,能不能用完全取决于对应的字母键。
受影响与正常的按键列表
我测试了所有字母键的Super组合,在终端里观察是否会输出字母(输出字母就代表快捷键失效),整理如下:
失效的按键(按下Super+对应字母会输出字符)
对应键盘三排字母的分布(-表示该位置按键正常):
-----yuio- q---ghjk-m wxcvbn
具体涉及的字母:y u i o q g h j k m w x c v b n
正常工作的按键(按下Super+对应字母不会输出字符,快捷键生效)
对应键盘三排字母的分布:
azert----p -sdf----l- ------
具体涉及的字母:a z e r t p s d f l
xev命令测试结果
我用xev -event keyboard命令捕捉了按键事件,对比了两种场景的输出:
快捷键失效时(Super+W)
KeyPress event, serial 28, synthetic NO, window 0x4c00001, root 0x6c9, subw 0x0, time 7273892, (165,-11), root:(1036,524), state 0x10, keycode 133 (keysym 0xffeb, Super_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 28, synthetic NO, window 0x4c00001, root 0x6c9, subw 0x0, time 7274156, (165,-11), root:(1036,524), state 0x50, keycode 52 (keysym 0x77, w), same_screen YES, XLookupString gives 1 bytes: (77) "w" XmbLookupString gives 1 bytes: (77) "w" XFilterEvent returns: False KeyRelease event, serial 28, synthetic NO, window 0x4c00001, root 0x6c9, subw 0x0, time 7274244, (165,-11), root:(1036,524), state 0x50, keycode 52 (keysym 0x77, w), same_screen YES, XLookupString gives 1 bytes: (77) "w" XFilterEvent returns: False KeyRelease event, serial 28, synthetic NO, window 0x4c00001, root 0x6c9, subw 0x0, time 7274396, (165,-11), root:(1036,524), state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False
重新定义命令后快捷键暂时生效时(Super+W)
KeyPress event, serial 28, synthetic NO, window 0x5000001, root 0x6c9, subw 0x0, time 8245188, (166,-9), root:(1037,526), state 0x10, keycode 133 (keysym 0xffeb, Super_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeymapNotify event, serial 28, synthetic NO, window 0x0, keys: 4294967241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KeyRelease event, serial 28, synthetic NO, window 0x5000001, root 0x6c9, subw 0x0, time 8245796, (166,-9), root:(1037,526), state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False
我的初步分析
我猜测系统没有正确处理部分Super+字母的组合键。重新绑定命令后快捷键能暂时工作,说明此时系统的处理逻辑有变化,但这种修复没法持久化,重启就打回原形。
对比两次xev的输出,我发现失效时没有触发KeymapNotify事件,但完全搞不懂背后的机制,也不知道怎么解决这个问题。
希望有大佬能帮忙排查,如果需要更多细节我随时补充!
备注:内容来源于stack exchange,提问作者Mac
相关产品推荐
相关产品推荐

