Linux 中 KDE 下的西班牙语布局中的按键行为异常

Linux 中 KDE 下的西班牙语布局中的按键行为异常

问题

如果从配置的键盘布局列表中选择了西班牙语布局,则每当我按下应该与之对应的键时<\就像我使用英语布局一样);其他每个键都可以正常工作。

背景

我使用的是采用 ISO UK 布局的 Durgod Taurus K310 键盘: Durgo Taurus K310 键盘

我的系统中配置了两种布局:英语(英国)和西班牙语(Windows)

在西班牙语键盘中,<>符号位于左 Shift 键右侧的键中。如果我转到KDE System Settings > Hardware > Input Devices > Keyboard > Layouts西班牙语布局并单击“预览”,我可以看到布局与我的预期相符,特别是那个有问题的键: 预览

为了进行比较,请参见英语(英国)布局: 在此处输入图片描述

每当我启用西班牙语布局时,除了该键之外,一切都正常工作,其行为就像我使用英语布局一样:

  • <\
  • Shift <|
  • Alt Gr Shift <¦

调试信息

当我检查setxkbmap -query这种情况时,我得到以下结果:

$ setxkbmap -query
rules:      evdev
model:      pc105
layout:     gb,es
variant:    ,winkeys

有趣的是,如果我setxkbmap es在终端上运行,问题就会消失。在这种情况下,我得到以下输出:

$ setxkbmap -query
rules:      evdev
model:      pc105
layout:     es

我检查了xev按下按键时每种情况下发生的情况,结果如下:

之后setxbmap es(工作正常)

KeyPress event, serial 57, synthetic NO, window 0x5800001,
    root 0x1d4, subw 0x0, time 13307375, (587,288), root:(587,342),
    state 0x0, keycode 94 (keysym 0x3c, less), same_screen YES,
    XLookupString gives 1 bytes: (3c) "<"
    XmbLookupString gives 1 bytes: (3c) "<"
    XFilterEvent returns: False

KeyRelease event, serial 57, synthetic NO, window 0x5800001,
    root 0x1d4, subw 0x0, time 13307446, (587,288), root:(587,342),
    state 0x0, keycode 94 (keysym 0x3c, less), same_screen YES,
    XLookupString gives 1 bytes: (3c) "<"
    XFilterEvent returns: False

未运行setxkbmap es(有缺陷的行为)

KeyPress event, serial 40, synthetic NO, window 0x400001,
    root 0x1d4, subw 0x0, time 13889008, (1163,392), root:(1163,446),
    state 0x2000, keycode 94 (keysym 0x5c, backslash), same_screen YES,
    XLookupString gives 1 bytes: (5c) "\"
    XmbLookupString gives 1 bytes: (5c) "\"
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x400001,
    root 0x1d4, subw 0x0, time 13889087, (1163,392), root:(1163,446),
    state 0x2000, keycode 94 (keysym 0x5c, backslash), same_screen YES,
    XLookupString gives 1 bytes: (5c) "\"
    XFilterEvent returns: False

请注意,在这种情况下state是怎样的,以及在它正常工作的情况下是怎样的...但不确定它是什么意思,0x20000x0

系统信息

作为参考,我使用:

Operating System: Arch Linux
KDE Plasma Version: 5.21.5
KDE Frameworks Version: 5.82.0
Qt Version: 5.15.2
Kernel Version: 5.10.41-1-lts
OS Type: 64-bit
Graphics Platform: X11

笔记:我知道我可以使用Alt Gr Shift zAlt Gr Shift x来获取<>符号,但我还是想修复它。

相关内容