Archlinux + Gnome 中文输入法解决方案:Fcitx5 + Rime Ice 雾凇拼音
4/16/2023
本文将为你介绍如何在 Archlinux + Gnome 系统中配置中文输入法,使用 Fcitx5 和 Rime Ice 雾凇拼音。同时也会介绍一些细节处理以及外观客制化。
1 安装 Fcitx 5
首先需要安装 Fcitx 5 输入法框架:
yay -S fcitx5-im
1.1 配置环境变量
依据 ArchWiki 的指导,我们需要将以下环境变量添加到 /etc/environment
中:
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
2 安装 Rime
安装 Rime 输入法:
yay -S fcitx5-rime
3 安装雾凇拼音
安装 Rime 的中文输入方案雾凇拼音:
yay -S rime-ice-git
3.1 配置以补丁模式启动
依据 AUR 仓库的指导,将以下内容写入 $HOME/.local/share/fcitx5/rime/default.custom.yaml
:
patch:
# 仅使用「雾凇拼音」的默认配置,配置此行即可
__include: rime_ice_suggestion:/
# 以下可根据自己所需进行自定义,仅做参考。
# 仅针对「雾凇输入法」的定制条目,请在 rime_ice.custom.yaml 中配置
__patch:
# 以词定字(上屏当前词组的第一个或最后一个字)
key_binder/+:
select_first_character: "bracketleft" # 即 [
select_last_character: "bracketright" # 即 ]
4 细节处理
4.1 候选词数量
本配置下的候选词数量由 Rime 控制,而非 Ficitx。应在 Rime 的配置中增加 menu/page_size
项目,例如:
patch:
"menu/page_size": 9
# 仅使用「雾凇拼音」的默认配置,配置此行即可
__include: rime_ice_suggestion:/
# 以下可根据自己所需进行自定义,仅做参考。
# 仅针对「雾凇输入法」的定制条目,请在 rime_ice.custom.yaml 中配置
__patch:
# 以词定字(上屏当前词组的第一个或最后一个字)
key_binder/+:
select_first_character: "bracketleft" # 即 [
select_last_character: "bracketright" # 即 ]
4.2 客制化外观
4.2.1 停用 Gnome 插件
kimpanel (Input Method Panel) 是 Gnome 中常用的输入法统一接口插件,如果你希望用 Fcitx 客制化外观,首先应当关闭这个插件。
4.2.2 启用外观
以我的皮肤配置为例,你可以安装一个外观配置包:
yay -S fcitx5-skin-materia-yanli
然后在 Fcitx 的设置中选取这个外观配置即可。
4.2.3 Emoji 字体配置
客制化外观最主要的目的其实是为了配置一个能够显示 Emoji 的字体,因为多数字体本身并没有 Emoji 的支持,也就无法显示 Emoji 图标。而 Emoji 是雾凇拼音中很常见的候选词。
为实现这个目的,我们将使用字体 alias 来客制化无衬线字体 sans serif(同样的方法也适用于配置其他字体)
我的配置以思源黑体和 Noto Color Emoji 为例,安装对应的字体:
yay -S adobe-source-han-sans-cn-fonts noto-fonts-emoji
然后编辑字体配置 /etc/fonts/local.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Source Han Sans CN</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
<alias>
<family>sans</family>
<prefer><family>sans-serif</family></prefer>
</alias>
</fontconfig>
这样,字体 alias sans-serif 就会指向 Source Han Sans CN,未找到的字符则 fallback 到 Noto Color Emoji,而 sans 则指向 sans-serif。
可以使用 fc-match
检查一下:
❯ fc-match sans
SourceHanSansCN-Regular.otf: "Source Han Sans CN" "Regular"
最后确认 Fcitx 的设置中使用 Sans Serif 字体即可。