Fcitx5

来自 Arch Linux 中文维基

Fcitx5 是一个输入法框架,它具有轻量级内核,并通过 addon 提供额外的语言支持。Fcitx5 接替 Fcitx

安装[编辑 | 编辑源代码]

安装 fcitx5 软件包。

fcitx5-im包组 包组提供 fcitx5 本体、#配置工具和必要的#输入法模块

注意: fcitx5 仅提供基本框架,且仅支持英文。如果要输入其他语言(例如中文或日文),则需要安装输入法引擎(IME)。

中文[编辑 | 编辑源代码]

日文[编辑 | 编辑源代码]

  • fcitx5-anthy 是流行的日文输入引擎。但是,它已不再受到积极开发。
  • fcitx5-kkc 是日文假名输入引擎,它基于 libkkc
  • fcitx5-mozc 基于 Mozc(Google 日文输入法的开源版本)。
  • fcitx5-skk 是日文假名输入引擎,它基于 libskk

其他语言[编辑 | 编辑源代码]

输入法模块[编辑 | 编辑源代码]

要获取更好的体验,你可以根据需要安装以下模块。即使不安装,输入法在大部分的应用程序中仍可能正常工作,但你可能会遇到输入法挂起、预览窗口位置错误或没有预览的问题。

提示:通常,只需安装 fcitx5-qtfcitx5-gtk 就足够了。

使用[编辑 | 编辑源代码]

集成[编辑 | 编辑源代码]

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
INPUT_METHOD=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 从源码编译打包的应用程序(如从 Telegram 官方网站下载的 telegram-desktop)因兼容性的需求而需要将之设置为fcitx5
  • 当配置GTK_IM_MODULE项后,fcitx在启动后可能弹出信息“Wayland诊断 检测到设置了GTK_IM_MODULE,并且Wayland输入法前端可以正常工作。推荐取消设置 GTK_IM_MODULE 以使用输入法前端。 ...”但在Wayland下,删除此属性可能会导致输入时产生漏字的情况。

KDE Wayland[编辑 | 编辑源代码]

根据 Fcitx 5 Wiki, Plasma 5.27+ 支持 Wayland 输入法协议第 1-3 版 (text-input-v1, text-input-v2 和 text-input-v3, 分别被 Chromium, Qt 和 GTK 使用).

要使用 Wayland 输入法协议, 首先退出正在运行的 Fcitx 5 进程, 前往 系统设置 > 输入设备 > 虚拟键盘, 选择 Fcitx 5.

对于 XWayland 程序, 设置 XMODIFIERS 环境变量.

警告: 勿加 GTK_IM_MODULEQT_IM_MODULE.

GNOME Wayland[编辑 | 编辑源代码]

安装 gnome-shell-extension-kimpanel-gitAUR 并启用 Kimpanel GNOME Shell 拓展.

设置环境变量 XMODIFIERS QT_IM_MODULE, 注销并重新登录.

根据 Fcitx 5 Wiki, GNOME 支持 Wayland 输入法协议第 3 版 (text-input-v3), 因此 GTK 应用的输入法支持应当开箱即用, QT 与 Chromium 因不支持 text-input-v3 需要添加环境变量.

根据 Fcitx5 Wiki, 在Gnome wayland环境中的fcitx, 可能出现弹出候选窗口无法在 gnome-shell UI 上显示。一个解决方案是使用Kimpanel扩展,此为扩展连接

Chromium[编辑 | 编辑源代码]

参阅 Chromium#原生Wayland上运行.

随桌面环境自动启动[编辑 | 编辑源代码]

注意:
  • 如果您使用的桌面环境是兼容 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/

如果使用 xinit 启动,则可以在~/.xinitrc中,在exec前添加fcitx5 &

词库[编辑 | 编辑源代码]

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

注意:
  • 词典文件存在的目录为 ~/.local/share/fcitx5/pinyin/dictionaries
  • .dict类型的词典文件可以直接手动移动到词典目录,使用搜狗细胞词库下载的.scel文件无法被fcitx识别
  • 可在fcitx5-configtool中选在导入来自搜狗细胞词库文件,或使用scel2org5指令手动转换

自定义词库[编辑 | 编辑源代码]

一般而言,由于 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 不起作用。[2]

设置单行模式[编辑 | 编辑源代码]

在拼音输入法(或者 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 无法正常呼出输入法[编辑 | 编辑源代码]

请参阅 WPS Office#Fcitx5 无法输入中文

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

在 Steam 和 Dota2 中无法使用[编辑 | 编辑源代码]

事实上,Fcitx5 能够在 Steam 大屏模式和 Dota2 中使用。但是需要使用 Ctrl + Space 激活输入法而不是 Ctrl + Shift [4]

目前最新的 steam Beta 版本已经支持 fcitx5 输入,如需使用 fcitx5 ,“设置” -> “界面” -> “参与客户端测试” -> “Steam Beta Update”,等待 steam 重启更新即可。

使用 Wayland 输入法协议的软件无法获取Wayland Popup窗口(Kde && Sway && Gnome)[编辑 | 编辑源代码]

指使用 Wayland 输入法协议的软件,比如 wezterm 、gtk 软件(如果环境变量指定为GTK_IM_MODULE=wayland)。这些软件如果没有进行设置,到今天为止,你得到的输入法体验是看不见Popup窗口,但是可以盲输入是可以的,因为很多wm没有完全实现input-method-v2协议。

关于qt软件,gtk软件对于wayland支持,根据fcitx5开发者所说

Qt 有 text-input-v2 支持,你可以通过设置 QT_IM_MODULE 为空来使用它,但它有一些关于预编辑的小问题。 此外,对于当前版本的 wayland 输入法协议,wayland 只能有一个全局输入上下文(具体请参考原始文章), 所以现在如果你想使用 Fcitx 5 支持的“per-application”输入状态可能是个问题。但是使用 Qt 的文本输入协议有一个好处,就是输入窗口在视觉上不会闪烁。
Gtk 有 text-input-v3 支持,但它的预编辑样式很差,粗体字体突出显示。此外,其surrounding text支持实现的很差。所以现在,如果您想拥有所有 Fcitx 功能,使用 GTK_IM_MODULE=fcitx 可能仍然是一个不错的选择。

完整文章请参考 https://www.csslayer.info/wordpress/linux/use-plasma-5-24-to-type-in-alacritty-or-any-other-text-input-v3-client-with-fcitx-5-on-wayland/

Wayland下一些GTK应用内输入字母会自动上屏[编辑 | 编辑源代码]

你可以单独为软件设置环境变量GTK_IM_MODULE=fcitx,或者在~/.config/gtk-3.0/settings.ini中添加:

[Settings]
gtk-im-module = fcitx

KDE[编辑 | 编辑源代码]

如你所见,上文的连接贴出了当前KDE环境下解决这个问题的方法,设置中开启fcitx5的虚拟键盘支持,设置中心搜索“virtual keyboard”, 选择fcitx5并且开启。

Sway[编辑 | 编辑源代码]

sway 已经合并了实现 text-input-v3 协议的分支,但是仍然没有完全实现 input-method-v2 协议,因此仍然无法显示弹出窗口。目前有一个开放的拉取请求可以修复此问题:https://github.com/swaywm/sway/pull/7226 ,可以在 AUR 上安装:sway-imAUR

GNOME[编辑 | 编辑源代码]

Gnome 可以选择安装 kimpanel 插件。

提示和技巧[编辑 | 编辑源代码]

如何查看选中字体的 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 追加代码:[2][3]

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

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

拼音输入法[编辑 | 编辑源代码]

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

导入搜狗词库[编辑 | 编辑源代码]

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

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

云拼音[编辑 | 编辑源代码]

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

笔画过滤[编辑 | 编辑源代码]

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

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

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

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

将输入错误的单词从输入历史中删除[编辑 | 编辑源代码]

输入过程中有可能因为误操作写入错误单词, 此时可以通过重新输入错误单词拼音 -> 使用忘记词汇快捷键(默认为 Ctrl + 7) -> 选择错误单词的对应数字删除.

快捷键可以由Fcitx 配置 > "附加组件"标签页 > "输入法"部分 > "拼音"齿轮图标 > "忘记词汇" 快捷键指定.

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 模块。

参考来源[编辑 | 编辑源代码]