缘起
Linux的桌面端近年来发展非常迅速,目前在易用性上Linux的桌面端已经做得非常不错了。然而由于其生态繁杂,各种工具和配置项五花八门,对于中文的支持一直都比较差。使用中文的新用户光折腾输入法可能都摸不着头脑,我曾经也在配置中文输入法、中文字体上花了不少精力、浪费了不少时间。而且就在最近,我又遇到了一些问题,决定把这些经验整理一下,帮助更多的用户顺利使用Linux系统中的中文环境。
输入法配置
Linux输入法基本概念
- 输入法框架:Linux下的输入法框架主要有
IBus、fcitx和scim等,其中IBus是最常用的输入法框架。输入法框架负责管理输入法引擎和输入法前端,提供输入法的切换、配置等功能。
IBus:一个简单易用的输入法框架,支持多种输入法引擎,是很多Linux发行版的默认输入法框架。fcitx:一个功能强大的输入法框架,支持多种输入法引擎,适合有一定经验的用户使用。fcitx目前更新到了第5版,也就是fcitx5。scim:一个较老的输入法框架,功能较为简单,现已逐渐被IBus和fcitx所取代。
如果你没有中文输入的需求,那么系统默认的IBus一般就够用了,但是如果你需要中文输入法,那么我推荐卸载掉IBus,安装fcitx5并配置相应的输入法。
- 输入法引擎:输入法引擎是实现具体输入法功能的组件,常见的中文输入法引擎有
Pinyin、Wubi、Sogou等。不同的输入法引擎有不同的输入方式和词库,用户可以根据自己的习惯选择合适的输入法引擎。
这里我推荐中州韻(Rime)輸入法引擎。
- oh-my-rime:
Oh-My-Rime又叫“薄荷输入法”,是一款基于Rime输入法的输入法解决方案,在多个平台都适用。我个人非常推荐使用这个输入法解决方案,它提供了非常友好的配置界面和丰富的功能,能够满足大部分用户的需求。
Linux中文输入法安装
我一开始在Fedora系统上使用默认的IBus输入法框架,搭配Rime输入法引擎。这个方案在大部分情况下都能正常工作,但在VS Code里切换为中文时,一输入就会在跳出候选词窗口的瞬间卡住。在网上搜索一番之后发现是因为VS Code使用了Electron框架,而IBus在Wayland下与Electron的兼容性较差。解决方法是切换到fcitx5输入法框架。
这里以Fedora 42系统为例,简单讲一下如何安装和配置IBus输入法和fcitx5输入法。
IBus + Rime (不太推荐)
虽然我个人不太推荐使用IBus,因为它和Wayland以及Electron的兼容性不好。但是如果你想坚持系统自带的输入法,也不怎么用基于Electron的软件,那么这套方案也未尝不可。
-
安装Rime:因为系统已经自带了IBus框架,这里我们只需要安装Rime就行了:
1sudo dnf install ibus-rime -
配置Rime:接下来就可以在设置中将
Rime输入法添加进来。具体方法是通过设置->Keyboard->Virtual Keyboard,找到IBus,确认启用的是IBus框架。然后右击系统托盘里的输入法图标,选择Configure,就会看到下面的界面:
点击
Add添加输入法,选择Chinese里面的Rime,然后点击Add按钮。添加完成后就可以在输入法列表中看到Rime了。这时你就已经可以点击任务栏里的输入法图标或者使用快捷组合键,选择
Rime输入法进行使用了。 -
使用oh-my-rime:
oh-my-rime的使用也非常简单,只要下载整个项目文件夹并放到输入法的配置里面就行了。在Fedora系统中,IBus的配置文件一般在~/.config/ibus/rime目录下。你可以通过以下命令下载oh-my-rime:1git clone https://github.com/Mintimate/oh-my-rime.git然后将整个
oh-my-rime文件夹复制到~/.config/ibus/rime目录下。重启或者注销后重新登录,
oh-my-rime就会生效。右击系统托盘里的输入法图标,就可以选择“薄荷拼音”作为输入方案了:
-
额外配置
oh-my-rime还提供了很多可以配置的选项,你可以参照官方文档进行配置。我觉得默认配置就已经挺好用了,所以暂时没做额外的配置。
fcitx5 + Rime (推荐)
-
安装fcitx5:首先安装
fcitx5及其相关组件:1sudo dnf install fcitx5 fcitx5-chinese-addons其中
fcitx5是输入法框架,fcitx5-chinese-addons是中文输入法插件。 -
安装Rime:可以通过以下命令安装Rime输入法:
1sudo dnf install fcitx5-rime librime-lua其中
fcitx5-rime就是Rime(中州韻)输入法的fcitx5版本;librime-lua是Rime的Lua脚本支持库,支持使用Lua进行输入法的定制。 -
配置fcitx5:安装完成后将系统的输入法框架换为
fcitx5,可以通过设置->Keyboard->Virtual Keyboard,可以看到下面的界面:
点击
fcitx5,再点击Apply。你就会发现任务栏里输入法的图标会从原来的IBus的变成一个小键盘,右击这个小键盘,选择Configure,会弹出下面的窗口:
首先点击右上方位置的
Update按钮来确保刚才安装的Rime输入法被正确识别。然后取消勾选右侧下方的
Only Show Current Language选项,因为Rime是中文输入法,如果你的系统语言是英文,不取消勾选会找不到Rime输入法。取消勾选后你就可以找到Rime输入法了,选中后点击向左的箭头把Rime加入到输入法列表中。再等待一会儿等Rime自己配置完成就可以点击任务栏里的输入法图标或者使用快捷组合键,选择
Rime输入法进行使用了:
-
oh-my-rime:
oh-my-rime的使用和配置方法与IBus下的使用方法类似。不同的是fcitx的配置文件一般在~/.local/share/fcitx5目录下。你可以通过以下命令下载oh-my-rime:1git clone https://github.com/Mintimate/oh-my-rime.git然后把文件夹命名为
rime放到~/.local/share/fcitx5目录下(如果里面已经有了rime文件夹,可以备份原来的再放过去)。重启或者注销后重新登录,
oh-my-rime就会生效。右击系统托盘里的输入法图标,就可以选择“薄荷拼音”作为输入方案了:
-
VS Code:完成上述配置后,大多数情况下都可以直接使用
Rime输入法。但VS Code中还是无法输入中文,网上有建议将下述内容加入到环境变量中:1 2 3GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx但是这样偶尔在启动进入桌面时有警告信息。我觉得一个更好的方法是在VS Code的快捷方式中加入参数
--enable-features=UseOzonePlatform,WaylandWindowDecorations '--ozone-platform=wayland %F'。具体方法是右击开始菜单的VS Code图标:
点击
Edit Application,在命令行参数里添加上面的参数:
这样再打开VS Code就可以用Rime输入法在里面输入中文了!
-
额外配置 同样地,
oh-my-rime还提供了很多可以配置的选项,你可以参照官方文档进行配置。我觉得默认配置就已经挺好用了,所以暂时没做额外的配置。 -
(可选)卸载IBus:首先需要卸载掉系统默认的
IBus输入法框架,可以使用以下命令:1sudo dnf remove ibus
通过以上步骤,就可以在Fedora 42系统中顺利安装和配置fcitx5中文输入法了。