(Ubuntu 24.04.2 LTS,64 位,Gnome 46,Wayland,Linux 6.8.0-53-通用)
我最近切换到一种新的键盘布局,即 de-e1(“E1”是典型的德语(de)键盘布局的超集),如下所示:
有关维基百科布局的详细信息(德语,尚无英文文章,但我的问题不需要 - 我希望):https://de.wikipedia.org/wiki/E1_(Tastaturbelegung)
布局如何运作
右下角的符号可以用AltGr
+ 键书写(例如AltGr
,+g
表示德语大写尖音 S“ẞ”)。首先切换到Ex 模式(“Extra-Wahltaste”)即可到达右上角的符号。
Ex-Mode: AltGr
+ f
(然后再次放手)
此模式应等待/坚持下一个(下一个)按键。此Ex 模式再次分为“小写”和“大写”。例如,看一下R
键。我切换到Ex 模式,然后按下 来r
获取™
或R
(使用 shift)来获取®
。
问题 1:粘性 Ex 模式
在 Wayland 上,如果我想写,əxample
我会切换到Ex 模式并按下 e 键来获取,ə
但当我继续写剩下的单词时,我得到的是ə„ample
。Wayland上的Ex 模式似乎总是停留在两个键击上(正确的是e
,错误的也是x
),这有点烦人,因为我不得不按退格键并再次输入。
这不会发生在通过 XWayland 的应用程序上(例如 上列出的 vscode 或 opera xlsclients
)。在那里,Ex-Mode(正确地)仅适用于下一次按键,而不是两次。
我还检查了 wayland 事件 ( wev
),它为我之前的示例提供了以下输出:
[14: wl_keyboard] key: serial: 28470; time: 169408635; key: 108; state: 1 (pressed)
sym: ISO_Level3_Shift (65027), utf8: ''
[14: wl_keyboard] modifiers: serial: 0; group: 0
depressed: 00000080: Mod5
latched: 00000000
locked: 00000000
[14: wl_keyboard] key: serial: 28472; time: 169408793; key: 41; state: 1 (pressed)
sym: ISO_Level5_Latch (65042), utf8: ''
[14: wl_keyboard] modifiers: serial: 0; group: 0
depressed: 000000A0: Mod3 Mod5
latched: 00000000
locked: 00000000
[14: wl_keyboard] key: serial: 28474; time: 169408872; key: 41; state: 0 (released)
sym: NoSymbol (0), utf8: ''
[14: wl_keyboard] modifiers: serial: 0; group: 0
depressed: 00000080: Mod5
latched: 00000020: Mod3
locked: 00000000
[14: wl_keyboard] key: serial: 28476; time: 169408928; key: 108; state: 0 (released)
sym: ISO_Level3_Shift (65027), utf8: ''
[14: wl_keyboard] modifiers: serial: 0; group: 0
depressed: 00000000
latched: 00000020: Mod3
locked: 00000000
[14: wl_keyboard] key: serial: 28478; time: 169409344; key: 26; state: 1 (pressed)
sym: schwa (16777817), utf8: 'ə'
[14: wl_keyboard] modifiers: serial: 0; group: 0
depressed: 00000000
latched: 00000000
locked: 00000000
[14: wl_keyboard] key: serial: 28480; time: 169409468; key: 26; state: 0 (released)
sym: e (101), utf8: ''
[14: wl_keyboard] key: serial: 28481; time: 169409816; key: 53; state: 1 (pressed)
sym: x (120), utf8: 'x'
[14: wl_keyboard] key: serial: 28482; time: 169409917; key: 53; state: 0 (released)
sym: x (120), utf8: ''
[14: wl_keyboard] key: serial: 28483; time: 169410300; key: 38; state: 1 (pressed)
sym: a (97), utf8: 'a'
[14: wl_keyboard] key: serial: 28484; time: 169410390; key: 38; state: 0 (released)
sym: a (97), utf8: ''
[14: wl_keyboard] key: serial: 28485; time: 169410772; key: 58; state: 1 (pressed)
sym: m (109), utf8: 'm'
[14: wl_keyboard] key: serial: 28486; time: 169410863; key: 58; state: 0 (released)
sym: m (109), utf8: ''
[14: wl_keyboard] key: serial: 28487; time: 169411200; key: 33; state: 1 (pressed)
sym: p (112), utf8: 'p'
[14: wl_keyboard] key: serial: 28488; time: 169411290; key: 33; state: 0 (released)
sym: p (112), utf8: ''
[14: wl_keyboard] key: serial: 28489; time: 169411560; key: 46; state: 1 (pressed)
sym: l (108), utf8: 'l'
[14: wl_keyboard] key: serial: 28490; time: 169411650; key: 46; state: 0 (released)
sym: l (108), utf8: ''
[14: wl_keyboard] key: serial: 28491; time: 169411954; key: 26; state: 1 (pressed)
sym: e (101), utf8: 'e'
[14: wl_keyboard] key: serial: 28492; time: 169412066; key: 26; state: 0 (released)
sym: e (101), utf8: ''
这实际上让我有点惊讶,因为这些事件似乎是正确的(显示x
而不是„
)。
问题 2:千分符号 (‰) 不起作用
第二个问题似乎不是 Wayland 特有的,因为它也发生在 XWayland 中。
按键5
右上角有千分之一的符号,因此应该可以使用
Ex 模式访问,5
但实际上它只是打印了数字 5。我检查了本地 xkb 配置,它与 gitlab 上的最新版本完全匹配:https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/blob/master/symbols/de#L106
它在那里定义,而且看起来确实正确,或者至少是合理的。我似乎找不到permille
在 xkb 中定义的配置。也许所有这些符号都是硬编码的?这个permille
符号也在许多其他 xkb 布局中使用,所以我猜它可能是一个受支持的符号,应该可以工作。
也许有其他东西可以处理/捕获该特定组合键?因为EX 模式GERMAN PENNY SIGN
和+ →可以 正常工作。Shift
5
₰
如何提供帮助
我将非常感激所有关于我可以尝试查找问题的提示和想法。如果你们中的一些人可以暂时切换到德语 de-e1 键盘布局,特别是在 Wayland 上(不一定是 Ubuntu),并让我知道您是否可以重现这些问题,以帮助我找出这是否只是我的机器上出了问题,或者是 Wayland 或 xkb 布局配置中的错误,或者其他什么,那就太好了。
感谢您花时间阅读这个长问题,并提前感谢您的帮助。