Skip to content

10.2 Fcitx 输入法框架

输入法框架与具体输入法是两个不同的技术层次,输入法运行依赖框架的支持。这种架构关系在 Windows 系统中同样存在,可参见 Microsoft. TSF 管理器[EB/OL]. [2026-04-04]. https://learn.microsoft.com/zh-cn/windows/win32/tsf/text-services-framework。该文档介绍了 Windows 文本服务框架的架构与接口规范。

Fcitx 即“小企鹅输入法”,原始英文全称为“Free Chinese Input Tool of X”(X 窗口系统的自由中文输入工具)。自 Fcitx 5 起,该缩写不再对应单一全称,官方提供了多种释义(如“Flexible Context-aware Input Tool with eXtension”等),以体现 Fcitx 的发展已超越中文输入范畴。关于英文命名的历史渊源,可参见:小企鹅输入法 5. 历史[EB/OL]. [2026-04-16]. https://fcitx-im.org/wiki/History/zh-cn。该页面记录了 Fcitx 从创始至今的发展历程及名称演变。

技巧

视频教程见 FreeBSD 中文社区. 006-FreeBSD 14.2 安装 fcitx5 及其输入法[EB/OL]. [2026-04-04]. https://www.bilibili.com/video/BV13ji2YLE3m.

注意

在 FreeBSD-CURRENT 中可能会出现不可预见的问题:Fcitx 5 诊断信息英文乱码,输入法出现汉字显示异常,Qt 环境下无法正常加载输入法。

10.2.1 安装 Fcitx5

  • 使用 pkg 安装:
sh
# pkg install fcitx5 fcitx5-qt5 fcitx5-qt6 fcitx5-gtk2 fcitx5-gtk3 fcitx5-gtk4 fcitx5-configtool zh-fcitx5-chinese-addons
  • 或者使用 Ports 安装:
sh
# cd /usr/ports/textproc/fcitx5/ && make install clean # 主程序
# cd /usr/ports/textproc/fcitx5-qt/ && make install clean  # 同时包含 Qt 5 和 Qt 6
# cd /usr/ports/textproc/fcitx5-gtk/ && make install clean # 同时包含 GTK 2、3、4
# cd /usr/ports/textproc/fcitx5-configtool/ && make install clean # fcitx5 的图形配置工具(基于 Qt 6/KF 6)
# cd /usr/ports/chinese/fcitx5-chinese-addons/ && make install clean # 输入法

使用 SLiM 显示管理器时,系统会提示找不到 IBus。

10.2.1.1 Fcitx 5 开机自启动

安装完成后,设置 Fcitx 5 随系统自动启动:

sh
$ mkdir -p ~/.config/autostart/ # 创建自启动路径。如果使用其他用户,应在该用户的命令行下执行
$ cp /usr/local/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/  # 设置 Fcitx 5 开机启动

10.2.2 配置 Fcitx 环境变量

设置好自启动后,还需配置相应环境变量,确保输入法框架在各应用程序中正常工作。

10.2.2.1 X11

在 X11 环境下,需要根据所使用的桌面管理器及 Shell,选择合适的方式配置:

  • 显示管理器配置路径
  1. SDDM、LightDM、GDM 都可在 ~/.xprofile 文件中写入 A 组配置
  2. LightDM、GDM 可在 ~/.profile 文件中写入 A 组配置
  3. SDDM 可在用户登录 Shell 的配置文件中写入配置
  • Shell 配置路径
  1. sh: 在 ~/.profile 文件写入 A 组配置
  2. bash: 在 ~/.bash_profile 文件或 ~/.profile 文件写入 A 组配置
  3. zsh: 在 ~/.zprofile 文件写入 A 组配置
  4. csh: 在 ~/.cshrc 文件写入 B 组配置

注意

如果登录桌面的用户账户不是 root,则无法使用 root 身份设置,必须切换到该普通用户,并在不使用 sudo 的情况下进行配置。

  • A 组(sh/bash/zsh)
ini
export LANG=zh_CN.UTF-8            # 设置系统语言为中文
export LANGUAGE=zh_CN.UTF-8       # 设置优先语言为中文
export LC_ALL=zh_CN.UTF-8         # 设置所有本地化环境变量为中文
export XMODIFIERS='@im=fcitx'    # 设置 X 输入法模块为 fcitx
export GTK_IM_MODULE=fcitx        # 设置 GTK 应用使用 fcitx 输入法
export QT_IM_MODULE=fcitx         # 设置 Qt 应用使用 fcitx 输入法
  • B 组(csh)
ini
setenv LANG zh_CN.UTF-8
setenv LC_ALL zh_CN.UTF-8
setenv LANGUAGE zh_CN.UTF-8
setenv XMODIFIERS @im=fcitx
setenv GTK_IM_MODULE fcitx
setenv QT_IM_MODULE fcitx

10.2.2.2 Wayland

在 Wayland 下,不应设置 GTK_IM_MODULEQT_IM_MODULE。Wayland 提供了输入法相关的协议(text-inputinput-method),不依赖 GTK 和 Qt 的输入法模块也能正常使用输入法。设置 GTK_IM_MODULEQT_IM_MODULE 可能适得其反,例如输入候选框与光标位置间距离异常。

运行在 XWayland 下的程序,输入法由环境变量 XMODIFIERS='@im=fcitx' 配置。

  • A 组(sh/bash/zsh):
ini
export LANG=zh_CN.UTF-8            # 设置系统语言为中文
export LANGUAGE=zh_CN.UTF-8       # 设置优先语言为中文
export LC_ALL=zh_CN.UTF-8         # 设置所有本地化环境变量为中文
export XMODIFIERS='@im=fcitx'    # 设置 X 输入法模块为 fcitx
  • B 组(csh)
ini
setenv LANG zh_CN.UTF-8
setenv LC_ALL zh_CN.UTF-8
setenv LANGUAGE zh_CN.UTF-8
setenv XMODIFIERS @im=fcitx

10.2.3 安装 RIME 中州韵输入法

除了 Fcitx 自带的中文输入法插件外,还可以安装 RIME 中州韵输入法,这是一个高度可定制的输入法引擎。

  • 使用 pkg 安装:
sh
# pkg install zh-fcitx5-rime zh-rime-essay
  • 或者使用 Ports 安装:
sh
# cd /usr/ports/chinese/fcitx5-rime/ && make install clean
# cd /usr/ports/chinese/rime-essay/ && make install clean

注意

chinese/rime-essay 是必要的,它是 RIME 的共享词汇与语言模型,没有这个 Port,RIME 输入法只会显示乱码。

如果 RIME 未自动添加到输入法列表,请手动添加以完成初始化。

普通用户如果配置未生效,请检查 Shell 是否已按教程配置。

10.2.4 故障排除与未竟事宜

遇到问题,请先运行 fcitx5-diagnose 故障诊断,但其输出仅针对 Bash 的环境变量配置。csh 的环境变量配置请参考上文。

若出现与 bash 相关的提示且无法输出诊断结果,需先安装 Bash。

运行 Fcitx5 输入法诊断工具,检查配置和环境问题:

sh
$ fcitx5-diagnose

Fcitx 5.x 中未检测到 Fcitx Qt 4 支持模块属于正常现象。