让 Electron 应用以 Wayland 运行后,发现了许多特性,但是也发现中文输入问题很令人头痛,加入输入方式的环境变量后仍然存在 LinuxQQ,Obsidian,VScode,Edge 等 Electron 应用的输入问题,以为 Electron 输入问题一直以来都没能很好解决,最后发现为 Electron 应用的启动参数加入输入方式的 Flag 最行之有效,几乎完美输入中文。
试验
首先通过终端加入 Flag 启动 Electron 应用的方式试验一下有没有效果
- 在
/etc/environment下或其他环境变量处添加以下环境变量,并重启电脑:QT_IM_MODULE=fcitx GTK_IM_MODULE=fcitx XMODIFIERS="@im=fcitx" SDL_IM_MODULE=fcitx - 在终端中输入要打开的 Electron 应用名称,并在其后加入 Flag,以 linuxqq 为例:
linuxqq --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
然后在应用中输入中文,看看问题有没有解决。
因为这个解决方式是暂时性的,可以看到下一步长久性的解决方法,在日常使用中也能无感地解决输入问题。
解决
一般在 Linux 下打开应用主要使用 Rofi 这类启动器,或桌面图标,它们依靠的都是.desktop文件,这个文件包含了应用的启动参数。只要在启动参数加入 Flag,即可在正常打开时都加入以上参数,实现了长久性的解决。

- 找到所需解决输入问题的 Electron 应用的
.desktop文件:
通常.desktop文件存储在/usr/share/applications(比较普遍)或~/.local/share/applications中 - 打开应用的
.desktop文件,并在Exec一行末尾添加以下内容:
--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
- 意思大概为:
- 启用 Ozone 跨平台图形/输入抽象层
- 明确指定使用 Wayland 作为 Ozone 的后端
- 启用 Wayland IME(Input Method Editor)输入法支持(最关键)
配置好的文件内容大概是这样(以 linuxqq 为例):
[Desktop Entry]
Name=QQ
Exec=linuxqq %U --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
Terminal=false
Type=Application
Icon=qq
StartupWMClass=QQ
Categories=Network;
Comment=QQ
-
添加输入方式环境变量:
这是比较基本的一步。在/etc/environment下或其他环境变量处添加以下内容:QT_IM_MODULE=fcitx GTK_IM_MODULE=fcitx XMODIFIERS=@im=fcitx SDL_IM_MODULE=fcitx
添加了
GTK_IM_MODULE=fcitx输入法会出提示,但是不加的话输入漏字
- 参考:琴吹紬_official - Archlinux KDE wayland下最佳输入法配置
然后按正常的方式打开应用(使用 Rofi 或桌面图标)打开应用,就应该都能使用中文输入了。
提示
- 考虑到 Wayland IME 有多个版本的协议,有可能需要再加入
--wayland-text-input-version=3text-input 协议虽好,但他要求 Wayland 合成器和客户端使用相同版本的协议2,GNOME 只支持 input-text-v3,而 Chromium 默认使用 text-input-v1,所以我们还需要通过一个参数来指定协议版本。
- 参考:杨秋逸 - 在Wayland模式的VSCode中使用fcitx5输入中文
- 各类 Electron 应用应该都能用这种方式解决中文输入问题,基本是一劳永逸
- vscode这类有明确 flag 配置命名的,可以在
~/.confg/中创建 flag 配置,如electron-flags.conf(通用的 electron 应用 flag),并加入上述的 Flag 即可 - (可选)可以在环境变量中加入
ELECTRON_OZONE_PLATFORM_HINT=auto,让支持的 Electron 应用均以 Wayland 打开,获得崭新的体验,如果有输入问题再按上述处理(当然不排除会有更多除输入法外的奇怪问题…)
对于我这种强迫症来说,有更先进的东西是不会放着不用的,只能多多吐槽,快快跟进吧…
参考
- wjqserver - 在Wayland环境下, 为Chromium/Electron开启Fcitx5中文输入支持
- 杨秋逸 - 在Wayland模式的VSCode中使用fcitx5输入中文
- 琴吹紬_official - Archlinux KDE wayland下最佳输入法配置
- Sonny Calcr - 解决 Hyprland/Wayland 下 Chrome/Chromium 系列软件和 Jetbrains 系列软件的缩放和输入法使用的问题
8540

被折叠的 条评论
为什么被折叠?



