刚装完系统的头十分钟,绝大多数人卡在同一个地方:浏览器打开了,地址栏能打字,但敲出来全是英文;想搜个东西,得先在别处用手机查好再手抄过来。Ubuntu 26.04 这类新 LTS 上做中文输入法安装,难点从来不是"找不到软件包",而是三层东西叠在一起——桌面会话从 X11 全面转向 Wayland、输入法框架本身有 ibus 和 fcitx5 两套生态、以及不同应用(GTK4、Qt6、Electron、Flatpak 沙箱)对输入法的接入方式各不相同。任何一层没对上,表现都是同一句话:"装是装上了,就是打不出字"。
下面这份内容是我自己在几台机器上反复装、反复踩坑之后整理出来的完整路径。它会告诉你 Ubuntu 26.04 上装中文输入法该怎么选路线、每一步为什么要这么做、坏了之后按什么顺序去查。刚接触 Linux 桌面的人可以照着抄,已经用过几年、但每次重装还要翻旧笔记的人,可以重点看排查和 RIME 那两节。
1. 先把路线定下来:Wayland 环境下 ibus 与 fcitx5 的取舍
Ubuntu 从 26.04 这个版本开始,桌面默认会话基本已经全面落在 Wayland 上,X11 会话虽然还留着入口,但很多新机器上的显卡驱动、混合显卡切换、高分屏缩放在 Wayland 下体验明显更好。这一点直接决定了输入法安装的策略:X11 时代那套"改 XMODIFIERS、写 .xinputrc、重启 X"的经验,在 Wayland 下有一部分是失效的,照抄老教程很容易白折腾半小时。
1.1 两套框架的本质差异不在功能,而在"谁负责把按键送到输入法"
ibus 是 GNOME 桌面的原厂件。它由 GNOME 的输入源机制统一管理,登录界面、锁屏界面、GNOME Shell 自己的搜索框都能用,沙箱应用(Flatpak)的兼容性也最好。代价是它的中文引擎(ibus-libpinyin)功能相对朴素,词库管理、双拼方案、自定义短语这些能力都比较薄。
fcitx5 是社区里的"改装件",功能强得多:RIME 引擎、双拼、五笔、大量可定制项、跨应用共享的用户词库、更好的候选框样式控制。但它在 GNOME + Wayland 这个组合下属于"外来户",需要靠 GTK/Qt 的输入法模块把按键接进去,遇到不支持模块路径的原生 Wayland 应用时,就可能出现候选框跑到屏幕左上角、或者干脆不弹候选框的情况。
| 维度 | ibus | fcitx5 |
|---|---|---|
| GNOME 集成度 | 原生,登录界面可用 | 需自启动与模块注入 |
| 中文引擎能力 | libpinyin,够用 | RIME/拼音/五笔/双拼,可深度定制 |
| Wayland 原生应用 | 通过 GNOME 内置协议,稳定 | 依赖模块路径,部分应用有边界 |
| Flatpak/Snap 兼容 | 最好 | 需要 override 注入环境变量 |
| 词库与配置可控性 | 一般 | 很高,纯文本配置 |
| 出问题后的排查工具 | 较少 | fcitx5-diagnose,信息很全 |
1.2 用两条命令确认自己到底跑在哪个会话上
别靠"设置里看着像",直接问系统:
echo $XDG_SESSION_TYPE loginctl show-session $(loginctl | awk '/tty/{print $1; exit}') -p Type第一条输出wayland或x11,第二条从 logind 侧再确认一遍。两者一致就基本没跑。顺带看一眼桌面:
echo $XDG_CURRENT_DESKTOP输出ubuntu:GNOME就是 GNOME 系,输出带KDE就是 Plasma。这个信息很重要,因为 KDE Plasma 的 Wayland 会话里 fcitx5 是事实上的原厂方案,配置路径和 GNOME 完全不同,别把两边的教程混着用。
1.3 我给不同人的默认建议
如果你只是想打字,不折腾双拼、不导词库、不写自定义短语,直接用 ibus + ibus-libpinyin 最省心,装完在设置里加一个输入源就结束了,未来系统升级也不容易坏。
如果你需要 RIME 方案、需要自己维护词库、需要大量自定义短语(比如经常输入特定术语、代码片段、地址模板),或者你同时要打中文和日文,那 fcitx5 是唯一像样的选择,多花二十分钟配置很值。
如果你的机器是 KDE Plasma,别犹豫,直接 fcitx5。
一个真实的取舍点:在 GNOME + Wayland 下用 fcitx5,早晚会遇到"某个应用候选框位置不对"的问题。这不是配置错了,是协议层面的客观限制。能接受就上,不能接受就老老实实用 ibus。
2. 装包之前的体检:locale、仓库与依赖链
很多人失败在第一分钟:apt install报找不到包,或者装完发现少了个 frontend 包导致某类应用打不出字。这一节把装之前的四件事过一遍,能把后面 80% 的疑难杂症提前掐掉。
2.1 locale 不需要改成中文,但 UTF-8 必须齐全
一个流传很广的误解:必须把系统语言切成中文,中文输入法才能用。实际上输入法跟系统显示语言是两件事,LANG=en_US.UTF-8的系统照样能打中文,而且很多开发者本来就偏好英文界面。真正要确认的是字符集是不是 UTF-8:
locale localectl status看LANG和LC_CTYPE这两行,值里必须带UTF-8。如果输出里有POSIX或者空值,那就要处理一下:
sudo locale-gen en_US.UTF-8 zh_CN.UTF-8 sudo update-locale LANG=en_US.UTF-8zh_CN.UTF-8生成出来主要是给某些需要中文排序、中文日期格式的程序用的,即使你不把系统语言设成中文,生成它也没有坏处。这里有个细节:update-locale改的是/etc/default/locale,对已经登录的会话不生效,改完要重新登录一次才算数。我见过有人在终端里反复执行locale看不到变化,就是因为没重登录。
2.2 版本核对:新 LTS 上别随便加第三方源
Ubuntu 26.04 是刚出的 LTS,第三方 PPA 的维护者往往要过几个月才跟上。所以第一原则是:优先走官方仓库,版本旧一点没关系,稳定最重要。
sudo apt update apt-cache policy fcitx5 fcitx5-chinese-addons ibus-libpinyinapt-cache policy会告诉你候选版本号和来源仓库。如果某个包显示Candidate: (none),说明仓库里没有或者源没更新,先解决这个再往下走。如果某个包已经有官方版本,就别去加 PPA 了——我踩过的坑是:加了某个第三方源之后,apt upgrade把输入法相关的一串库替换成了不匹配的版本,结果整个桌面登录后黑屏,只能进 tty 回滚。这种故障排查成本远高于省下来的那点版本差异。
2.3 依赖链:frontend 包一个都不能少
这是最容易漏的地方。fcitx5 本体只是框架,真正把按键接进应用的是各种 frontend 包。装少了,表现就是"gedit 里能打,浏览器里打不出来"这种诡异现象。
| 包名 | 作用 | 漏装后的表现 |
|---|---|---|
| fcitx5 | 框架本体与守护进程 | 什么都不能用 |
| fcitx5-chinese-addons | 拼音、双拼、五笔等引擎 | 加了输入法却没有中文选项 |
| fcitx5-frontend-gtk3 | GTK3 应用接入 | GNOME 里一部分老应用打不出字 |
| fcitx5-frontend-gtk4 | GTK4 应用接入 | 新版 GNOME 应用打不出字 |
| fcitx5-frontend-qt5 | Qt5 应用接入 | 部分工具类软件失效 |
| fcitx5-frontend-qt6 | Qt6 应用接入 | 新版 Qt 软件失效 |
| fcitx5-config-qt | 图形配置工具 | 只能在命令行里改配置 |
| fcitx5-rime | RIME 引擎 | 想要 RIME 方案却没得选 |
| fcitx5-module-wayland | Wayland 相关支持 | 原生 Wayland 应用候选框异常 |
包名在不同版本上偶有差异,装之前用apt search fcitx5-frontend扫一眼最稳。别嫌麻烦,这一步能省掉后面一小时的困惑。
3. fcitx5 从装包到打出第一个字
这一段是完整操作链路,每一步我都会说清楚"为什么要这么做",因为照抄命令但不懂意图的话,一旦环境有偏差就没法自己修。
3.1 一条命令装齐,然后确认守护进程状态
sudo apt install fcitx5 fcitx5-chinese-addons \ fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 \ fcitx5-frontend-qt5 fcitx5-frontend-qt6 \ fcitx5-config-qt fcitx5-module-wayland装完先别急着配,手动起一次,看它能不能活着:
fcitx5 -d fcitx5-remotefcitx5-remote的返回值有含义:0表示当前是英文状态,1表示中文状态,2表示框架在但当前无输入窗口。如果它返回空或者报连接不上,说明守护进程没起来,这时候去看journalctl --user -u fcitx5或者直接终端里前台跑fcitx5看报错。前台跑能看到完整异常栈,比后台猜快得多。
3.2 环境变量写在哪里:这是 Wayland 下最容易做错的一步
X11 时代大家习惯往~/.xprofile或者~/.profile里写环境变量。在 Wayland 会话里,~/.xprofile根本不会被读,~/.profile的读取时机也不一定赶在图形会话启动之前。目前最可靠的做法是用 systemd 的用户环境目录:
mkdir -p ~/.config/environment.d新建~/.config/environment.d/im.conf:
GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx SDL_IM_MODULE=fcitx改完必须重新登录(不是重启应用),因为 systemd 用户实例在登录时生成环境快照。想验证有没有生效:
systemctl --user show-environment | grep IM_MODULE这里有个必须讲清楚的取舍。GTK_IM_MODULE=fcitx这个设置,本质上是让 GTK 应用绕开 Wayland 原生的输入法协议,改走 fcitx5 自己的模块路径。好处是兼容性好,绝大多数 GTK3/GTK4 应用立刻就能用;坏处是应用不再把光标的精确位置告诉输入法框架,候选框就可能定位不准。反过来,如果你把GTK_IM_MODULE留空或者设成wayland,新版应用的候选框定位会准,但那些还没适配原生协议的应用会直接打不出字。
我的建议是:先按上面配置(全部走模块路径),把输入跑通;等哪天被候选框位置烦到了,再逐个应用去调,而不是一开始就追求完美。这是典型的"先能跑,再好用"顺序。
3.3 让 fcitx5 开机自启的三种方式
第一种是桌面自启动项,最通用。多数打包版本会在/usr/share/applications/下带一个org.fcitx.Fcitx5.desktop,GNOME 会把它列进"启动应用程序"。如果想自己控制,复制一份到用户目录:
mkdir -p ~/.config/autostart cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/然后在 GNOME 的"优化"工具或者设置里确认它没被禁用——被禁用的项会在~/.config/autostart里多出一行Hidden=true,这是个很隐蔽的坑。
第二种是 systemd 用户服务,适合喜欢统一管理的人:
# ~/.config/systemd/user/fcitx5.service [Unit] Description=Fcitx5 input method After=graphical-session.target PartOf=graphical-session.target [Service] Type=simple ExecStart=/usr/bin/fcitx5 Restart=on-failure RestartSec=3 [Install] WantedBy=graphical-session.target启用并立即启动:
systemctl --user daemon-reload systemctl --user enable --now fcitx5.service注意PartOf这一行,它保证注销图形会话时服务跟着退出,否则下次登录会出现两个 fcitx5 进程抢同一个 DBus 名字,表现是输入法时灵时不灵。
第三种最简单:什么都不配,每次登录后手动fcitx5 -d。不推荐,但调试阶段很干净,能排除自启动带来的干扰。
3.4 首次配置该动哪几项,别动哪几项
打开配置工具:
fcitx5-configtool如果系统托盘里没有输入法图标(GNOME 默认不显示托盘图标,需要装 AppIndicator 扩展),这条命令就是唯一入口。
进"输入法"标签页,把"键盘 - 英语(US)"留在列表里,点加号,取消勾选"仅显示当前语言",找到"拼音"加进去。这里我建议按这个顺序排:英文键盘在前,中文在后。因为 fcitx5 的"第一个输入法"是默认状态,把英文放第一位意味着每次新开窗口默认是英文,而在代码编辑器、终端里这是好事。
"全局配置"标签页里我只动两项:切换输入法的键保持默认的Ctrl+Space(这是肌肉记忆,改了反而别扭),"临时切换到英文"保持Shift。候选词数量按屏幕大小调,笔记本上 5 个比 7 个舒服,因为候选框不会挡住下面一行。
不建议一开始就开云拼音。它会往输入法里塞网络请求,在弱网环境下候选会卡顿半秒,体验反而变差。等基础功能稳定了再考虑。
4. IBus 路线:把 GNOME 原厂件用对
如果你决定走 ibus,整个流程会短很多,但同样有几个点容易做错。
4.1 ibus 的优势在"不用管它"
ibus 的守护进程由 GNOME 会话自己拉起,输入源列表由 GNOME 设置统一管理,登录界面和锁屏界面也能输入中文(这点 fcitx5 做不到)。它的配置项少,所以坏的可能性也少。对绝大多数只需要拼音输入的人来说,这是最理性的选择——不是因为它更好,而是因为它需要你操心的地方更少。
4.2 装引擎并挂到输入源列表
sudo apt install ibus-libpinyin装完重启会话,或者在 GNOME 设置里操作:设置 → 键盘 → 输入源 → 添加 → 中文(中国) → 中文(智能拼音)。
命令行党可以直接改 gsettings:
gsettings set org.gnome.desktop.input-sources sources \ "[('xkb','us'),('ibus','libpinyin')]"这行的意思是把输入源列表整体替换成"英文键盘 + 智能拼音"两项。注意它是覆盖式写入,如果你原来还有别的输入源(比如日语),要一并写进去,否则会被清掉。这是我自己踩过的坑:执行完之后发现日语输入法消失了,还以为是装坏了。
切换快捷键是Super+Space,不是Ctrl+Space。这个差异让很多从 fcitx5 转过来的人困惑半天。想改的话在设置 → 键盘 → 键盘快捷键 → 输入源里改。
4.3 ibus 的两个常见小毛病
第一个是候选框不跟随光标。这在 Wayland 下主要是应用侧的问题,优先升级应用本身,其次尝试把该应用的 GTK 版本切到 4(GDK_BACKEND=wayland或--gtk-version=4)。
第二个是ibus-daemon卡死,表现是切到中文但敲字没反应。修复很快:
ibus restart如果重启后还是不行,直接指定引擎:
ibus engine libpinyinibus engine不带参数执行会列出所有可用引擎,这招在"输入源列表里有中文但切不过去"的时候特别好用——它能告诉你引擎到底装没装上。
5. RIME 落地:词库、模糊音与自定义短语
选 fcitx5 的人里,一大半其实是冲着 RIME 来的。RIME 的强大之处是全部配置都是纯文本,可以版本管理、可以批量改、可以多机同步;麻烦之处也是这个——它的目录结构和"重新部署"机制对新手不友好。
5.1 先搞清楚两个目录的关系
sudo apt install fcitx5-rime ls /usr/share/rime-data # 只读的预置方案 ls ~/.local/share/fcitx5/rime # 你的用户目录,改这里规则很简单:/usr/share/rime-data里的文件是模板,不要去改(升级时会被覆盖);所有定制都写在~/.local/share/fcitx5/rime里,而且不是改原文件,是写一份xxx.custom.yaml补丁。RIME 启动时会把模板和补丁合并,生成编译后的*.bin文件。
这个机制的好处是升级不丢配置,坏处是新手改了原文件发现不生效——因为它读的还是编译产物。记住一句话:改完必须"重新部署"。
5.2 在 default.custom.yaml 里选方案、定切换键
新建~/.local/share/fcitx5/rime/default.custom.yaml:
patch: schema_list: - schema: luna_pinyin_simp - schema: double_pinyin menu/page_size: 7 switcher/hotkeys: - Control+graveschema_list决定方案列表里出现哪些,顺序就是切换顺序。luna_pinyin_simp是简体输出,luna_pinyin是繁体。page_size是候选词个数。Control+grave(反引号键)是方案切换菜单的快捷键,输入法多的人会经常用。
注意 YAML 对缩进极度敏感,一律用空格,不要用 Tab。缩进错了 RIME 不会报错,只会默默不生效——这是 RIME 最坑的地方之一。
5.3 模糊音与自定义短语的实际写法
模糊音写在方案自己的补丁文件里,比如luna_pinyin_simp.custom.yaml:
patch: speller/algebra: - derive/^z(.*)$/zh$1/ - derive/^c(.*)$/ch$1/ - derive/^s(.*)$/sh$1/ - derive/(.*)n$/$1ng/ - derive/(.*)ng$/$1n/derive的意思是"额外派生一种可能的拼写",而不是替换。所以z开头会同时接受z和zh,两个都能打出字。这个写法比很多教程里让你整段抄 algebra 列表要安全,因为它只追加、不覆盖原有规则——覆盖会导致原有的其它规则失效,表现为某些字突然打不出来。
自定义短语用一个单独的文本文件,格式是"编码 + Tab + 短语":
dz 北京市某某路 100 号然后在default.custom.yaml的patch里挂上:
engine/translators: - table_translator - punct_translator - script_translator - custom_phrase挂载这一项最容易出错,因为engine/translators是整体替换列表,你必须把原本就有的几个 translator 全写进去,否则拼音引擎会失效。判断方法是部署后打一个常见字,如果候选框空空如也,就是这个列表被覆盖掉了。
5.4 部署与验证的完整动作
改完配置后,右键点击输入法状态栏图标(或者托盘图标),选"重新部署"。等两三秒,看候选框是否恢复正常。命令行下等效做法:
rm -rf ~/.local/share/fcitx5/rime/*.bin pkill fcitx5 && fcitx5 -d删*.bin是强制重新编译,只在配置改得比较大、部署看起来没反应的时候用。日常小改动用菜单里的"重新部署"就够了。
验证是否真的生效,不要看配置文件,看行为:打一个模糊音测试字(比如打zi看能不能出"知"),打自定义短语的编码看有没有出对应文本。配置写对但没部署,和配置写错,表现是一样的。
6. 打不出字时的排查链路
前面都顺利的话,这一节用不上。但只要你在 Linux 桌面上用过两年输入法,就一定会在某个时刻遇到"昨天还好好的,今天打不出字"。下面这套顺序是我实际排查时用的,从信息量最大的地方开始。
6.1 第一步永远是 fcitx5-diagnose
fcitx5-diagnose这个脚本会输出一大段报告,重点看四块:
| 报告区块 | 看什么 | 异常含义 |
|---|---|---|
| Environment | 各个 IM_MODULE 变量 | 变量为空说明 environment.d 没生效或没重登录 |
| Frontends | 各 frontend 是否 loaded | 某个为 no 说明对应包没装 |
| Xim | XIM 服务状态 | 异常通常只影响 XWayland 老应用 |
| DBus | fcitx5 是否注册到会话总线 | 异常说明守护进程没起来或起了两份 |
| Log | 最近的错误行 | 真正的异常原因往往在这里 |
先看 Environment 那一块。我遇到过的绝大多数"打不出字",都是环境变量没生效——配置文件写对了,但没重新登录,或者写到了~/.profile这种 Wayland 下不读的地方。
6.2 候选框跑到屏幕左上角或完全不动
这是 Wayland 下最典型的症状,原因是输入法拿不到光标的精确坐标,只能退回到默认位置。先判断应用类型:
# XWayland 应用 echo $WAYLAND_DISPLAY # 有值说明在 Wayland 会话 xlsclients # 列出当前跑在 XWayland 上的应用如果出问题的应用在xlsclients列表里,说明它走的是 XWayland,候选框定位本该正常,问题多半在 frontend 包缺失。如果不在列表里,说明它是原生 Wayland 应用,这时有两个方向:一是让它走 XWayland(对大多数应用来说,设置--ozone-platform=x11或GDK_BACKEND=x11就能做到),二是去 fcitx5 配置里确认 Wayland 相关模块已启用。
实测下来,对于只在这一个应用上出问题的情况,让该应用走 XWayland 是最省事的,代价是它的模糊效果和高分屏缩放可能略有差异。
6.3 只有某一类应用打不出字
按应用类型对症处理,不要全局乱改配置。
终端类应用:先排除快捷键冲突。Ctrl+Shift+E、Ctrl+Shift+Space在不少终端里被占用,会导致切到中文的指令被终端吃掉。把输入法切换键改成Super+Space或者加一个备用键就能解决。
Electron 应用(很多聊天工具、编辑器):它们自带一套渲染和输入处理,Wayland 下需要显式开启:
app-name --enable-wayland-ime如果还是不行,加--gtk-version=4试试;再不行就让它跑在 XWayland 下,通常是最后一步但最有效。
Flatpak 应用:沙箱看不到宿主的环境变量,需要显式注入:
flatpak override --user \ --env=GTK_IM_MODULE=fcitx \ --env=QT_IM_MODULE=fcitx \ --env=XMODIFIERS=@im=fcitx flatpak override --user --show第二条命令用来看注入结果,确认真的写进去了。改完要完全退出应用再启动,不是关窗口——很多 Flatpak 应用关窗口不退出进程。
Snap 应用:这一类最容易出问题,因为 Snap 的沙箱比 Flatpak 更严。我的实际做法是尽量换成 deb 或者 Flatpak 版本,跟沙箱权限较劲的时间成本太高。
6.4 重启后回到英文,输入法没起来
按这个顺序查:
ls ~/.config/autostart/ # 自启项是否存在 grep -r "Hidden=true" ~/.config/autostart/ # 是否被禁用 systemctl --user status fcitx5.service # 服务状态 cat ~/.xinputrc 2>/dev/null # 是否残留旧配置第三种情况值得单独说:某些老教程会让你写~/.xinputrc指定输入法框架。这个文件在 Wayland 下基本不起作用,但如果里面写的是ibus而你实际在跑 fcitx5,某些应用会按它去连 ibus,表现就是"一半应用能打,一半不能"。如果你按新方法配置,建议把这个文件删掉或清空。
还有一种情况是输入法启动了但输入法组是空的——配置文件被覆盖或者用户目录权限不对。检查~/.config/fcitx5/profile里有没有[Groups/0]段落,DefaultIM是不是空的。空的话,重新打开配置工具加一次输入法就能恢复。
7. 长期维护:升级、备份与多机同步
输入法这个东西,装好那一天不是结束,系统大版本升级、换机器、多设备同步才是真正的考验。
7.1 大版本升级时最容易坏在哪
Ubuntu 跨大版本升级时,输入法最常见的故障是 ABI 不匹配:新系统的 GTK/Qt 版本变了,而旧的 frontend 包还没来得及更新,结果是框架在、引擎在、就是接不进应用。判断方法很直接:升级后跑fcitx5-diagnose,看 Frontends 那块是不是有not loaded。
处理办法是升级完成后主动重装一遍相关包:
sudo apt install --reinstall fcitx5 fcitx5-chinese-addons \ fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 \ fcitx5-frontend-qt5 fcitx5-frontend-qt6另一个高频问题是第三方源残留。升级前建议把/etc/apt/sources.list.d/里跟输入法相关的第三方源注释掉,用系统自带的版本;升级完再决定要不要加回来。我吃过这个亏,升级过程中某个第三方源的包版本跟系统库冲突,导致图形会话起不来,只能 Ctrl+Alt+F3 进 tty 手动降级。
7.2 值得备份的只有两个目录
tar czf im-backup-$(date +%F).tar.gz \ ~/.config/fcitx5 \ ~/.local/share/fcitx5/rime~/.config/fcitx5里是输入法组、快捷键、皮肤等框架配置;~/.local/share/fcitx5/rime里是 RIME 的方案、词库、自定义短语。这两个目录加起来通常不到几兆,但重建成本很高——尤其是手工整理过的用户词库和几百条自定义短语。
注意不要把*.bin编译产物一起备份,换机器后架构或版本不一致时它们会导致部署失败。备份前先清一遍:
find ~/.local/share/fcitx5/rime -name '*.bin' -delete恢复的时候,把两个目录解包回原位,重新登录,然后"重新部署"一次。用户词库会自动合并进来,不会覆盖新打的内容。
7.3 我自己用的一张最小检查表
每次重装或者给别人配机器,我都照这个顺序过一遍,基本不会漏:
| 步骤 | 命令/动作 | 通过标准 |
|---|---|---|
| 确认会话类型 | echo $XDG_SESSION_TYPE | 明确 wayland 或 x11 |
| 确认 locale | locale | 含 UTF-8 |
| 核对包版本 | apt-cache policy fcitx5 | Candidate 不是 none |
| 装全 frontend | apt search fcitx5-frontend | gtk3/gtk4/qt5/qt6 齐 |
| 写环境变量 | ~/.config/environment.d/im.conf | 重登录后systemctl --user show-environment可见 |
| 配自启动 | autostart 或 systemd 用户服务 | 重启后pgrep fcitx5有输出 |
| 加输入法组 | fcitx5-configtool | 英文在前、中文在后 |
| 全场景验证 | 浏览器/终端/编辑器各打一次 | 三处都能出候选框 |
验证这一步值得多说一句:不要只在浏览器里试。浏览器(尤其 Firefox)的输入法接入路径和应用商店里的普通应用不一样,浏览器能打不代表终端能打。我习惯至少测三处:一个 GTK 应用(设置界面或文本编辑器)、一个终端、一个 Electron 应用。三处都过,才算真的配好了。
最后分享一个我在实际操作中的体会:输入法出问题时,人的第一反应是"再改点配置试试",但这类问题里真正由配置引起的其实不到三成,大头在环境变量没生效、frontend 包缺失、应用走了不同的输入协议这三类。所以与其改配置,不如先用fcitx5-diagnose把当前状态看清楚,再决定动哪一层。顺序反了,只会在错误的配置上叠加更多错误,最后连原始状态都回不去。