Fcitx5
Fcitx5 是一个输入法框架,它具有轻量级内核,并通过 addon 提供各种语言和输入法的支持。Fcitx5 接替 Fcitx。
安装[编辑 | 编辑源代码]
fcitx5-im包组 包组提供 fcitx5包 本体、#配置工具和#输入法模块。
中文[编辑 | 编辑源代码]
- fcitx5-chinese-addons包 包含与中文相关的 addon,例如拼音、双拼和五笔。
- fcitx5-chewing包 是流行的繁体中文注音输入引擎,它基于 libchewing包。
- fcitx5-rime包 使用 Rime 引擎。
- fcitx5-mcbopomofo-gitAUR McBopomofo 支持。
- rime-flypyAUR 小鹤音形支持。
日文[编辑 | 编辑源代码]
- fcitx5-anthy包 是流行的日文输入引擎。但是,它已不再受到积极开发。
- fcitx5-kkc包 是日文假名输入引擎,它基于 libkkc包。
- fcitx5-mozc包 基于 Mozc(Google 日文输入法的开源版本)。
- fcitx5-skk包 是日文假名输入引擎,它基于 libskk包。
其他语言[编辑 | 编辑源代码]
- fcitx5-hangul包 用于输入韩文,基于 libhangul包。
- fcitx5-unikey包 或 fcitx5-bamboo-gitAUR 可用于输入越南语字符。
- fcitx5-m17n包 或 fcitx5-table-other包 可用于各种语言。使用后者输入 IPA(X-SAMPA)。
输入法模块[编辑 | 编辑源代码]
要获取更好的体验,你可以根据需要安装以下模块。即使不安装,输入法在大部分的应用程序中仍可能正常工作,但你可能会遇到输入法挂起、预览窗口位置错误或没有预览的问题。
- 对于 Qt 程序,安装 fcitx5-qt包。
- 对于 GTK 程序,安装 fcitx5-gtk包。
- 对于日期和时间支持,安装 fcitx5-lua包。
卸载[编辑 | 编辑源代码]
使用以下命令卸载fcitx5相关组件
sudo pacman -Rns $(pacman -Qsq fcitx5)
配置[编辑 | 编辑源代码]
X11(以及 Xwayland)和 Wayland 环境的配置方式并不相同。
Fcitx5 支持多种与要使用输入法的应用程序进行通信的方式:
- Wayland 输入法协议
- input-method-v1: 用于 KDE 和 Wayfire 等 Wayland 混成器。
- input-method-v2: 用于 Sway 等 Wayland 混成器。
- GNOME Shell: 用于与 GNOME Wayland 桌面环境。它是通过 D-Bus 进行的。
- 输入法模块。这些通常用于 X11 环境,或者尚未良好支持 Wayland 输入法协议的应用程序。它是通过 D-Bus 进行的。需要额外注意的是,当在原生 Wayland 模式下使用输入法模块时,为了将输入法窗口放置到正确的位置,输入法窗口是由使用输入法的应用程序自己绘制的,因此不同的应用程序的状况不太一样。比如 GTK3 的输入法窗口可能会闪烁,Qt 的输入法窗口可能无法显示部分 GTK 能显示的文字。
- XIM: 用于其它 X11 应用程序。有一些缺点,建议尽量不用。
X11[编辑 | 编辑源代码]
X11 下,输入法可使用 GTK 和 Qt 的输入法模块通过 D-Bus 与输入法通信。某些非 GTK 和 Qt 的应用程序(或者框架)也实现了 fcitx 或者 ibus 的 D-Bus 通信协议。其它程序可以通过 X11 的 XIM 协议进行通信。
为了告诉程序使用 fcitx5 输入法,需要设置相应的环境变量。编辑 /etc/environment
并添加以下几行,然后重新登录[1]:
GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx SDL_IM_MODULE=fcitx GLFW_IM_MODULE=ibus
如果使用 en_US.UTF-8 时,遇到 GTK2 无法激活 fcitx5,可专门为该 GTK2 应用程序设置输入法为 xim,如
$ env GTK_IM_MODULE=xim <your_gtk2_application>
请勿将 GTK_IM_MODULE
全局设置为 xim,因为它也会影响 GTK3 程序。XIM 有各种问题(比如输入法重启之后再无法输入),尽可能不要使用。
- SDL_IM_MODULE 是为了让一些使用特定版本 SDL2 库的游戏能正常使用输入法。
- GLFW_IM_MODULE 是为了让 kitty 启用输入法支持。此环境变量的值为ibus为了保证所有的kitty均可启用该功能,在基于x11的桌面环境和窗口管理器中此属性设置为fcitx5或fcitx会导致无法启用输入法设置,wayland桌面不受此影响。
- 按 fcitx5 上游推荐,环境变量的值设置为
fcitx
。部分并非由 Arch 从源码编译打包的应用程序因兼容性的需求而需要将之设置为fcitx5
。
Wayland[编辑 | 编辑源代码]
不同 Wayland 混成器的情况有所不同。
KDE Wayland[编辑 | 编辑源代码]
根据 Fcitx 5 Wiki,Plasma 5.27+ 支持 Wayland text-input-v1、text-input-v2 和 text-input-v3, 分别被 Chromium、Qt 和 GTK 使用)。
要使用 Wayland 输入法协议,首先退出正在运行的 Fcitx 5 进程,前往系统设置 > 输入设备 > 虚拟键盘,选择 Fcitx 5。
对于 Xwayland 程序, 设置 XMODIFIERS
环境变量。
GTK_IM_MODULE
和 QT_IM_MODULE
.GNOME Wayland[编辑 | 编辑源代码]
安装 gnome-shell-extension-kimpanel-gitAUR 并启用 Kimpanel GNOME Shell 拓展。
设置环境变量 XMODIFIERS
QT_IM_MODULE
, 注销并重新登录。
根据 Fcitx 5 Wiki, GNOME 支持 Wayland text-input-v3 协议,因此 GTK 应用的输入法支持应当开箱即用, QT 与 Chromium 因不支持 text-input-v3 需要添加环境变量.
根据 Fcitx5 Wiki, 在GNOME Wayland 环境中的fcitx,可能出现弹出候选窗口无法在 gnome-shell UI 上显示。一个解决方案是使用Kimpanel扩展,此为扩展连接。
Wayfire[编辑 | 编辑源代码]
启用 input-method-v1
插件。设置 XMODIFIERS
和 QT_IM_MODULE
环境变量。然后运行 Fcitx5 即可。
Wayfire 支持 text-input-v1,但是不会显示输入法窗口[2]。所以需要设置 QT_IM_MODULE
让 Qt 使用输入法模块以避免使用到 text-input-v1。运行于原生 Wayland 模式下的 Chromium 会用到。
Chromium[编辑 | 编辑源代码]
Xwayland[编辑 | 编辑源代码]
Xwayland 的情况和 X11 上相同,但是为了不影响 Wayland 部分,设置方式有所不同。
对于运行于 Xwayland GTK 程序,你可以单独为软件设置环境变量GTK_IM_MODULE=fcitx
,或者在~/.config/gtk-3.0/settings.ini
中添加:
[Settings]
gtk-im-module = fcitx
基于 Electron 开发的软件,若无法使用原生 Wayland 模式运行,则需要进行以上设置。如果使用到 XIM,则会出现输入过程中部分编码上屏的现象,俗称「漏字」。
随桌面环境自动启动[编辑 | 编辑源代码]
想要 fcitx5包 开机自启,执行
$ cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/
如果使用 xinit 启动,则可以在~/.xinitrc
中,在exec
前添加fcitx5 &
词库[编辑 | 编辑源代码]
对于 Fcitx5 的中文输入法, 目前在仓库里提供了数个词库:
- fcitx5-pinyin-zhwiki包:felixonmars 根据中文维基百科创建的词库。适用于拼音输入法
- fcitx5-pinyin-sougouAUR:适用于拼音输入法的搜狗词库
- rime-pinyin-zhwiki包:适用于 Rime 输入法的词库
- fcitx5-pinyin-moegirl-rimeAUR:适用于 Rime 输入法的词库
- cedict:从 cedict辞典导出的词库。
- fcitx5-pinyin-moegirlAUR: outloudvi 根据萌娘百科创建的词库
- 词典文件存在的目录为 ~/.local/share/fcitx5/pinyin/dictionaries
- .dict类型的词典文件可以直接手动移动到词典目录,使用搜狗细胞词库下载的.scel文件无法被fcitx识别
- 可在fcitx5-configtool中选在导入来自搜狗细胞词库文件,或使用scel2org5指令手动转换
自定义词库[编辑 | 编辑源代码]
一般而言,由于 fcitx5包 支持导入搜狗词库,因此很大程度上不需要自定义词库,但是 fcitx5包 依然提供了相关工具。
- 安装 libime包
原始词库文件是一个文本文件,其格式为: 汉字 拼音 频率
在得到原始词库文件后,调用 libime_pinyindict "词库文件.txt" "词库文件.dict"
即可。
自定义词库文件放置在 ~/.local/share/fcitx5/pinyin/dictionaries
配置工具[编辑 | 编辑源代码]
fcitx5包 的配置文件位于 ~/.config/fcitx5
,尽管您可以使用文本编辑器编辑配置文件,但是使用 GUI 配置显然更方便。安装 fcitx5-configtool包 软件包并运行 fcitx5-configtool
,或者从输入法托盘的菜单里选择「配置」。
KDE 用户请安装 fcitx5-configtool包 后在 KDE 的「设置」程序里找到并设置。
主题和外观[编辑 | 编辑源代码]
主题[编辑 | 编辑源代码]
仓库内的主题数量有限,如果需要更多主题,可以去 GitHub 发现更多主题。
- fcitx5-breeze包:提供了与KDE默认的Breeze主题匹配的外观。
- fcitx5-nord包 :Nord颜色的主题
- fcitx5-material-color包:提供了类似微软拼音的外观。
- fcitx5-solarizedAUR:Solarized颜色主题
- fcitx5-skin-fluentdark-gitAUR:具有模糊效果和阴影的 Fluent-Design 深色主题
然后前往 Fcitx5设置 -> 配置附加组件 -> 经典用户界面 -> 主题
设置主题。
设置单行模式[编辑 | 编辑源代码]
在拼音输入法(或者 Rime 输入法)的设置中,启用“在程序中显示预编辑文本”即可启用单行模式
故障处理[编辑 | 编辑源代码]
诊断问题[编辑 | 编辑源代码]
当你遇到任何 Fcitx 5 有关的问题,比如 Ctrl+Space 快捷键在有的程序中不能工作,首先应该用 fcitx5-diagnose
命令诊断问题的原因。
fcitx5-diagnose
会列出所有 Fcitx 5 正常运行所需的前提条件,从输出结果中通常可以找到问题的原因。
部分应用中 Fcitx 5 的单行默认无效[编辑 | 编辑源代码]
1. 如果是 Firefox 等 gtk 应用中单行模式不生效,请安装 fcitx5-gtk包
2. 在 WPS 和 Sublime 中单行模式无效,这是 WPS 和 Sublime 自身的问题,而不是 fcitx5包 的问题。[3]
WPS 无法正常呼出输入法[编辑 | 编辑源代码]
emoji 在候选框中显示为空白[编辑 | 编辑源代码]
首先确保电脑上已经安装了带有 Emoji 的字体(例如 noto-fonts-emoji包)。然后对该 emoji 字体禁用反锯齿。编辑 fontconfig 的配置文件并加入:
<match target="font">
<test name="family" qual="first">
<string>Noto Color Emoji</string>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
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 。
在 Steam 和 Dota2 中无法使用[编辑 | 编辑源代码]
事实上,Fcitx5 能够在 Steam 大屏模式和 Dota2 中使用。但是需要使用 Ctrl + Space 激活输入法而不是 Ctrl + Shift [4]
目前最新的 steam Beta 版本已经支持 fcitx5 输入,如需使用 fcitx5 ,“设置” -> “界面” -> “参与客户端测试” -> “Steam Beta Update”,等待 steam 重启更新即可。但是fcitx5 输入支持要求电脑语言环境为 LANG=zh_CN.UTF-8
。如果本身电脑的语言环境不是中文,则需要在 steam.desktop
中需要添加这个环境变量,例如Exec=env LANG=zh_CN.UTF-8 /usr/bin/steam-runtime %U -forcedesktopscaling 1.5 --gtk-version=4
输入法窗口不显示[编辑 | 编辑源代码]
Sway[编辑 | 编辑源代码]
sway 已经合并了实现 text-input-v3 协议的分支,但是仍然没有完全实现 input-method-v2 协议,因此仍然无法显示弹出窗口。目前有一个开启的拉取请求可以修复此问题。可以从 AUR 安装 sway-imAUR。
GNOME[编辑 | 编辑源代码]
Gnome 可以选择安装 kimpanel 插件。
在 Wine 中无法使用输入法[编辑 | 编辑源代码]
对于运行于 Xorg 或者 Xwayland 下的 Wine,记得在环境变量中加入
XMODIFIERS=@im=fcitx
运行于 Wayland 下的 Wine 尚无法使用输入法。
提示和技巧[编辑 | 编辑源代码]
查看选中字符的 Unicode 编码[编辑 | 编辑源代码]
- 如果你需要查看文本编辑器中选中文字的 Unicode 编码,那么直接选中文字,然后使用快捷键
ctrl + alt + shift + u
可以查看选中文字的编码
- 如果你需要查看非编辑区域(比如本 wiki)中文字的 Unicode 编码,那么需要首先将该段文字复制到剪贴板,然后点击任意一个可编辑区域(比如搜索框),然后使用快捷键
ctrl + alt + shift + u
可以查看剪贴板中文字的编码
通过 Fcitx5 输入特殊字符[编辑 | 编辑源代码]
要输入特殊符号,有两种方式:
以 ①
为例:
将光标定位到任意一个输入框内,然后按下 Ctrl + Alt + Shift + U
,然后输入 circle one
,您将会看到多种形式的 ①
。alpha, beta, sigma 等同理。
在 vim 中自动切换输入法[编辑 | 编辑源代码]
推荐使用 fcitx.vim 插件。此插件会为不同缓冲区保持各自的插入模式输入法状态。
简单的方案,可以向 ~/.vimrc
追加代码:[3][4]
let fcitx5state=system("fcitx5-remote")
" 退出插入模式时禁用输入法,并保存状态
autocmd InsertLeave * :silent let fcitx5state=system("fcitx5-remote")[0] | silent !fcitx5-remote -c
" 2 表示之前状态打开了输入法,则进入插入模式时启动输入法
autocmd InsertEnter * :silent if fcitx5state == 2 | call system("fcitx5-remote -o") | endif
如果使用的是 neovim包 ,则追加上述代码到 ~/.config/nvim/init.vim
。
拼音输入法[编辑 | 编辑源代码]
导入搜狗词库[编辑 | 编辑源代码]
- 对于 KDE 用户来说,可以通过
设置 -> 区域设置 -> 输入法 -> 拼音 -> 词典 -> 导入
来导入搜狗词库
- 对于使用 fcitx5-configtool包 的用户来说,需要手动打开 “Fcitx5 配置” 这个软件,并在拼音输入法中手动配置。
既可以导入本地词库也可以在线浏览词库并自动导入
云拼音[编辑 | 编辑源代码]
在拼音输入法的设置页面,你可以启用云拼音。但是如果你需要更改云拼音默认的后端,则需要在 fcitx5包 的全局设置里进行更改。提供的后端有 Google
, Baidu
, GoogleCN
笔画过滤[编辑 | 编辑源代码]
在设置的拼音输入法的“笔画过滤”后设置快捷键(默认为 `
)
然后在输入文字后,按下快捷键,输入法的候选框将会出现笔画过滤字样,可以对词语进行笔画过滤,具体规则为:h 横、s 竖、p 撇、n 捺、z 折
默认情况下,笔画过滤是对一个句子的第一个字进行筛选,但是使用以词定字可以在一个句子之间的不同字之间进行切换。
例如对句子“中华人民共和国”中的第三个字进行笔画筛选,你可以在启用笔画过滤后连续按两次 ]
让 fcitx5包 对其进行笔画过滤。
[
和 ]
,该快捷键在拼音输入法的设置中可以查看将输入错误的单词从输入历史中删除[编辑 | 编辑源代码]
输入过程中有可能因为误操作写入错误单词, 此时可以通过重新输入错误单词拼音 -> 使用忘记词汇快捷键(默认为 Ctrl + 7) -> 选择错误单词的对应数字
删除.
快捷键可以由Fcitx 配置 > "附加组件"标签页 > "输入法"部分 > "拼音"齿轮图标 > "忘记词汇" 快捷键
指定.
输入自定义时间[编辑 | 编辑源代码]
在按照前文安装 fcitx5-lua包之后, 在输入;
进入快速输入模式后可使用如下指令:
;fh
可输入特殊符号;sj
可输入当前时间, 格式默认提供3种: [15:52],[15时52分],[十五时五十三分];如果输入;sj
后按照时:分
的格式输入,可以格式化指定时间。;rq
可输入当前日期, 格式默认提供3种: [2023-07-21],[2023年7月21日],[二〇二三年七月二十一日];如果输入;rq
后按照年-月-日
的格式输入,可以格式化指定日期。
可通过修改pinyin.lua
甚至imeapi.lua
脚本扩展功能(注意备份).[5]
RIME/中州韻[编辑 | 编辑源代码]
导入词库[编辑 | 编辑源代码]
以导入词库fcitx5-pinyin-zhwiki-rimeAUR和fcitx5-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
文件
~/.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:
)
特殊符号[编辑 | 编辑源代码]
导入rime-dict项目中symbols.dict.yaml
词库即可在拼音中输入希腊字母、部分数学符号及Emoji表情
示例:
希腊字母:输入alpha
即可输出α
数学符号:输入jifen
即可输出∫
特殊符号:输入cha
可输出✕,✖
序号:输入qi
可输出Ⅶ,⑦
Emoji表情:输入haha
可输出😃,😆
加载 librime-lua 插件[编辑 | 编辑源代码]
若想加载 librime-lua 插件,须在 fcitx 配置工具的 Rime 输入法设置中添加 lua
模块。