fedora 上安装 fcitx5 rime

现在 fcitx 已经升级到了 fcitx5, 本来用着 fcitx4 挺好,也没有想着升级,在折腾 fcitx.vim 的时候发现 fcitx 居然升级了,
使得我的 vim 插件无法正常工作了,一顿折腾,本来以为很简单没想到进了个大坑 。
主要是不愿意放弃我的一万多行的 rime 用户词库,多年的积累了,不过 Linux 用户不就是老折腾吗, 唉。

fcitx5-rime 的默认的配置目录已经变为 ~/.local/share/fcitx5/rime, fcitx4 默认的配置目录是 ~/.config/fcitx/rime

安装 fcitx5 和 fcitx5 rime

1
2
sudo dnf install -y fcitx5 fcitx5-autostart fcitx5-chinese-addons fcitx5-configtool fcitx5-gtk fcitx5-qt
sudo dnf install -y fcitx5-rime

Fedora dnf 已经默认有 fcitx5-rime 的安装包了,不用自己重新编译了,非常不错。 fcitx5-chinese-addons
为 fcitx5 自己默认带的中文输入法,这些和 rime 没有什么关系,网络上有人说, fcitx 的中文输入较以前有较大改进。
fcitx5-autostart 用于自启动。后面发现系统自带的启动环境变量好像设置的有问题,不安装其实也没有什么问题,
自己手动执行 fcitx5 -d 即可。

设置正确的环境变量

修改 ~/.xprofile~/.zshrc/etc/profile 等文件

1
2
3
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS="@im=fcitx5"

编译 fcitx5-qt5

为了使我们自己编译的 vnote 可以正常使用 fcitx5, 需要编译 fcitx5-qt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
git clone git@github.com:fcitx/fcitx5-qt.git

cat << EOF > build_linux.sh
QTDIR="/home/henices/Qt5.12.9/5.12.9/gcc_64/"
PATH="$QTDIR/bin:$PATH"
LDFLAGS=-L$QTDIR/lib
CPPFLAGS=-I$QTDIR/include

rm -rf build
mkdir -p build
cd build
cmake ..
make -j8
EOF

bash build_linux.sh

编译完成后将生成的 so 文件 copy 到 qt 的插件目录:

1
2
cd build
cp ./qt5/platforminputcontext/libfcitx5platforminputcontextplugin.so /home/henices/Qt5.12.9/5.12.9/gcc_64/plugins/platforminputcontexts/

配置中文环境

1
2
3
4
sudo vim /etc/locale.conf

export LANG="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"

安装 rime 词库

rime 现在已经使用 plum 管理词库,如果需要安装双拼输入法的,可以执行下面的命令:

1
2
curl -fsSL https://git.io/rime-install | bash
rime_frontend=fcitx5-rime bash rime-install double_pinyin

rime 为了保证输入速度,词库很小,为了能够自动显示更多的词组,就需要使用拓展词库。

1
2
git clone https://github.com/rime-aca/dictionaries.git
cp dictionaries/luna_pinyin.dict/* ~/.local/share/fcitx5/rime/

安装了上面的拓展词库后,输入特殊符号的能力还是比较弱,需要把 symbols.yaml 也给加进来。

https://github.com/rime/rime-prelude 提供了我们所需要的 symbols.yaml 和 default.yaml,
可以使用 東風破 安裝: rime_frontend=fcitx5-rime bash rime-install prelude

由于我们使用的是自然码双拼,需要修改的文件为 double_pinyin.custom.yaml

1
2
3
4
5
patch:
# 載入朙月拼音擴充詞庫
"translator/dictionary": luna_pinyin.extended
"punctuator/import_preset": symbols
"recognizer/patterns/punct": "^/([A-Z|a-z]*|[0-9]|10)$"

设置完成后,要重新启动输入法,比如要输入 ☆ ,输入 /xh 即可

将用户词库导入 rime

rime_dict_manager -i luna_pinyin luna_pinyin.userdb.txt

这一步很关键啊,多年的积累不能浪费了。

配置 fcitx5 皮肤

fcitx5 默认的皮肤不太好看,所以下载更新了皮肤,这款简约风格的皮肤非常符合老夫的胃口。

1
2
git clone https://github.com/thep0y/fcitx5-themes.git
cp spring ~/.local/share/fcitx5/themes -r

修改配置文件 ~/.config/fcitx5/conf/classicui.conf

1
2
3
4
5
6
7
8
9
10
11
# 垂直候选列表
Vertical Candidate List=False

# 按屏幕 DPI 使用
PerScreenDPI=True

# Font (设置成你喜欢的字体)
Font="Smartisan Compact CNS 13"

# 主题(这里要改成你想要使用的主题名,主题名就在下面)
Theme=spring

另外还有一款 fcitx5 皮肤相对流行:https://github.com/hosxy/Fcitx5-Material-Color

切换皮肤的方法是,点击鼠标右键点击 配置 -> 附加组件 -> 经典用户界面 -> 点击右边图标 -> 选择皮肤

设置 fcitx rime 单行模式

如果要将输入法设置为单行模式,需要修改配置文件 ~/.config/fcitx5/conf/rime.conf

1
PreeditInApplication=True

或者按快捷键 ctrl + alt + p, 这个快捷键可以来回切换很方便,单行还是双行就因人而异了,我个人觉得单行好点。

让 fcitx5 正确显示菜单

要做这个步骤是因为 rime 有 「部署」、「同步」这几个操作按钮,如果不正确配置的话在 fcitx5 上没法正常显示。
fcitx5 在任务上有个托盘图标,点击右键就可以看到这些菜单。

要让 fcitx 正确显示菜单,关键在于让 rime 输入法默认处于激活状态,根据 fcitx5 配置的提示第一个输入法为非激活状态。

  • (1) 将第一个输入法设置为 键盘-英语 (美国),第二个输入法设置为 中州韵
  • (2) 在全局设置中,勾上默认状态为激活,共享输入状态设置为 程序

fcitx.vim

这个章节是写给 linux vim 用户看的,没有此需求的可以直接跳过这段。

vim 确实是程序编辑的利器,但是在用vim 写中文文档的时候,有一个痛点,你在用 fcitx 写中文的时候想保存文档,
vim 必须切换到 normal 模式才能输入保存的命令 :w,进入normal 模式的方法是连续按两下 ESC,好了现在你应该
输入命令了,但是你没法输入你现在还在打中文呢,没有办法你必须先切换到英文输入法,然后才能正确地输入 :w 痛苦啊。

fcitx.vim 就是为解决这个痛点而生的插件,个人觉得这是vim 必装的几个插件之一。fcitx.vim 的github 仓库
地址为:https://github.com/lilydjwg/fcitx.vim

值得一提的是这个仓库有两个分支,fcitx4 分支 和 fcitx5 分支,使用的时候一定要分清楚,这两个分支如果
使用错了,就没法正常使用 fcitx.vim 插件了。fcitx4 和 fcitx5 dbus 对象名字有变化,导致代码通用性不好。
现在默认分支为 fcitx5,如果你使用 fcitx4 可能直接 git clone 下来就会发现插件用不了,我也是因为这个
原因才发现 fcitx 居然更新了。

参考资料