Fcitx5 (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Fcitx5 是继 Fcitx 后的新一代输入法框架。

安装

安装 软件包 fcitx5

注意: fcitx5-im 包组提供了 fcitx5 本体、#配置工具、和必要的 #输入法模块 。为了方便起见,建议直接安装 fcitx5-im#输入法引擎
注意: fcitx5 仅提供基本框架,仅提供英文支持,如果要输入其他语言(例如中文),则需要 #输入法引擎
注意: 对于 GNOME 用户而言,还需要安装 gnome-shell-extension-kimpanel-gitAUR 以在右上角显示输入法的状态。[1] 当然,您也可以手动 安装扩展

输入法引擎

中文

日文

  • fcitx5-anthy 一种流行的日语输入引擎。但是,它的开发已经处于停滞期。
  • fcitx5-skk 一个日文片假输入法,基于 libskk
  • fcitx5-mozc Google 日文输入法的开源版本,基于 MozcAUR

其他语言

输入法模块

输入法模块为 Fcitx5 提供了额外功能,例如对 Qt、GTK 程序的输入支持,或带来一些额外特性。

提示: 一般情况下,只安装 fcitx5-qtfcitx5-gtk 就行了

使用

环境变量

欲在程序中正常启用 Fcitx5, 需设置以下环境变量,并重新登录:

~/.pam_environment
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE  DEFAULT=fcitx
XMODIFIERS    DEFAULT=\@im=fcitx
INPUT_METHOD  DEFAULT=fcitx
SDL_IM_MODULE DEFAULT=fcitx
GLFW_IM_MODULE DEFAULT=ibus

如果使用 en_US.UTF-8 时,遇到 GTK2 无法激活 fcitx5,可专门为该 GTK2 应用程序设置输入法为 xim,如

GTK_IM_MODULE=xim your_gtk2_application

请勿将GTK_IM_MODULE全局设置为 xim,因为它也会影响 GTK3 程序。XIM 有各种问题(比如输入法重启之后再无法输入),尽可能不要使用。

最后那行 SDL_IM_MODULE 是为了让一些使用特定版本 SDL2 库的游戏,比如 Dota2 能正常使用输入法。

开机启动

注意:
  • 如果您使用的桌面环境是兼容 XDG 的(例如 KDEGNOMEXfceLXDE等),则 无需 此步骤。
  • 如果使用i3awesome等窗口管理器,需要在其脚本中添加 Fcitx5 以实现自启动。例如,如果您使用 i3 或 sway ,可以在配置文件中添加exec --no-startup-id fcitx5 -d
  • 如果使用dwm,则需要添加 autostart 补丁。在 ~/.dwm/autostart.sh 中添加fcitx5 -d

想要 fcitx5 开机自启,执行

$ cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/

词库

对于 Fcitx5 的中文输入法, 目前在仓库里提供了数个词库:

注意: 手动下载的词典文件直接放到 ~/.local/share/fcitx5/pinyin/dictionaries 路径下即可。词典文件的后缀名应当为 .dict

自定义词库

一般而言,由于 fcitx5 支持 导入搜狗词库,因此很大程度上不需要自定义词库,但是 fcitx5 依然提供了相关工具。

原始词库文件是一个文本文件,其格式为: 汉字 拼音 频率

在得到原始词库文件后,调用 libime_pinyindict "词库文件.txt" "词库文件.dict" 即可。

自定义词库文件放置在 ~/.local/share/fcitx5/pinyin/dictionaries

注意: 以下内容或许能提供帮助:

配置

配置工具

fcitx5 的配置文件位于 ~/.config/fcitx5,尽管您可以使用文本编辑器编辑配置文件,但是使用 GUI 配置显然更方便。安装 fcitx5-configtool 软件包。

主题和外观

主题

仓库内的主题数量有限,如果需要更多主题,可以去 GitHub 发现更多主题。

然后前往 Fcitx5设置 -> 配置附加组件 -> 经典用户界面 -> 主题 设置主题。

注意: 如果您在 GNOME 环境下使用了 gnome-shell-extension-kimpanel-gitAUR,那么主题设置对于 Fcitx5 不起作用。[3]

设置单行模式

在拼音输入法(或者 Rime 输入法)的设置中,启用“ 在程序中显示预编辑文本 ”即可启用单行模式

故障处理

诊断问题

当你遇到任何 Fcitx 5 有关的问题,比如 Ctrl+Space 快捷键在有的程序中不能工作,首先应该用 fcitx5-diagnose 命令诊断问题的原因。 fcitx5-diagnose 会列出所有 Fcitx 5 正常运行所需的前提条件,从输出结果中通常可以找到问题的原因。

部分应用中 Fcitx 5 的单行默认无效

1. 如果是 Firefox 等 gtk 应用中单行模式不生效,请安装 fcitx5-gtk

2. 在 WPS 和 Sublime 中单行模式无效,这是 WPS 和 Sublime 自身的问题,而不是 fcitx5 的问题。[4]

WPS 无法正常呼出输入法

请参阅 WPS Office (简体中文)#Fcitx5 无法输入中文

IntelliJ 系列软件的 IDE 中输入框位置不正确

此问题的更本原因是 IDE 附带的 JBR 不正确,要处理此问题,需要:

1. 前往 https://github.com/RikudouPatrickstar/JetBrainsRuntime-for-Linux-x64/releases 下载 jbr 并解压到任意路径

2. 按照 此指导 更改 IDE 的 JBR

Emoji 在候选框中无法正常显示

1. 首先确保电脑上已经安装了带有 Emoji 的字体(例如 noto-fonts-emoji)。

2. 将字体设置为 Noto Sans CJK SC

3. 运行以下命令来 重启 Fcitx5

# kill `ps -A | grep fcitx5 | awk '{print $1}'` && fcitx5&

网易云音乐无法调出输入法

有两种方法:

RStudio 中无法调出输入法

运行以下命令:

$ strings /usr/lib/rstudio/lib/libQt5Core.so.5 | grep "Qt 5"

找出 Qt 库的版本,使用该版本重新编译 fcitx5-qt 中的 libfcitx5platforminputcontextplugin.so ,再放到 /usr/lib/rstudio/plugins/platforminputcontexts/ 目录中。

如果使用的是 rstudio-desktop-binAUR ,可直接安装 rstudio-fcitx5AUR

提示和技巧

如何查看选中字体的 Unicode 编码

  • 如果你需要查看文本编辑器中选中文字的 Unicode 编码,那么直接选中文字,然后使用快捷键 ctrl + alt + shift + u 可以查看选中文字的编码
  • 如果你需要查看非编辑区域(比如本 wiki)中文字的 Unicode 编码,那么需要首先将该段文字复制到剪贴板,然后点击任意一个可编辑区域(比如搜索框),然后使用快捷键 ctrl + alt + shift + u 可以查看剪贴板中文字的编码

通过 Fcitx5 输入特殊字符

要输入特殊符号,有两种方式:

为例:

将光标定位到任意一个输入框内,然后按下 Ctrl + Alt + Shift + U,然后输入 circle one,您将会看到多种形式的 。alpha, beta, sigma 等同理。

在 vim 中自动切换输入法

追加代码:[5]

~/.vimrc
autocmd InsertLeave * :silent !fcitx5-remote -c " 退出插入模式时禁用输入法
autocmd BufCreate *  :silent !fcitx5-remote -c " 创建 Buf 时禁用输入法
autocmd BufEnter *  :silent !fcitx5-remote -c " 进入 Buf 时禁用输入法
autocmd BufLeave *  :silent !fcitx5-remote -c " 离开 Buf 时禁用输入法

如果使用的是 neovim ,则追加上述代码到 ~/.config/nvim/init.vim

注意: 如果您在 vim.cmd 中添加此代码,可能需要将注释去掉

拼音输入法

注意: 以下功能只对 fcitx5-chinese-addons 中的拼音输入法有效,其他输入法请自行探索。

导入搜狗词库

  • 对于 KDE 用户来说,可以通过 设置 -> 区域设置 -> 输入法 -> 拼音 -> 词典 -> 导入 来导入搜狗词库
  • 对于使用 fcitx5-configtool 的用户来说,需要手动打开 “Fcitx5 配置” 这个软件,并在拼音输入法中手动配置。

既可以导入本地词库也可以在线浏览词库并自动导入

云拼音

在拼音输入法的设置页面,你可以启用云拼音。但是如果你需要更改云拼音默认的后端,则需要在 fcitx5 的全局设置里进行更改。提供的后端有 Google, Baidu, GoogleCN

笔画过滤

在设置的拼音输入法的“笔画过滤”后设置快捷键(默认为 `) 然后在输入文字后,按下快捷键,输入法的候选框将会出现 笔画过滤字样,可以对词语进行笔画过滤,具体规则为:h 横、s 竖、p 撇、n 捺、z 折

默认情况下,笔画过滤是对一个句子的第一个字进行筛选,但是使用以词定字可以在一个句子之间的不同字之间进行切换。

例如对句子“中华人民共和国”中的第三个字进行笔画筛选,你可以在启用笔画过滤后连续按两次 ]fcitx5 对其进行笔画过滤。

注意: 默认情况下,以词定字的快捷键为 [],该快捷键在拼音输入法的设置中可以查看

RIME/中州韻

提示: 所有更改皆需重新部署方可生效

导入词库

以导入词库fcitx5-pinyin-zhwiki-rimeAURfcitx5-pinyin-moegirl-rimeAUR为例.

提示: 将自定义词库放入~/.local/share/fcitx5/rime/亦可,文件名(文件名.dict.yaml)应与词库名统一(词库格式)

1.更改~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml文件(以luna_pinyin为例,其余输入方案修改方案名即可)

~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml
# 文件中“patch:”应只存在一个,若已存在只需粘贴后面的代码
# 此文件用于修改特定输入方案,把上方的luna_pinyin改为其它输入方案名即可完成对其它输入方案的修改
patch:
    "translator/dictionary": extended #词典名字可自定义,与下方文件名保持一致即可

2.新建~/.local/share/fcitx5/rime/extended.dict.yaml文件

提示: 导入自定义词库只需将词库名添加到“import_tables:”之后
~/.local/share/fcitx5/rime/extended.dict.yaml
# 以下禁用了默认词库同时不启用默认的“八股文”词库及词频系统,如果您不希望候选词中的出现繁体字、方框字的话
---
name: extended
version: "2021.02.19"
sort: by_weight
use_preset_vocabulary: false #是否启用默认的“八股文”词库及词频系统,如需启用请设为 true 。
import_tables:
  # - luna_pinyin #默认词库,如需启用请取消注释
  - zhwiki
  - moegirl
  # - 自定义词库名
...

模糊音设置

请根据需要注释(#)或删除不需要的模糊音,若需增加其它模糊音,请参考明月拼音模糊音定制模板

luna_pinyin.custom.yaml文件不存在

~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml
patch:
    "speller/algebra":
        - derive/^([zcs])h/$1/ #zh,ch,sh->z,c,s
        - derive/^([zcs])([^h])/$1h$2/ #z,c,s->zh,ch,sh
        - derive/^n/l #n->l
        - derive/^l/n #l->n
        - derive/([ei])n$/$1ng/  # en -> eng, in -> ing
        - derive/([ei])ng$/$1n/ # eng->en, ing -> in
        - abbrev/^([a-z]).+$/$1/ #简拼支持
        - abbrev/^([zcs]h).+$/$1/ #模糊音的简拼支持
        delimiter: " '" #分隔符

如果文件存在,则粘贴patch:以下的部分到文件末尾(luna_pinyin.custom.yaml中有且只有一个patch:)

特殊符号

注意: Fcitx5 已经内置了对特殊符号的支持。参阅#通过 Fcitx5 输入特殊字符

导入rime-dict项目中symbols.dict.yaml词库即可在拼音中输入希腊字母、部分数学符号及Emoji表情

示例:

希腊字母:输入alpha即可输出α

数学符号:输入jifen即可输出

特殊符号:输入cha可输出✕,✖

序号:输入qi可输出Ⅶ,⑦

Emoji表情:输入haha可输出😃,😆

加载 librime-lua 插件

若想加载 librime-lua 插件,须在 fcitx 配置工具的 Rime 输入法设置中添加 lua 模块。