AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1541900
Accepted
wischi
wischi
Asked: 2025-02-21 00:00:08 +0800 CST2025-02-21 00:00:08 +0800 CST 2025-02-21 00:00:08 +0800 CST

Wayland 上 de-e1 键盘布局上的粘性修改器

  • 772

(Ubuntu 24.04.2 LTS,64 位,Gnome 46,Wayland,Linux 6.8.0-53-通用)

我最近切换到一种新的键盘布局,即 de-e1(“E1”是典型的德语(de)键盘布局的超集),如下所示:

德语键盘变体 E1 布局 有关维基百科布局的详细信息(德语,尚无英文文章,但我的问题不需要 - 我希望):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和+ →可以 正常工作。Shift5₰

如何提供帮助

我将非常感激所有关于我可以尝试查找问题的提示和想法。如果你们中的一些人可以暂时切换到德语 de-e1 键盘布局,特别是在 Wayland 上(不一定是 Ubuntu),并让我知道您是否可以重现这些问题,以帮助我找出这是否只是我的机器上出了问题,或者是 Wayland 或 xkb 布局配置中的错误,或者其他什么,那就太好了。

感谢您花时间阅读这个长问题,并提前感谢您的帮助。

keyboard
  • 1 1 个回答
  • 38 Views

1 个回答

  • Voted
  1. Best Answer
    wischi
    2025-02-21T18:46:45+08:002025-02-21T18:46:45+08:00

    我尝试了其他一些方法并最终解决了这两个问题。

    1. 我将 Ubuntu 从 24.04.2 更新到了 24.10,修复了Ex-mode的“粘性”问题 #1
    2. 我修改了 xkb 配置文件,de并将符号替换permille为 UnicodeU2030

    重启后,两个问题都消失了,一切似乎都按预期运行。遗憾的是,我仍然不确定是什么导致了这些问题。

    • 0

相关问题

  • 有哪些有用的键盘快捷键?[关闭]

  • 如何在 Compiz->Commands 中获得超过 12 个命令?[关闭]

  • 输入语言切换键只接受 shift-alt 而不是 alt-shift [关闭]

  • 如何在键盘上映射未映射的键?[关闭]

  • 如何重置我的键盘布局?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve