某些发行版缺少fcitx5,或存在一些问题。这时候,可以用flatpak的fcitx5,也可以使用nix。但是nix的fcitx5不能开箱即用,需要一些调整。
1、安装fcitx5
nix-env -i fcitx5-with-addons
这个包包括了fcitx5-qt、fcitx5-gtk、fcitx5-configtools等,比单独安装更方便。
2、安装中文输入法
nix-env -i fcitx5-chinese-addons
如果需要日语输入法等,可以一并安装。
3、调整fcitx5
输入
which fcitx5
结果为
/nix/var/nix/profiles/default/bin/fcitx5
找到这个文件打开,原来是一个shell脚本,里面有设定$FCITX_ADDON_DIRS和$XDG_DATA_DIRS两个变量的路径。由于这里变量的路径没有包含fcitx5-chinese-addons的路径,因此现在运行fcitx5是找不到中文输入法的。
因此,需要在脚本开头加上两行:
FCITX_ADDON_DIRS='/nix/store/0jh1rvsqf8272xwc2nqlay5zv30k7702-fcitx5-chinese-addons-5.0.12/lib/fcitx5'
XDG_DATA_DIRS='/nix/store/0jh1rvsqf8272xwc2nqlay5zv30k7702-fcitx5-chinese-addons-5.0.12/share'
值得注意的是,这里的“乱码”是hash值,每次安装都不一样。因此上面两行文字需要去/nix/store下手动寻找fcitx5-chinese-addons的路径来确定。
4、调整Host OS
Host OS的应用想要使用输入法,就需要也安装im module。fcitx5兼容fcitx4、ibus、xim、wayland等多种前端。其中,xim和wayland在gnome下效果比较好,kde下可能无法使用(kde的wayland输入法协议和gnome很不同,难以hack进去)。Host OS按照需要安装即可,推荐ibus和fcitx、fcitx5。
调整环境变量:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
如果采用ibus、xim、wayland(限于gnome)前端,分别吧fcitx改为ibus、xim、wayland即可。
环境变量应该写到正确的文件中,这一点大家大概都知道,我就不说了。