问题
如果从配置的键盘布局列表中选择了西班牙语布局,则每当我按下应该与之对应的键时<
(\
就像我使用英语布局一样);其他每个键都可以正常工作。
背景
我使用的是采用 ISO UK 布局的 Durgod 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
是怎样的,以及在它正常工作的情况下是怎样的...但不确定它是什么意思,0x2000
0x0
系统信息
作为参考,我使用:
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 z和Alt Gr Shift x来获取<
和>
符号,但我还是想修复它。