Arch Linux、 Obsidian v1.11.4、Wayland
用 fcitx5 在 obsidian 编辑器输入中文。
KDE Plasma
候选框会跟随光标跳动,非常影响输入体验:
GNOME
候选框固定在起始位置,不随输入发生改变,预期的行为:
问题
我想知道是什么原因造成了这个问题,为什么这两种桌面环境会有不同的表现,GNOME 做了什么使它表现正常。
我该如何解决这个问题?我最终要在 niri 中使用 Obsidian。
Arch Linux、 Obsidian v1.11.4、Wayland
用 fcitx5 在 obsidian 编辑器输入中文。
候选框会跟随光标跳动,非常影响输入体验:
候选框固定在起始位置,不随输入发生改变,预期的行为:
我想知道是什么原因造成了这个问题,为什么这两种桌面环境会有不同的表现,GNOME 做了什么使它表现正常。
我该如何解决这个问题?我最终要在 niri 中使用 Obsidian。
在输入法设置里选中「将嵌入预编辑文本的光标固定在开头」选项。
另外「跳动」是什么意思?是「跳动」的意思吗?这个选项应该只影响是否在预编辑字符串后边跟着水平移动。
大概测试了一下,在 Plasma Wayland 下,如果使用 Chromium/Electron 的 text-input v3 实现,无论是否开启 fcitx5 拼音中“将嵌入式预编辑文本的光标固定在开头”的选项,候选框都会紧跟在光标后面,也就是一边打字候选框一边往后退。
而如果使用其 text-input v1 实现,即在 ~/.config/chromium-flags.conf(或 electron-flags.conf ,假设应用使用系统 electron)中加入 --wayland-text-input-version=1,则“将嵌入式预编辑文本的光标固定在开头”的选项可以正常生效,如图:
对,是这个意思
诶,Chromium还有这种问题的吗?我这里不能复现呢。光标是一直在预编辑字符串开头没有移动。
确实很奇怪,不知道是 kwin 还是 chromium 的 text-input v3 实现有问题。不过我试了一下 gtk3 程序应该是没这个问题的
我刚才的截图中就是 chromium 。如果你使用的是 https://aur.archlinux.org/packages/obsidian-bin ,根据它的 wrapper script 实现
你需要修改的是 obsidian-flags.conf 。如果它的 electron 版本比较旧,可能还需要这些
--ozone-platform=wayland
--enable-wayland-ime
--wayland-text-input-version=1
添加这个选项后,在 KDE Plasma 成功修复了这个问题。
但在 niri 中无法在 Obsidian 中使用 fcitx5 了(Ctrl + Space 没有任何反应)
总之感谢解答这个问题。
niri 支持的大部分 wayland 协议应该都是由 smithay 实现的,而后者不支持 text-input v1 ,只有 v3 ,用不了是正常
不过你可以尝试下不加这个参数,看看在 niri 下实际的表现是什么样的
niri 中,Obsidian 不加参数,能打字,不过光标会不断变动,和最初 KDE Plasma 的表现一样
gnome 和 kde 用的什么字体 , fcitx5 用的哪个皮肤
字体: LXGW WenKai Screen
皮肤:plasma