Ubuntu22.04安装Fcitx5中文输入法[转载]

Ubuntu22.04安装Fcitx5中文输入法#

一时兴起将主力机的 Ubuntu 20.04 LTS 升级至了刚刚发布的 22.04 LTS。从 X 切换到 Wayland 、GNOME 从 3.36 升级至 42、Python 默认为 3.10 等等……使用太新的软件包反而暂时带来了麻烦,部分原有的软件和插件都不可用了。这其中就包括已经很久没有更新的百度输入法。故需要寻找新的中文拼音输入法。经简单浏览对比,选择了 Fcitx 5。

安装fcitx5#

检查系统中文环境#

在 Ubuntu 设置中打开「区域与语言」—— 「管理已安装的语言」,然后会自动检查已安装语言是否完整。若不完整,根据提示安装即可。

管理已安装的语言

最小安装#

为使用 Fcitx 5,需要安装三部分基本内容:

  • Fcitx 5 主程序
  • 中文输入法引擎
  • 图形界面相关

按照这个思路,可以直接使用apt进行安装:

sudo apt install fcitx5 \
fcitx5-chinese-addons \
fcitx5-frontend-gtk4 fcitx5-frontend-gtk3 fcitx5-frontend-gtk2 \
fcitx5-frontend-qt5

安装中文词库#

在 GitHub 打开维基百科中文拼音词库的 Releases 界面,下载最新版的 .dict 文件。按照 README 的指导,将其复制到~/.local/share/fcitx5/pinyin/dictionaries/文件夹下即可。

# 下载词库文件
wget https://github.com/felixonmars/fcitx5-pinyin-zhwiki/releases/download/0.2.4/zhwiki-20220416.dict
# 创建存储目录
mkdir -p ~/.local/share/fcitx5/pinyin/dictionaries/
# 移动词库文件至该目录
mv zhwiki-20220416.dict ~/.local/share/fcitx5/pinyin/dictionaries/

配置fcitx5#

设置fcitx5为默认输入法#

使用im-config工具可以配置首选输入法,在任意命令行输入:

Ubuntu Fcitx5输入法安装与配置指南[转载]

Ubuntu Fcitx5输入法安装与配置指南#

在Linux 桌面环境中,输入法的流畅度和易用性直接影响日常办公与开发效率。Fcitx 作为主流的输入法框架,其下一代版本 Fcitx5 相比旧版 Fcitx4,在响应速度、兼容性、自定义程度上均有大幅提升,完美适配 Ubuntu 20.04 及以上版本。本文将详细讲解 Fcitx5 的完整安装、核心配置、功能优化及常见问题排查,帮助你快速打造一套“顺手又美观”的中文输入环境。

前言:为什么选择 Fcitx5?#

对于 Ubuntu 用户而言,系统默认的 IBus 输入法虽能满足基础需求,但在候选词智能性、主题美化、应用兼容性上表现一般。而 Fcitx5 作为升级版框架,具备以下核心优势:

  • 轻量流畅:启动速度快,输入无卡顿,占用系统资源少,适合长期后台运行;
  • 兼容性强:完美适配 GTK、Qt 系列应用,支持 VS Code、Chrome、WPS 等常用软件,无输入失效问题;
  • 功能丰富:支持拼音、双拼、五笔等多种输入方式,内置云拼音、自定义短语、词频记忆等实用功能;
  • 高度可定制:支持多种主题美化,可自定义快捷键、候选词样式、输入规则,贴合个人使用习惯。
  • 注意:Fcitx5 与 Fcitx4 是独立框架,无法直接“升级”,需先卸载旧版 Fcitx4 再安装 Fcitx5,避免依赖冲突。

前置准备:卸载旧版 Fcitx4(若有)#

若你的 Ubuntu 系统之前安装过 Fcitx4,需先彻底卸载,否则会导致 Fcitx5 无法正常启动或功能异常。

  • 步骤 1:查看已安装的 Fcitx4 相关包 执行以下命令,查看系统中已安装的 Fcitx4 组件,确认是否存在旧版残留:
dpkg -l |grep fcitx |grep -v fcitx5 

若输出为空,说明未安装 Fcitx4,可直接跳过此章节;若有输出,需执行后续卸载步骤。

  • 步骤 2:彻底卸载 Fcitx4 执行以下命令,卸载所有 Fcitx4 相关包及配置文件,避免残留:
sudo apt purge fcitx* -y sudoapt autoremove -y 

卸载完成后,建议注销当前用户再重新登录,确保旧版框架完全退出。

Fcitx最佳配置实践[转载]

Fcitx最佳配置实践#

Linux 下最爽的输入法就是 Fcitx 了, 但是没有配置好, 就会出现各种各样的问题, 比如打太快漏字这种问题。

今天把所有博客关于 Fcitx 的配置都整理成一篇, 方便我自己和大家以后用。

我测试了雾凇输入法、白霜输入法还有万象输入法,最后还是回到雾凇输入法,万象输入法的拼音模式太烦人了,特别容易误触。

如果你用Arch Linux,恭喜你,你不用折腾这篇博客下面的命令行,直接用我开发的 rime-ice-installer,输入法自动安装并应用下面的所有配置。

yay -S rime-ice-installer
rime-ice-installer

安装 Fcitx5 输入法#

安装 Fcitx5 软件包:

sudo pacman -S fcitx5 fcitx5-gtk fcitx5-qt fcitx5-configtool fcitx5-rime librime
  • fcitx5: 输入法基础框架主程序
  • fcitx5-gtk: GTK 程序的支持, 必须安装, 修复打字太快漏字的问题
  • fcitx5-qt: QT5 程序的支持, 必须安装, 修复打字太快漏字的问题
  • fcitx5-configtool: 图形化配置工具
  • fcitx5-rime: RIME 输入法
  • fcitx5-im: 输入法设置工具
  • librime: rime 相关库, 下面的 emacs-rime 会用到

Wayland 环境设置#

安装好上面的 Fcitx 包,在 KDE 环境下,只需要进入 KDE 设置->虚拟键盘, 选择 Fcitx5 后重新注销即可在大部分应用中输入中文。

从Fcitx4升级至Fcitx5

从Fcitx4升级至Fcitx5#

个人数据存放#

几乎所有的fcitx4数据都存储在 ~/.config/fcitx 下。

对于fcitx5,路径更接近XDG标准, ~/.local/share/fcitx5~/.config/fcitx5

其中,Fcitx 4的Rime数据位于 ~/.config/fcitx/rime , Fcitx 5的Rime数据位于 ~/.local/share/fcitx5/rime

安装什么软件包#

发行版可能有自己的方式来拆分包,我将只讨论它们如何在源包上映射。

Fcitx4Fcitx5
fcitxfcitx5, fcitx5-gtk (Gtk IM Module), fcitx5-qt (Qt IM Module), fcitx5-chinese-addons (Pinyin & Table)
fcitx-qt5fcitx5-qt
fcitx-configtoolfcitx5-configtool
kcm-fcitxfcitx5-configtool
fcitx-anthyfcitx5-anthy
fcitx-chewingfcitx5-chewing
fcitx-cloudpinyinfcitx5-chinese-addons
fcitx-fbtermfcitx5-fbterm
fcitx-hangulfcitx5-hangul
fcitx-kkcfcitx5-kkc
fcitx-libpinyin使用 fcitx5-chinese-addons 替代
fcitx-m17nfcitx5-m17n
fcitx-rimefcitx5-rime
fcitx-sayurafcitx5-sayura
fcitx-skkfcitx5-skk
fcitx-sunpinyin使用 fcitx5-chinese-addons代替
fcitx-table-extrafcitx5-table-extra
fcitx-table-otherfcitx5-table-other
fcitx-unikeyfcitx5-unikey
fcitx-zhuyinfcitx5-zhuyin

可以保留旧数据#

您需要重新配置输入法列表,不支持迁移配置文件。

Fcitx使用技巧

Fcitx使用技巧#

fcitx输入特殊字符#

快速短语#

快速短语是一个内置的插件,它允许你输入一些东西来搜索和匹配通常需要更多努力才能输入的文本。

可以全局触发,默认热键 Meta + `

它有一些内置的表,可以在Github上查看,或者在本地使用quickphrase编辑器GUI(从Configtool中的quickphrase设置启动)。

内建表包括:

  1. Latex,它允许你用Latex语法输入数学/其他符号。例如,“\alpha”将产生“α”。
  2. 表情符号Ascii码,允许你输入以“:”为首的Unicode表情符号字符,这是你经常在即时通讯软件中看到的。例如,“:smile:”将生成😄。
  3. Emoji,它包含了一个类似“考莫吉”的短语列表,例如:“微笑”是为了“(∀·)”。

快速短语也可以用Lua或C扩展。

Unicode类型#

Fcitx 5还提供了一个Unicode插件,允许您使用十六进制数字输入Unicode,或使用描述进行搜索。

Ctrl + Shift + U 为您提供了与Gtk的内置Unicode特性类似的体验,您只需键入十六进制数字并按空格。如类型 Ctrl + Shift + U, 2, 6, 3, a, space 将为您提供Unicode字符☺。

或者使用 Ctrl + Shift + Alt + U ,您将能够使用description进行搜索。如果你只是按 Ctrl + Shift + Alt + U ,它会显示你的剪贴板和当前选择字符串的Unicode。

如果你想搜索描述,你只需要输入描述,例如,你可以用Unicode字符🍆搜索茄子。

用compose打字#

这是老派的X11特性,但也适用于Fcitx支持的任何地方。您可以在xkbcommon文档中找到一些文件语法的描述。

它允许您将按键序列转换为任何字符串。但请注意,此功能是全局的,您不能轻易禁用它。

在键盘引擎中使用长按#

当在键盘引擎中启用长按选项时,您可以获得映射到您所按的键的候选文本列表。映射是完全可定制的,并允许您在某些应用程序中禁用它。

Emoji输入#

如果您正在使用布局引擎(输入法命名为“键盘-布局名称”),您可以使用快速短语搜索Unicode CLDR注释。例如,使用“键盘-英语(美国)”,您可以搜索apple的🍎和🍏。可用于搜索的语言与布局语言相关联。

您也可以使用其他方法,如快速短语内置表方法,或与Unicode插件,或撰写上述。

https://fcitx-im.org/wiki/Tips_and_Tricks

Fcitx5输入法相关环境变量

Fcitx5输入法相关环境变量#

这个页面介绍了以下环境变量的含义。你不需要理解他们来使用Fcitx,但是以下内容可能会在你遇到问题是帮助你检查哪里出了问题。

XMODIFIERS#

这个变量仅影响 XIM。格式为

XMODIFIERS=@im=<xim 服务器名称>

当 XIM 服务器启动时,他会注册一个应当在这里使用的名称。这个名称不能和其他 XIM 服务器相同,因此你无法在同一个 X 服务器下运行两个 Fcitx。通常情况下,Fcitx 的 XIM 服务器名称为 fcitx。

因此对于 Fcitx 来说这个设置应当为

XMODIFIERS=@im=fcitx

在非 CJK 语言环境中,如果这个环境变量没有设置,一些程序中 XIM 将无法工作,这意味这你最好总是设置了这个环境变量。并且 XIM 也需要你有正确的语言环境,这意味着你的语言必须在下面的命令的输出当中

locale -a

你可以通过以下命令检查你当前的语言环境

locale

为了使用 XIM,你的语言不能设置为 C 或者 POSIX。

GTK_IM_MODULE#

这会覆盖系统的gtk输入法模块的自动选择。在默认情况下,gtk按照语言选择对应的输入法模块。Fcitx声明它支持 “zh:ja:ko:*"。这些信息将被记录在一个文件当中,在大多数的 linux 系统中,这个文件为 /etc/gtk-2.0/gtk.immodules 和 /etc/gtk-3.0/gtk.immodules,有时会以 -32 或者 -64 结尾。

在 Debian 进行了多架构的迁移之后,将使用不同的文件。对应文件将为 /usr/lib/<架构>/gtk-{2,3}.0/gtk.immodules }} 你需要使用

gtk-query-immodules-2.0 > <gtk-2.0 的输入法模块文件>

更新 gtk2 的文件,

或者如果你的 gtk2 版本新于 2.24.20,则应当使用

gtk-query-immodules-2.0 --update-cache

就像 gtk3 一样。

以及

gtk-query-immodules-3.0 --update-cache

更新 gtk3 的文件。

否则新的输入法模块将无法被识别。

如果由 GTK_IM_MODULE 指定的输入法模块没有被找到,gtk 将会回退到自动选择的方法。

FCITX5输入法迁移通告

FCITX5输入法迁移通告#

来自byang@debian.org发布于debian-chinese-gb@lists.debian.org的最新消息

各位好,

参照 fcitx 上游的活动记录 [1],原有的 fcitx 4.x 输入法框架的所有仓库已于 2024年5月归档(archived)。可以看出 fcitx4 输入法框架在数年的过渡期之后 其上游的维护与支持已告停止。

考虑到上游的开发重心,以及 fcitx 4.x 对 wayland 协议因设计原因无法运行于 wayland 环境下的情况,我建议现有 fcitx4 用户尽早测试换用 fcitx5, 并择机从 fcitx4 迁移到 fcitx5。

考虑到开发和支持周期问题,下一个 Debian Stable (Debian 13, Trixie) 版本中 仍然会保留所有 fcitx4 的相关软件包。但随着情况的后续发展,fcitx4 的相关 软件包可能最早会在 Ubuntu 26.04 LTS 发布日期后被逐步废弃或移除。

下面是一些常见问题:

有通用的 fcitx4 -> fcitx5 迁移文档吗?#

-> Debian 中可以参考 https://wiki.debian.org/I18n/Fcitx5 这份维基文档。 -> 如需阅读上游的文档,请访问 https://fcitx-im.org/wiki/Fcitx_5/zh-cn 这里。

fcitx5 相较于 fcitx4 移除了哪些输入法支持?#

-> 根据 https://fcitx-im.org/wiki/Upgrade_from_Fcitx_4 ,移除的输入法大致如下:

-> fcitx-googlepinyin -> fcitx-sunpinyin -> fcitx-libpinyin -> 这三个输入法的用户应转用 fcitx5-chinese-addons。

在Wayland上使用Fcitx5

在Wayland上使用Fcitx5#

Wayland是下一代显示服务器协议。虽然该协议的初始版本是在2008 年,但对输入法的支持并不是很理想。

此外,在基于Wayland的合成器上使用输入法可能需要不同的设置才能使其工作,并且 Wayland 尚不支持在 X11 下工作的 fcitx 的某些功能。

本页将尝试涵盖所有当前信息以及一些基本细节,并且设置Fcitx5页提及的配置仍然有用。

应用程序#

TL;DR 我们还需要 XMODIFIERS, GTK_IM_MODULE 和 QT_IM_MODULE?#

XMODIFIERS#

对于 XMODIFIERS来说我们仍需要。 在 X11 和 XWayland 下运行的 X11 应用程序几乎没有区别。

GTK_IM_MODULE#

在理想的设置中,您应该使用在 X11 下运行的 fcitx im 模块 Gtk 应用程序,以及用于 wayland 的 Gtk 的 text-input-v3。执行此操作的方法是:

  1. 不要设置GTK_IM_MODULE环境变量。

  2. 对于 Gtk2,在 ~/.gtkrc-2.0 中添加以下内容

gtk-im-module="fcitx"
  1. 对于 Gtk 3,请在 ~/.config/gtk-3.0/settings.ini中添加以下内容
[Settings]
gtk-im-module=fcitx
  1. 对于 Gtk 4,请在~/.config/gtk-4.0/settings.ini中添加以下内容
[Settings]
gtk-im-module=fcitx
  1. 如果您使用的是 GNOME 3+,请同时运行以下命令。
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"

GTK_IM_MODULE,就目前而言,现代 Gtk 3/4 应用程序应该能够使用 text-input-v3,几乎所有合成器都支持它,除了 weston。在设置 GTK_IM_MODULE 的值方面,有几种不同的选项。当它被取消设置时,Gtk 内置的 Wayland im 模块将用于 Gtk3 和 Gtk4。虽然你也可以通过执行 GTK_IM_MODULE=wayland 来强制执行它,但请记住它也会被 Gtk2 接收。设置 GTK_IM_MODULE=fcitx 仍然可以工作,如果你的合成器不支持 Wayland 输入法前端,这是必要的。

Fcitx5定制主题

Fcitx5定制主题#

经典用户界面#

Fcitx5有一个基于自定义的类ini配置文件和图片的简单主题引擎。它会同时在服务器侧输入法界面和fcitx5新的客户端侧输入法界面生效。在X11下,输入法的窗口由fcitx的服务器程序渲染。但是在Wayland下面,它可能会由像Qt、Gtk这样的客户端程序渲染。他们会共用相似的逻辑和大多数的特性。但是Qt是一个例外,由于在Qt下窗口由本地Qt库的API渲染,因此它不支持“由输入法语言渲染文本”选项。

经典用户界面的选项#

  • 竖列选词列表。启用此项,在输入法引擎没有指定的情况下,则默认会以竖列的方式显示候选词列表。但是输入法引擎逻辑也可能会覆盖这个显示方向。
  • 各屏幕使用独立DPI。使用输入窗口所在屏幕的DPI缩放来渲染文字。这个选项大多数情况下只会影响X11。在X11下,Fcitx会读取配置的Xft.dpi值,并且将此值当作为您主屏幕所使用的DPI值。如果您使用的是双屏幕配置,并且主屏幕的物理DPI是120,副屏幕的是280。如果Xft.dpi值被设置为96,那么fcitx在您的主屏幕中使用的渲染DPI将会是96,另一个屏幕则按照等比例缩放使用280/120*96=224的DPI来渲染文字。
  • 使用鼠标滚轮来前后翻页
  • 由输入法语言来渲染文字。特性的字符在不同的语言环境下可能会使用同一个Unicode编码进行表示。此选项允许文字使用输入法语言的本地设置来显示文字。举个例子,使用像拼音等中文输入法时它会显示为中文变体的字符,使用日文输入法时的日文变体就会显示为日文变体。使用此选项要求所使用的字体支持不同地区设置。

Kim面板#

这是一个基于 DBus 接口的用户界面,在输入法框架中通用。有多种实现可以用于不同的桌面环境。

  • Kimpanel plasmoid, 包含在KDE Plasma5桌面环境的plasma-desktop软件包。
  • GNOME扩展,可以在extensions.gnome.org中可以找到的。由 User:Weng Xuetian在github维护.
  • Kimtoy, 一个第三方的独立程序。 因为Wayland和输入法之间复杂情况的问题,在非GNOME环境下使用Fcitx的输入法模块时,Kimpanel可能无法在Gtk/Qt的原生wayland程序下使用。 这主要是因为kimpanel作为 GNOME 扩展,能够获取窗口信息并自由移动窗口。 同样的情况并不适用于其他 Kimpanel 实现。 将窗口放在正确的位置比外观重要得多,因此在这种环境下不能使用 kimpanel,而是使用客户端输入面板。

设置Fcitx5

设置Fcitx5#

开机自启动#

特定发行版中的工具#

特定的发行版可能会提供一些用于自动启动 Fcitx 的工具,并且这些工具通常也会设置环境变量。

im-config (Debian/Debian-based/Ubuntu)#

这是一个用于 Debian 和 Debian-based 发行版的工具。在登录到 GUI 之后,从命令行执行 im-config,应该会弹出一个向导程序,在其中选择 fcitx5 即可。

imsettings (Fedora)#

这是一个与 im-config 类似的程序,它也提供了 GUI 来选择要使用的输入法框架。imsettings 应该是被默认安装的,如果没有,你可以手动安装它。imsettings 可以设置环境变量并且启动相应的输入法,它还提供了一个图形化的前端用于修改配置。你需要做的就是简单地执行im-chooser,log-out 然后再次 log-in。

针对 Fedora 36 KDE 的操作说明。 这个操作说明应该适用于除 GNOME 外的 XDG 兼容桌面。

fcitx5-autostart (Fedora)#

这是一个 [fedora package],打包了一个用于设置环境变量和 XDG autostart file 的 /etc/profile.d 脚本,可用于自启动。

XDG Autostart#

特定的发行版可能没有提供这个文件,如未提供,你可以直接复制 /usr/share/applications/org.fcitx.Fcitx5.desktop~/.config/autostart

mkdir -p ~/.config/autostart && cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart</nowiki>

KWin Wayland 5.24+#

如果你只使用 Gtk/Qt/Xwayland 应用,那么你不需要这里的操作。如果你希望使用支持 text-input-v3 的原生 wayland 应用,则需要让 KWin 将输入法作为一个特殊的客户端启动。