时效性提醒

截止本文最后的更新时间2025-04-29, KDE最新版本为6.3.4. 目前KDE6上的Fcitx5集成已经做的非常好, 基本属于开箱即用的状态. 以前旧版本中的很多操作可能已经不再适用.

安装Fcitx5框架

在Ubuntu/Fedora/Arch上可以通过以下命令直接安装Fcitx5框架

sudo apt install fcitx5 fcitx5-chinese-addons kcm-fcitx5
sudo dnf install fcitx5 fcitx5-chinese-addons kcm-fcitx5
sudo pacman -S fcitx5 fcitx5-im fcitx5-chinese-addons kcm-fcitx5

其中kcm-fcitx5是在KDE上配置Fcitx5的控制面板, 方便管理设置.

启用Fcitx5

在KDE的设置界面中找到"虚拟键盘"设置, 选择Fcitx5 Wayland启动器. 虽然它写的是实验性, 但其实从来没遇到过bug.

接着找到输入法设置, 点击右下角的"添加输入法", 在弹出的列表中找到"拼音"选项, 然后添加进去. 如果有双拼/五笔的其他需求可以自行添加.

保存设置并重启系统, 然后应该就能顺利使用Fcitx5了, 就是这么简单. 默认的输入法切换快捷键是Ctrl+Space, 可以在输入法设置中的"配置全局选项"中修改.

Wayland相关设置

环境变量

在Wayland下需要进行一些额外的环境变量设置. 新版本KDE6中已经不推荐全局设置GTK_IM_MODULEQT_IM_MODULE了, 如果这么做, KDE6会在Fcitx5启动的时候提示你unset这些环境变量. 正确的做法应该是只在/etc/environment中添加XMODIFIERS(配置XWayland应用程序行为), SDL_IM_MODULEGLFW_IM_MODULE(配置SDL和GLFW应用程序行为).

/etc/environment
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=fcitx
注意
  • /etc/environment中设置环境变量的时候不需要加上export前缀, 直接写变量名和变量值就行.
  • ~/.xprofile中添加环境变量是没用的, KDE6 Wayland不会读取这个X11配置文件.
  • ~/.bashrc这种Shell配置文件中添加环境变量也是没用的, 从桌面快捷方式启动的应用程序不会使用这些Shell环境变量, 除非你在Shell中启动应用程序.

对于那些需要用到GTK_IM_MODULE或者QT_IM_MODULE环境变量的程序, 单独为它们设置环境变量, 比如微信. 你可以在微信的桌面快捷方式对应的.desktop文件中添加

/usr/share/application/wechat.desktop
[Desktop Entry]
Exec=/opt/wechat/wechat %U
Exec=env QT_IM_MODULE=fcitx QT_AUTO_SCREEN_SCALE_FACTOR=1 /opt/wechat/wechat %U

这样每次启动微信的时候都会自动为它单独设置QT_IM_MODULE环境变量. QT_AUTO_SCREEN_SCALE_FACTOR是QT的高分屏自动缩放, 对于4K显示器建议开启.

另外, 推荐在~/.gtkrc-2.0, ~/.config/gtk-3.0/settings.ini, ~/.config/gtk-4.0/settings.ini中设置GTK的输入法框架为fcitx

# In ~/.gtkrc-2.0
gtk-im-module="fcitx"
# In gtk-3.0/settings.ini & gtk-4.0/settings.ini 
[Settings]
gtk-im-module=fcitx

否则可能会出现一些旧GTK应用(跑在XWayland下)在输入中文时出现字母上屏的问题, 也就是打着打着某个字母没有被Fcitx5捕获到, 直接进入输入框中的情况.

Electron & Chromium

这俩其实是一个玩意, 毕竟Electron就是基于Chromium打包的. 通用的解法是在启用程序时附加启动参数.

google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime

可以将启动参数写到程序的.desktop文件中, 这样每次从桌面启动的时候都能自动附加.

另外如果一些仓库, 比如从AUR上安装的Chrome和VSCode官方版, 它的.desktop文件中的Exec启动的实际上是一个脚本, 在这个脚本中会从某个指定配置文件中读取启动参数. 那就可以在这个配置文件中添加启动参数.

~/.config/code-flags.conf
--enable-features=UseOzonePlatform
--ozone-platform=wayland
--enable-wayland-ime

具体的配置文件名称看脚本里是怎么写的. 启动脚本而不是直接启动二进制主要是为了省去版本更新后重新配置.desktop文件的麻烦. 每次程序版本更新都会覆盖掉旧的.desktop文件.

提示

某些用特别旧的Electron打包的程序可能不支持这三个参数, 或者附加这几个参数就会崩溃的. 这时只能用XWayland模式启用了. 其实KDE6的XWayland Video Bridge已经是几大DE中做的最好的了, 体验相当不错. 前段时间(6.3.4版本)修复了Chromium/Electron应用在分数缩放下, 启用系统窗口装饰栏时, 窗口内容模糊的问题. 现在分数缩放下的体验已经很好了.

使用Fcitx5-Rime(中州韵)

Fcitx5-Rime是在Fcitx5之上做的一个输入引擎, 它允许自定义配置方案(说白了就是允许你安装几种不一样的输入法, 然后引入很多常用词库). 网上已经有很多大佬做的整合了, 没有必要从头折腾. 推荐使用薄荷拼音或者雾凇拼音. 加上東風破(Rime的官方配置文件管理器), 一键配置爽得很.

首先要安装fcitx5-rime

sudo apt install fcitx5-rime
sudo dnf install fcitx5-rime
sudo pacman -S fcitx5-rime

然后在KDE输入法设置中添加输入法"中州韵", 应用设置后会弹出一个提示, "Rime正在部署中", 初次配置时间可能较长, 耐心等待即可.

以雾凇拼音为例, 首先克隆東風破, 然后一键安装

git clone --depth=1 https://github.com/rime/plum
cd plum
bash rime-install iDvel/rime-ice:others/recipes/full

然后就安装好了. 切换到Rime输入法, 右键系统托盘中的输入法图标, 在菜单中找到重新部署. 等待部署完成后即可使用雾凇拼音.

你可以定期重新执行这条命令, 用来更新输入法词库, 获得更好的输入体验.

bash rime-install iDvel/rime-ice:others/recipes/full

另外, Rime提供了非常多的配置选项, 可以参考Rime官方网站.

更换Fcitx5主题

可以在KDE输入法设置的"配置附加组件"中找到"经典用户界面"选项, 在其配置中选择主题为"KDE Plasma(实验性)". 感觉这个主题看上去还不错了, 比Fcitx5自带那个好多了.

如果想使用其它主题, 可以上谷歌搜索喜欢的, 然后将主题文件夹复制到~/.local/share/fcitx5/themes下(没有则创建), 然后创建新配置文件

~/.config/fcitx5/conf/classicui.conf
# 改为水平候选列表
Vertical Candidate List=False
# 按屏幕DPI使用
PerScreenDPI=True
# 字体(自己设置)
Font="SF Pro Display 13"
# 主题(主题文件夹名称)
Theme="YourThemeName"

另外, 如果你想改变Rime的单页输入候选数量, 可以在~/.config/fcitx5/rime/中创建一个新文件default.custom.yaml

default.custom.yaml
patch:
	"menu/page_size": 8 # 改成自己想要的数量

对于纯Fcitx5, 直接在KDE输入法设置中改即可.

参考