AltGr 在系统上不起作用但在 xev (18.04) 中输出正确

AltGr 在系统上不起作用但在 xev (18.04) 中输出正确

我使用的是 Xubuntu 18.04,使用的是意大利语键盘布局。直到 17.10,我都必须使用以下命令手动设置Alt Gr按键:xmodmap

xmodmap -e "keycode 108 = Mode_switch"

此后,该键可以正常工作并允许我输入键盘上没有的字符。

但是自从更新后,我无法让它工作。我尝试将密钥设置Alt Gr为 或Mode_switchISO_Level3_Shift但这两个似乎都不起作用。Mode_switch什么都不做,使用ISO_Level3_Shift或 都没有输出,使用 或 得到相同的密钥但没有密钥Alt Gr,或者得到乱码。

但是,一旦我尝试使用该xev命令检查问题,输出似乎是正确的。例如,以下是我尝试在键盘上输入Alt Gr和的结果,这是获取字符的组合:ò#

# press AltGr
KeyPress event, serial 37, synthetic NO, window 0x2e00001,
    root 0x5c9, subw 0x0, time 910833, (94,262), root:(965,712),
    state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

# press ò
KeyPress event, serial 37, synthetic NO, window 0x2e00001,
    root 0x5c9, subw 0x0, time 911417, (94,262), root:(965,712),
    state 0x98, keycode 48 (keysym 0x23, numbersign), same_screen YES,
    XLookupString gives 1 bytes: (23) "#"
    XmbLookupString gives 1 bytes: (23) "#"
    XFilterEvent returns: False

# release ò
KeyRelease event, serial 37, synthetic NO, window 0x2e00001,
    root 0x5c9, subw 0x0, time 911737, (94,262), root:(965,712),
    state 0x98, keycode 48 (keysym 0x23, numbersign), same_screen YES,
    XLookupString gives 1 bytes: (23) "#"
    XFilterEvent returns: False

# release AltGr
KeyRelease event, serial 37, synthetic NO, window 0x2e00001,
    root 0x5c9, subw 0x0, time 912169, (94,262), root:(965,712),
    state 0x98, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

看起来它#正确地解释了字符,因此它似乎是 X-org 内部的一个通信问题,但我不知道为什么或如何。

我知道这是 X.org 的问题,而不是键盘的问题,因为我可以Ctrl随时Alt在终端中正确F1使用(除了在我升级之前它运行良好这一事实)Alt Gr

有人知道这里可能发生什么吗?

编辑:我拿到了另一台键盘,Alt Gr在 xfce 下使用时没有出现任何问题。而且这台键盘也给出了这一XKeysymToKeycode returns keycode: 92行,所以它似乎不是罪魁祸首。

此时,我猜想键盘通信中发生了一些奇怪的事情,导致 X.org 出现一些问题。我不确定是否有真正的解决方案。如果有人有任何想法,我会测试它们,因为我不想浪费键盘,但现在我只会使用新键盘。

答案1

所以我找到了一个“解决方案”。我只需断开键盘连接并重新连接,现在它就可以正常工作了。但是每次我注销时都必须这样做(但待机不会影响它)。虽然这不是一个完美的解决方案,但至少现在我可以使用它了。

感觉像是 X.org 中的一个错误,我会报告。

如果有人对可能发生的事情有其他意见,我不会接受这个答案。

相关内容