几乎所有的fcitx4数据都存储在 ~/.config/fcitx
下。
对于fcitx5,路径更接近XDG标准, ~/.local/share/fcitx5
和 ~/.config/fcitx5
。
其中,Fcitx 4的Rime数据位于 ~/.config/fcitx/rime
, Fcitx 5的Rime数据位于 ~/.local/share/fcitx5/rime
。
发行版可能有自己的方式来拆分包,我将只讨论它们如何在源包上映射。
Fcitx4 | Fcitx5 |
---|---|
fcitx | fcitx5, fcitx5-gtk (Gtk IM Module), fcitx5-qt (Qt IM Module), fcitx5-chinese-addons (Pinyin & Table) |
fcitx-qt5 | fcitx5-qt |
fcitx-configtool | fcitx5-configtool |
kcm-fcitx | fcitx5-configtool |
fcitx-anthy | fcitx5-anthy |
fcitx-chewing | fcitx5-chewing |
fcitx-cloudpinyin | fcitx5-chinese-addons |
fcitx-fbterm | fcitx5-fbterm |
fcitx-hangul | fcitx5-hangul |
fcitx-kkc | fcitx5-kkc |
fcitx-libpinyin | 使用 fcitx5-chinese-addons 替代 |
fcitx-m17n | fcitx5-m17n |
fcitx-rime | fcitx5-rime |
fcitx-sayura | fcitx5-sayura |
fcitx-skk | fcitx5-skk |
fcitx-sunpinyin | 使用 fcitx5-chinese-addons代替 |
fcitx-table-extra | fcitx5-table-extra |
fcitx-table-other | fcitx5-table-other |
fcitx-unikey | fcitx5-unikey |
fcitx-zhuyin | fcitx5-zhuyin |
您需要重新配置输入法列表,不支持迁移配置文件。
快速短语是一个内置的插件,它允许你输入一些东西来搜索和匹配通常需要更多努力才能输入的文本。
可以全局触发,默认热键 Meta + `
它有一些内置的表,可以在Github上查看,或者在本地使用quickphrase
编辑器GUI(从Configtool中的quickphrase设置启动)。
内建表包括:
快速短语也可以用Lua或C扩展。
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字符🍆搜索茄子。
这是老派的X11特性,但也适用于Fcitx支持的任何地方。您可以在xkbcommon文档中找到一些文件语法的描述。
它允许您将按键序列转换为任何字符串。但请注意,此功能是全局的,您不能轻易禁用它。
当在键盘引擎中启用长按选项时,您可以获得映射到您所按的键的候选文本列表。映射是完全可定制的,并允许您在某些应用程序中禁用它。
如果您正在使用布局引擎(输入法命名为“键盘-布局名称”),您可以使用快速短语搜索Unicode CLDR注释。例如,使用“键盘-英语(美国)”,您可以搜索apple的🍎和🍏。可用于搜索的语言与布局语言相关联。
您也可以使用其他方法,如快速短语内置表方法,或与Unicode插件,或撰写上述。
这个页面介绍了以下环境变量的含义。你不需要理解他们来使用Fcitx,但是以下内容可能会在你遇到问题是帮助你检查哪里出了问题。
这个变量仅影响 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输入法模块的自动选择。在默认情况下,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 的文件。
来自[email protected]发布于[email protected]的最新消息
各位好,
参照 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 发布日期后被逐步废弃或移除。
下面是一些常见问题:
-> Debian 中可以参考 https://wiki.debian.org/I18n/Fcitx5 这份维基文档。 -> 如需阅读上游的文档,请访问 https://fcitx-im.org/wiki/Fcitx_5/zh-cn 这里。
-> 根据 https://fcitx-im.org/wiki/Upgrade_from_Fcitx_4 ,移除的输入法大致如下:
-> fcitx-googlepinyin -> fcitx-sunpinyin -> fcitx-libpinyin -> 这三个输入法的用户应转用 fcitx5-chinese-addons。
Wayland是下一代显示服务器协议。虽然该协议的初始版本是在2008 年,但对输入法的支持并不是很理想。
此外,在基于Wayland的合成器上使用输入法可能需要不同的设置才能使其工作,并且 Wayland 尚不支持在 X11 下工作的 fcitx 的某些功能。
本页将尝试涵盖所有当前信息以及一些基本细节,并且设置Fcitx5页提及的配置仍然有用。
对于 XMODIFIERS来说我们仍需要。 在 X11 和 XWayland 下运行的 X11 应用程序几乎没有区别。
在理想的设置中,您应该使用在 X11 下运行的 fcitx im 模块 Gtk 应用程序,以及用于 wayland 的 Gtk 的 text-input-v3。执行此操作的方法是:
不要设置GTK_IM_MODULE环境变量。
对于 Gtk2,在 ~/.gtkrc-2.0 中添加以下内容
gtk-im-module="fcitx"
~/.config/gtk-3.0/settings.ini
中添加以下内容[Settings]
gtk-im-module=fcitx
~/.config/gtk-4.0/settings.ini
中添加以下内容[Settings]
gtk-im-module=fcitx
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有一个基于自定义的类ini配置文件和图片的简单主题引擎。它会同时在服务器侧输入法界面和fcitx5新的客户端侧输入法界面生效。在X11下,输入法的窗口由fcitx的服务器程序渲染。但是在Wayland下面,它可能会由像Qt、Gtk这样的客户端程序渲染。他们会共用相似的逻辑和大多数的特性。但是Qt是一个例外,由于在Qt下窗口由本地Qt库的API渲染,因此它不支持“由输入法语言渲染文本”选项。
这是一个基于 DBus 接口的用户界面,在输入法框架中通用。有多种实现可以用于不同的桌面环境。
特定的发行版可能会提供一些用于自动启动 Fcitx 的工具,并且这些工具通常也会设置环境变量。
这是一个用于 Debian 和 Debian-based 发行版的工具。在登录到 GUI 之后,从命令行执行 im-config,应该会弹出一个向导程序,在其中选择 fcitx5 即可。
这是一个与 im-config 类似的程序,它也提供了 GUI 来选择要使用的输入法框架。imsettings 应该是被默认安装的,如果没有,你可以手动安装它。imsettings 可以设置环境变量并且启动相应的输入法,它还提供了一个图形化的前端用于修改配置。你需要做的就是简单地执行im-chooser,log-out 然后再次 log-in。
针对 Fedora 36 KDE 的操作说明。 这个操作说明应该适用于除 GNOME 外的 XDG 兼容桌面。
这是一个 [fedora package],打包了一个用于设置环境变量和 XDG autostart file 的 /etc/profile.d 脚本,可用于自启动。
特定的发行版可能没有提供这个文件,如未提供,你可以直接复制 /usr/share/applications/org.fcitx.Fcitx5.desktop 到 ~/.config/autostart
make.conf
中添加-i18n
使用标记,然后运行:emerge --update --newuse --deep @world --ask
-nls use
标志重建 gnome-shellapp-i18n/ibus
:emerge -cav app-i18n/ibus
或者如果你想保持 ibus 的安装(如果你想使用 fcitx,你根本不需要 ibus,对于较旧的 gnome 3.6,你也可能会遇到这个错误,所以你最好删除它),运行:
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
对当前用户生效。
Or,
如果您使用的是 fedora,请确保使用 imsettings
选择 Fcitx。
如果 set GTK_IM_MODULE
不起作用,请尝试运行以下命令。
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"
重新登录。
当你抱怨输入法无法正常工作前,请先阅读这个页面。
从 4.2.7 开始,Fcitx 提供了一个 fcitx-diagnose 的命令,它可以检测一些常见的问题并且给出一些建议。
检查你要输入文字的应用程序。
最可能的原因是某个快捷键占用了 Ctrl Space,请修改另一个快捷键并重试。这常见于编辑器中,因为很多集成开发环境默认使用 Ctrl+Space 作为补全的快捷键。
一些发行版的telegram desktop使用了qt6。这时候要确保系统上安装了Qt6的输入法模块。(对于fcitx4而言,在archlinux上要安装fcitx-qt6软件包)
对于在 X11 下运行的 Chromium,如果使用没有设置 DBUS_SESSION_BUS_ADDRESS 选项的 startx 启动图形用户界面,可能会遇到 这个问题,它会导致基于 Chromium 的浏览器无法正确使用 dbus。为了解决这种情况,可以这么做:
对于在 wayland 下原生运行的 Chromium,唯一支持的原生 wayland 输入法协议是text-input-v1,只有 weston 支持。或者,也可以使用 Gtk4 的 im 模块,需要使用以下标志 (—enable-features=UseOzonePlatform –ozone-platform=wayland –gtk-version=4) 来使其启用 Gtk im 模块,但是除非使用 kimpanel + GNOME,否则在光标位置弹出候选词窗口的功能就完全坏掉了。
Fcitx 软件包通常包括两部分部分:主程序,作为应用程序的输入法模块和插件(通常它们都是输入法引擎)。
您需要从自己的软件包列表中搜索指定的Fcitx包。Fcitx 5软件包的名称中通常包含“fcitx5”。
截至今天,除了一些滚动发行版,fcitx5尚未在发行版存储库中普遍可用。
下面是一些在您使用的发行版中搜索 Fcitx5 软件包的示例。 您还可以使用桌面提供的 GUI 软件中心,例如 gnome-software(GNOME)或Plasma-discover(KDE)发现。
yum search fcitx5 # CentOS
dnf search fcitx5 # Fedora
pacman -Ss fcitx5 # Archlinux
zypper search fcitx5 # OpenSUSE
apt-cache search fcitx5 # Debian/Ubuntu
或者pkgs.org提供一个在不同发行版中搜索软件包的简单方法。 请注意可能有一些版本为0.0~git这样的包,这种版本是一些相当老的版本,比最老的Fcitx5稳定发布版本还要老。通常不建议使用这种版本的Fcitx5.
pkgs.org 也会提供针对不同发行版的特定安装命令。
一个基本的fcitx5安装包括:
一些额外的插件和主题支持:
Flatpak 是一个用于Linux系统的软件分发和包管理工具软件。有两个flatpak仓库提供了fcitx5软件包,一个是flathub,另一个是fcitx本身的不稳定仓库。
截止今日,我们仍然在向flathub推送fcitx5软件包。flathub上现在仅仅只有fcitx5主程序,中文输入法,注音输入法,以及Mozc输入法。
您需要先对flatpak的软件仓库进行配置,可以通过执行下面的命令,或者在图形界面软件上操作完成。
# 添加 flatub 仓库, fcitx5-unstable 也会依赖一些这个仓库中的运行时软件包。
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# 可选部分: 如果你想要使用不稳定版本的fcitx5,也可以添加 fcitx5 非稳定仓库。
flatpak remote-add --user --if-not-exists fcitx5-unstable https://flatpak.fcitx-im.org/unstable-repo/fcitx5-unstable.flatpakrepo
从flatpak安装fcitx