本文包括:Arch Linux上KDE Wayland环境下Fcitx5输入法的兼容性配置,包括但不限于:Flatpak应用,Qt应用(如wemeet),Electron应用(如新QQ)。
Flatpak
flatpak 沙箱应用启动时不会读到
~/.config/gtk-3.0/settings.ini,而是~/.var/app/$APP_ID/config(受 XDG_CONFIG_HOME 控制)。你可以使用 Flatseal 为所有 flatpak 应用(global)设定 GTK_IM_MODULE=fcitx 环境变量,也可以添加允许读取 xdg-config/gtk-3.0:ro,这样就能读到主机配置文件了。
千万不要安装Flatpak里的Fcitx5包,那是一个完整的输入法,并且有一定概率顶替掉系统级软件包从而被KDE的GUI面板使用,虽然表面上看着没什么问题但是实际上会导致一切诸如主题的高级功能无法使用(因为配置文件都不知道放哪儿了)。
Qt应用
某些Qt应用(例如腾讯会议)在未配置的情况下无法使用Fcitx5输入法。KDE授意在Wayland下不配置GTK_IM_MODULE和QT_IM_MODULE全局环境变量,但是有些软件依赖该配置。我们也不需要打破这条规则,直接在开始菜单里右键应用图标,选择“编辑应用程序”,在“环境变量”一栏中填入即可。
需要注意的是,QT_IM_MODULE环境变量应当设置为fcitx而非fcitx5,否则将仍然无法使用输入法。官方文档有时候还是非常有用的。
PS:前面的环境变量__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json也是腾讯会议相对重要的一个配置,否则在某些双显卡的笔记本下,使用独显直连模式时会导致无法观看他人的屏幕共享。
Electron应用
Electron这玩意儿属实臭名昭著,但是谁叫它用的是几乎无缝的JavaScript技术栈呢?QQ就是要用Electron,腾子才不会管你对它怨言多大。
同样根据官方文档,只要在运行参数中添加–enable-features=UseOzonePlatform –ozone-platform=wayland –enable-wayland-ime即可。
需要注意的是,某些教程会让你使用包含--ozone-platform-hint=auto的启动参数,在我这里无法使用,因为这样的话QQ会跑在X11模式下而非原生Wayland,现象就是除非在环境变量里设置XMODIFIERS=@im=fcitx,也就是使用XWayland,否则还是无法使用输入法。
其它
GTK应用
默认情况下使用没碰到问题,暂时不讲。
JetBrains IDE
JetBrains一系的IDE都是用Java写的,正是这一点造就了它强大的跨平台能力。
しかし,Wayland的支持可以说是有进度但是非常缓慢,特别是输入法这块,至少早在2023年就有人提交了issue请他们支持原生Wayland输入法,然而这两年过去了,15天前(2025/10/10)才有确切消息说2025.3版本会部分支持Wayland输入法,“对周围文本API的支持”(别问我啥意思我也不知道,但是应该是挺重要一个功能)则计划推迟到2026.1版本。
2025.3这个版本已经进公开测试版了,急的可以先从AUR下一个JetBrains Toolbox装一装测试版,其他人就等一手正式版更新吧,AUR应该会立马跟上,我也会到时候更新。
在XWAYLAND模式下,把XMODIFIERS=@im=fcitx加进应用程序的环境变量里就好了。
2025/11/14更新
JetBrains Rider 2025.3版本已经能够在原生Wayland模式下使用中文fcitx5输入法。
帮助-编辑自定义虚拟机选项,在尾部添加一行:
1 | -Dawt.toolkit.name=WLToolkit |
然后重启IDE即可。