Ubuntu 26.04 换输入法:fcitx5-rime + 雾凇拼音的安装、预热与配置取舍

fcitx5 自带的拼音对日常够用,但词库薄,长句和专业词差点意思。换成 fcitx5-rime 中州韵搭配雾凇拼音开源方案,词频和补词明显更好,而且不用换框架,Rime 作为引擎和现有拼音并存,想用哪个切哪个。

这篇记录在 Ubuntu 26.04 上装 fcitx5-rime、部署雾凇拼音方案、预编译词库、自定义配置的完整流程,以及几个容易踩的点。顺带把字体和候选框外观一起整理了:装 Maple Mono 编程字体,给 fcitx5 候选框换 catppuccin 主题和中文字体。

fcitx5 输入法框架是怎么工作的

理解框架和引擎的区别,能帮你定位大部分输入法问题。

fcitx5 是输入法框架,本身不提供具体输入逻辑。它通过环境变量挂接到应用:

  • GTK_IM_MODULE=fcitx 让 GTK 程序把按键事件交给 fcitx5
  • QT_IM_MODULE=fcitx 对 Qt 程序同理
  • XMODIFIERS=@im=fcitx 是 X11 层的兜底

这几个变量都指向 fcitx,所以 GTK、Qt、X 应用都会走 fcitx5。如果某个程序输入法不生效,第一步就是查它们有没有设对。

引擎才是具体输入逻辑。拼音、双拼、Rime 都是 fcitx5 的引擎。装 fcitx5-rime 只是给 fcitx5 加了一个新引擎,和自带拼音并存,在 fcitx5 配置里切换。不需要改环境变量,不需要换框架。

环境变量写在哪。 Ubuntu 26.04 默认是 GNOME Wayland 会话,图形应用不读 .bashrc / .zshrc(那只对终端生效)。正确做法是用 im-config 工具选 fcitx5,它会自动写入会话级配置;或者手动写进 /etc/environment(系统级,所有会话生效)。改完注销重新登录才生效,重启终端或重启 fcitx5 都没用。不要写 ~/.pam_environment,那个在 Ubuntu 22.04 以后已经默认禁用。

装 fcitx5-rime

一条命令:

1
sudo apt install fcitx5-rime librime-plugin-lua

显式带上 librime-plugin-lua。雾凇拼音的中英混输、符号快捷输入、以词定字等功能依赖 Lua 插件,虽然 fcitx5-rime 通常会作为推荐依赖带上它,但显式装更稳妥,避免某些配置了 --no-install-recommends 的机器上静默缺失。

Ubuntu 26.04 仓库里是 fcitx5-rime 5.1.13-1,会连带装上 librime 1.16.1 和一套基础方案(rime-data-luna-pinyin 明月拼音等),放在 /usr/share/rime-data/

装完 Rime 还不能用,词库是空的。Rime 默认的拼音词库很薄,直接切上去体验反而比 fcitx5 自带拼音差。必须导入社区方案才发挥价值。

部署雾凇拼音方案

雾凇拼音(rime-ice)不只是词库,是一套包含 schema、Lua 脚本、分层词库、预设开关的完整输入方案。词库更新勤、词频调得好,含 8105 通用字、41448 通用词、base 基础词、ext 扩展词、tencent 腾讯词库等。从 GitHub release 下载 nightly 版:

1
2
3
4
5
6
7
8
9
10
RIME_DIR="$HOME/.local/share/fcitx5/rime"
mkdir -p "$RIME_DIR"
cd /tmp

# 下载雾凇拼音 full 包(含全部方案和词库)
curl -L -o rime-ice-full.zip \
"https://github.com/iDvel/rime-ice/releases/download/nightly/full.zip"

# 解压到用户 rime 目录
unzip -oq rime-ice-full.zip -d "$RIME_DIR"

注意这个 RIME_DIR 路径是 fcitx5-rime 专用的(~/.local/share/fcitx5/rime/)。如果你查到的是 ibus-rime 的教程,它的目录是 ~/.config/ibus/rime/,两套完全隔离,别混用。

用户目录放方案而不是系统目录,升级系统不丢配置。解压后里面有 rime_ice.schema.yaml(主方案)、双拼和九键等附加方案、以及各个词库文件。default.yaml 已经把 rime_ice 设为首选方案。

更新雾凇时,解压会覆盖同名文件。如果你改过 *.custom.yaml,这些不会被覆盖(文件名不同),安全。但建议更新前备份一份用户目录,以防方案结构有大改动。

词库取舍。 full 包含全部词库,tencent 腾讯词库词条海量,部署耗时久、运行内存占用也明显上涨。日常开发用 8105 通用字加 base 基础词就够了,轻量且快。重度写作或古文生僻字场景再开 ext 扩展和 41448 大字库。按需选择,不必全装。

预编译词库:消除首次切换卡顿

这是最容易忽略的一步。

Rime 在首次切到引擎时,会把 YAML 词库编译成二进制 .table.bin.prism.bin。雾凇拼音词库大,实时编译要等几秒到十几秒,首次切换会卡。

系统自带 rime_deployer 工具,可以提前编译成二进制缓存:

1
2
RIME_DIR="$HOME/.local/share/fcitx5/rime"
rime_deployer --build "$RIME_DIR" /usr/share/rime-data

这条命令把用户目录的方案和系统共享数据一起编译,生成 29 个 .prism.bin.table.bin 产物。核心的 rime_ice.table.bin 有 58M,含 8105/41448/base/ext/tencent 等词库合并编译。

预热完,首次切到 Rime 是秒开,不用等编译。产物在 ~/.local/share/fcitx5/rime/build/。如果部署报奇怪错误,可以先清掉编译缓存重来:rm -rf "$RIME_DIR/build",再跑一次 deployer。

fcitx5 添加 Rime 引擎并部署

词库就位后,在 fcitx5 里把 Rime 加进引擎列表。图形方式:

1
fcitx5-configure

在配置界面左侧添加 Rime,调整顺序。也可以直接编辑 ~/.config/fcitx5/profile

然后重启 fcitx5 让配置生效:

1
fcitx5 -r -d

-r 替换正在运行的实例,-d 后台运行。进程卡死可以先 killall fcitx5 再启动。重启后 Rime 引擎注册,切到 Rime 就能用雾凇拼音了。默认切换键是 Ctrl+Space,也可以在配置里改。

自定义配置:用 custom.yaml,别改 schema

雾凇拼音的开关很多,简繁、模糊音、标点映射、中英混输都在 rime_ice.schema.yaml 里。但**不要直接改 .schema.yaml**。

原因:方案文件会随词库更新被覆盖,直接改的配置升级时就丢了。正确做法是建 *.custom.yamlpatch: 覆盖,升级雾凇方案不会丢失自定义。

比如开模糊音,建 ~/.local/share/fcitx5/rime/rime_ice.custom.yaml:

1
2
3
4
5
6
7
patch:
# 模糊音:追加到 speller/algebra,不要用 speller/algebra 直接覆盖
# 覆盖会丢掉雾凇原有的拼写规则,导致输入法失效
speller/algebra/+:
- derive/^zh/z/
- derive/^ch/c/
- derive/^sh/s/

关键是 speller/algebra/+:末尾的 + 表示追加,只往原有规则后面加,不替换。如果写成 speller/algebra:,会把雾凇原有的拼写规则整个覆盖掉,输入法直接坏掉。模糊音规则必须走 speller/algebra,不存在 fuzz: 这个配置项。

改完要重新部署才生效。托盘菜单里选 Rime 的重新部署,或命令行再跑一次:

1
rime_deployer --build "$RIME_DIR" /usr/share/rime-data

patch 机制会把 custom 里的配置合并进 schema,升级词库时 custom 文件不动,配置不丢。这是 Rime 配置的核心约定,所有自定义都走这条路。

字库:装 Maple Mono 编程字体

换输入法顺带把字体也整理了。Maple Mono NF CN 是等宽编程字体,中英文对齐好,带 Nerd Font 图标,写代码舒服。

Maple Mono release 页面下载 NF CN 版本(带 Nerd Font 和中文),解压后装到系统字体目录:

1
2
3
4
5
sudo mkdir -p /usr/share/fonts/truetype/maple-mono-nf-cn
sudo cp *.ttf /usr/share/fonts/truetype/maple-mono-nf-cn/

# 刷新字体缓存(必须,否则程序找不到新字体)
sudo fc-cache -fv

验证:

1
fc-list | grep -i maple

字体可以装到 /usr/share/fonts/(系统级,需要 sudo)或 ~/.local/share/fonts/(用户级,不需要 sudo)。装完一定要跑 fc-cache -fv,这是最常踩的点,文件放进去了但没刷缓存,程序就是看不到。

装完字体只是让字体可用,真正用起来还要在各处指定。终端在偏好设置里选字体,VSCode 在 settings.json 里设 editor.fontFamily,系统界面字体用 gsettings 或 GNOME Tweaks 改。字体名用 fc-list 查到的 family 名,Maple Mono 的就是 Maple Mono NF CN

fcitx5 候选框:换主题和中文字体

Rime 装好后,候选框默认是 fcitx5 自带主题,中文用系统默认字体,观感一般。换主题和中文字体能明显改善。

先看系统有哪些中文字体:

1
fc-list :lang=zh family | sort -u

输出里常见的是 Noto Sans CJK SC(思源黑体简体)。如果没有,装一下:

1
sudo apt install fonts-noto-cjk

候选框主题用 catppuccin。从仓库克隆,把现成主题拷到 fcitx5 主题目录:

1
2
3
4
5
THEMES_DIR="$HOME/.local/share/fcitx5/themes"
mkdir -p "$THEMES_DIR"
git clone --depth 1 https://github.com/catppuccin/fcitx5 /tmp/catppuccin-fcitx5
# 现成主题在 src/ 下,深色用 mocha 系列
cp -r /tmp/catppuccin-fcitx5/src/catppuccin-mocha-* "$THEMES_DIR/"

catppuccin 的 mocha 系列适配深色系统。查系统深浅色决定用哪个系列:

1
2
gsettings get org.gnome.desktop.interface color-scheme
# prefer-dark 是深色,用 mocha;light 用 latte

主题和字体写进 ~/.config/fcitx5/conf/classicui.conf:

1
2
3
4
5
[ClassicUI]
Theme=catppuccin-mocha-teal
Font="Noto Sans CJK SC 14"
PerScreenDPI=True
Vertical Candidate List=False
  • Theme= 选主题。catppuccin 装了十几个 mocha 配色(teal、sky、pink、red、yellow 等),改这一行就换色,不用重新部署。
  • Font= 候选框字体。Noto Sans CJK SC 14 是思源黑体 14 号。想用编程字体换 Maple Mono NF CN 14
  • Vertical Candidate List=False 横排候选,True 是竖排,按习惯调。

改完重启 fcitx5 生效(主题改动不用重新部署 Rime):

1
fcitx5 -r -d

自带拼音 vs Rime:怎么选

fcitx5 自带的拼音并不差。如果你还装了 fcitx5-module-cloudpinyin(云拼音联网补词)、pinyinhelper(反查笔画)、lua 脚本模块,开箱就够日常用,零配置。

Rime 的价值在词库质量和可定制性。雾凇和万象这些社区方案词频调得好,长句和专业词强,模糊音、双拼、自定义标点都能调到很细。代价是配置学习成本,要懂 YAML、要部署。

想省心,自带拼音够用。愿意折腾配置,Rime 加雾凇上限更高。两者可以并存,先装上 Rime 试试,不行切回自带拼音,没什么成本。

几个容易踩的坑

切到 Rime 后词库很薄。 没导入社区方案就直接用,Rime 默认词库体验差。必须放雾凇或万象方案进用户目录再部署。

改了配置没生效。 Rime 配置改完要重新部署,托盘重新部署或 rime_deployer --build。而且改的应该是 *.custom.yaml 不是 schema 本身。区分两件事:改 Rime 配置或词库要重新部署,改 fcitx5 主题或候选框字体只要重启 fcitx5,不用部署 Rime。

首次切换卡很久。 没预编译,首次切到 Rime 要现编词库。用 rime_deployer --build 提前编译成 .table.bin

输入法在某些程序不生效。 先查 GTK_IM_MODULEQT_IM_MODULEXMODIFIERS 三个环境变量是不是都指向 fcitx。某个没设,对应框架的程序就接不到输入法。Wayland 会话下这些要由 im-config/etc/environment 设置,不是 .bashrc

Snap 或 Flatpak 应用调不出中文。 Snap 沙箱隔离,默认访问不到 fcitx5。VSCode、Chrome 的 Snap 版极易中招。优先卸载 Snap 版改用 deb 包,或者给容器配置开放输入法权限。

装完字体程序找不到。 没跑 fc-cache -fv 刷新缓存。字体文件放进去了,但字体缓存没更新,程序看不到。

候选框改了主题没变。 classicui.conf 改完要重启 fcitx5(fcitx5 -r -d),不是重新部署 Rime。主题目录要放在 ~/.local/share/fcitx5/themes/ 下,Theme= 填的目录名要和主题目录一致。

参考