Wayland下Electron应用启动参数加入Flag解决Fcitx5中文输入问题

让 Electron 应用以 Wayland 运行后,发现了许多特性,但是也发现中文输入问题很令人头痛,加入输入方式的环境变量后仍然存在 LinuxQQ,Obsidian,VScode,Edge 等 Electron 应用的输入问题,以为 Electron 输入问题一直以来都没能很好解决,最后发现为 Electron 应用的启动参数加入输入方式的 Flag 最行之有效,几乎完美输入中文。

试验

首先通过终端加入 Flag 启动 Electron 应用的方式试验一下有没有效果

  1. /etc/environment下或其他环境变量处添加以下环境变量,并重启电脑:
    QT_IM_MODULE=fcitx
    GTK_IM_MODULE=fcitx
    XMODIFIERS="@im=fcitx"
    SDL_IM_MODULE=fcitx
    
  2. 在终端中输入要打开的 Electron 应用名称,并在其后加入 Flag,以 linuxqq 为例:
    linuxqq --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
    然后在应用中输入中文,看看问题有没有解决。
    因为这个解决方式是暂时性的,可以看到下一步长久性的解决方法,在日常使用中也能无感地解决输入问题。

解决

一般在 Linux 下打开应用主要使用 Rofi 这类启动器,或桌面图标,它们依靠的都是.desktop文件,这个文件包含了应用的启动参数。只要在启动参数加入 Flag,即可在正常打开时都加入以上参数,实现了长久性的解决。
在这里插入图片描述

  1. 找到所需解决输入问题的 Electron 应用的.desktop文件:
    通常.desktop文件存储在/usr/share/applications(比较普遍)或~/.local/share/applications
  2. 打开应用的.desktop文件,并在Exec一行末尾添加以下内容:
--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
  • 意思大概为:
    1. 启用 Ozone 跨平台图形/输入抽象层
    2. 明确指定使用 Wayland 作为 Ozone 的后端
    3. 启用 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
  1. 添加输入方式环境变量:
    这是比较基本的一步。在/etc/environment下或其他环境变量处添加以下内容:

    QT_IM_MODULE=fcitx
    GTK_IM_MODULE=fcitx
    XMODIFIERS=@im=fcitx
    SDL_IM_MODULE=fcitx
    

添加了GTK_IM_MODULE=fcitx输入法会出提示,但是不加的话输入漏字

然后按正常的方式打开应用(使用 Rofi 或桌面图标)打开应用,就应该都能使用中文输入了。

提示

  • 考虑到 Wayland IME 有多个版本的协议,有可能需要再加入 --wayland-text-input-version=3

    text-input 协议虽好,但他要求 Wayland 合成器和客户端使用相同版本的协议2,GNOME 只支持 input-text-v3,而 Chromium 默认使用 text-input-v1,所以我们还需要通过一个参数来指定协议版本。

  • 各类 Electron 应用应该都能用这种方式解决中文输入问题,基本是一劳永逸
  • vscode这类有明确 flag 配置命名的,可以在 ~/.confg/中创建 flag 配置,如electron-flags.conf(通用的 electron 应用 flag),并加入上述的 Flag 即可
  • (可选)可以在环境变量中加入ELECTRON_OZONE_PLATFORM_HINT=auto,让支持的 Electron 应用均以 Wayland 打开,获得崭新的体验,如果有输入问题再按上述处理(当然不排除会有更多除输入法外的奇怪问题…)

对于我这种强迫症来说,有更先进的东西是不会放着不用的,只能多多吐槽,快快跟进吧…

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值