安装中文语言包
sudo apt install language-pack-zh-hans
配置中文显示
首先运行如下命令配置 locale
$ sudo vi /etc/locale.gen
找到 *zh_CN.UTF-8 UTF-8* 并取消注释,然后保存并退出。
locale.gen...
# zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
# zh_HK BIG5-HKSCS
此处省略200行 ...
运行命令 sudo locale-gen 进行编译
$ sudo locale-gen
Generating locales (this might take a while)...
en_US.UTF-8... done
zh_CN.UTF-8... done
zh_SG.UTF-8... done
Generation complete.
设置默认语言是中文
编辑文件 /etc/default/locale
$ sudo vi /etc/default/locale
将文件内容更改如下,重启 wsl 生效。
1 LANG=zh_CN.UTF-8
2 LANGUAGE="zh_CN:zh:en_US:en"
安装输入法框架
有中文语言包后就可以正式准备安装输入法了。Linux 中安装其它语言的输入法首先需要安装输入法框架,之后再安装输入法。常用的输入法框架有 ibus 和 fcitx,本文只介绍 fcitx5 框架的安装。
- Fcitx
Fcitx (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的输入法平台,可以通过安装引擎支持多种输入法,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。
- Fcitx5
Fcitx5 是继 Fcitx 后的新一代输入法框架。
若在系统已经存在一个输入法框架的情况下安装其它框架可能会无法正常工作,需要删除不需要的框架和输入法,可使用如下方式删除:
# 删除软件包保留软件的配置文件
sudo apt remove xxxx
# 删除软件包和软件的配置文件
sudo apt purge xxxx
# 清理卸载对象的关联文件
sudo apt autoremove
安装fcitx5框架
使用 Fcitx 5 输入法框架需要安装三部分基本内容:
1. 安装主程序包
sudo apt install fcitx5
fcitx5包 仅提供基本框架,且仅支持英文。如果要输入其他语言(例如中文或日文),则需要安装x相应的输入法引擎(IME)
2. 输入法引擎
# 安装中文输入法引擎
sudo apt install fcitx5-chinese-addons
fcitx5-chinese-addons 包含与中文相关的 addon,例如拼音、双拼和五笔等。
3. 环境依赖包
sudo apt install fcitx5-frontend-gtk4 fcitx5-frontend-gtk3 fcitx5-frontend-gtk2 fcitx5-frontend-qt5 fcitx5-config-qt
完整fcitx5安装包
运行上面的安装命令后fcitx5框架可能并未安装完整,若想完整安装需要打开语言支持按照提示进行后续安装。如果使用图形桌面xfce4无法打开语言支持或报错可参考内容:WSL(ubuntu2204)使用xfce4桌面打不开语言支持及配置WSL服务自启https://blog.csdn.net/w47_csdn/article/details/129101896
如果图形桌面xfce4中可以正常打开语言支持但并不提示"完整安装",可尝试在终端中以管理员身份执行命令来打开:
$ sudo /usr/bin/gnome-language-selector
若想查找所有的fcitx5相关安装包可运行命令:apt-cache search fcitx5 查看。
$ apt-cache search fcitx5
fcitx5 - 下一代 Fcitx 输入法框架
fcitx5-data - Fcitx Input Method Framework v5 (common data files)
fcitx5-frontend-gtk2 - GTK2 IM Module for fcitx5
fcitx5-frontend-gtk3 - GTK3 IM Module for fcitx5
fcitx5-frontend-gtk4 - GTK4 IM Module for fcitx5
fcitx5-frontend-qt5 - IM module for fcitx5
fcitx5-module-chttrans - Fcitx Input Method Framework v5 (chttrans module)
fcitx5-module-cloudpinyin - Fcitx Input Method Framework v5 (cloudpinyin module)
fcitx5-module-cloudpinyin-dev - Development files for fcitx5 cloudpinyin module
fcitx5-module-emoji - Fcitx Input Method Framework v5 (emoji module)
fcitx5-module-fullwidth - Fcitx Input Method Framework v5 (fullwidth module)
fcitx5-module-lua - Lua support for fcitx5
fcitx5-module-lua-common - Lua support for fcitx5 (common files)
fcitx5-module-lua-dev - Lua support for fcitx5 (development files)
fcitx5-module-pinyinhelper - Fcitx Input Method Framework v5 (pinyinhelper module)
fcitx5-module-pinyinhelper-dev - Development files for fcitx5 pinyinhelper module
fcitx5-module-punctuation - Fcitx Input Method Framework v5 (punctuation module)
fcitx5-module-punctuation-dev - Development files for fcitx5 punctuation module
fcitx5-module-quickphrase - Fcitx Input Method Framework v5 (quickphrase module)
fcitx5-module-wayland - Fcitx Input Method Framework v5 (wayland modules)
fcitx5-module-xorg - Fcitx Input Method Framework v5 (xorg modules)
fcitx5-modules - Fcitx Input Method Framework v5 (core modules)
fcitx5-modules-dev - Fcitx Input Method Framework v5 (input modules dev files)
fcitx5-mozc - Mozc engine for fcitx5 - Client of the Mozc input method
fcitx5-pinyin - Fcitx Input Method Framework v5 (builtin pinyin support)
fcitx5-rime - Rime input method support for fcitx5
fcitx5-table - Fcitx Input Method Framework v5 (builtin table support)
fcitx5-table-amharic - Flexible Input Method Framework v5 - Amharic table
fcitx5-table-arabic - Flexible Input Method Framework v5 - Arabic table
fcitx5-table-cns11643 - Flexible Input Method Framework v5 - Cns11643 table
fcitx5-table-compose - Flexible Input Method Framework v5 - Compose table
fcitx5-table-emoji - Flexible Input Method Framework v5 - Emoji table
fcitx5-table-ipa-x-sampa - Flexible Input Method Framework v5 - IPA-X-SAMPA table
fcitx5-table-latex - Flexible Input Method Framework v5 - LaTeX table
fcitx5-table-malayalam-phonetic - Flexible Input Method Framework v5 - Malayalam phonetic table
fcitx5-table-other - Additional table based input method for Fcitx 5
fcitx5-table-rustrad - Flexible Input Method Framework v5 - Rustrad table
fcitx5-table-tamil-remington - Flexible Input Method Framework v5 - Tamil Remington table
fcitx5-table-thai - Flexible Input Method Framework v5 - Thai table
fcitx5-table-translit - Flexible Input Method Framework v5 - Translit table
fcitx5-table-translit-ua - Flexible Input Method Framework v5 - Ukrainian Translit table
fcitx5-table-viqr - Flexible Input Method Framework v5 - Viqr table
fcitx5-table-yawerty - Flexible Input Method Framework v5 - Yawerty table
gir1.2-fcitxg-1.0 - GObject introspection data for fcitx5
libfcitx5-qt-data - Qt library and IM module for fcitx5 (data files)
libfcitx5-qt-dev - Qt library and IM module for fcitx5 (development files)
libfcitx5-qt1 - Qt library and IM module for fcitx5
libfcitx5config-dev - Fcitx Input Method Framework v5 (config library dev files)
libfcitx5config6 - Fcitx Input Method Framework v5 (config library)
libfcitx5core-dev - Fcitx Input Method Framework v5 (core library dev files)
libfcitx5core7 - Fcitx Input Method Framework v5 (core library)
libfcitx5gclient-dev - GLib-based D-Bus client library for fcitx5 (development files)
libfcitx5gclient2 - GLib-based D-Bus client library for fcitx5 (library)
libfcitx5utils-dev - Fcitx Input Method Framework v5 (utils library dev files)
libfcitx5utils2 - Fcitx Input Method Framework v5 (utils library)
fcitx5-anthy - Fcitx5 wrapper for Anthy IM engine
fcitx5-chewing - Chewing input method support for fcitx5
fcitx5-chinese-addons - Chinese-related addon for fcitx5 (metapackage)
fcitx5-chinese-addons-bin - Chinese-related addon for fcitx5 (binary tools)
fcitx5-chinese-addons-data - Chinese-related addon for fcitx5 (shared data files)
fcitx5-config-qt - configuration tool for Fcitx5 (Qt version)
fcitx5-hangul - Hangul input method wrapper for fcitx5
fcitx5-keyman - Fcitx5 wrapper for Keyman keyboarding platform
fcitx5-kkc - Fcitx5 wrapper for libkkc IM engine
fcitx5-libthai - Thai input method engine for Fcitx5 based on LibThai
fcitx5-m17n - m17n support module for Fcitx5 Input Method Framework
fcitx5-material-color - UI theme for fcitx5 following Material Design
fcitx5-sayura - Fcitx5 wrapper for Sayura IM engine
fcitx5-skk - Japanese SKK input engine for Fcitx5
fcitx5-unikey - Vietnamese Input Method Engine for Fcitx5 using Unikey Engine
kde-config-fcitx5 - KDE configuration module for Fcitx5
libime-bin - Generic Input Method Implementation (tools)
libime-data - Generic Input Method Implementation library (data files)
libime-data-language-model - Generic Input Method Implementation library (language model)
libimecore-dev - Generic Input Method Implementation (core dev files)
libimecore0 - Generic Input Method Implementation (core library)
libimepinyin-dev - Generic Input Method Implementation (pinyin dev files)
libimepinyin0 - Generic Input Method Implementation (pinyin library)
libimetable-dev - Generic Input Method Implementation (table dev files)
libimetable0 - Generic Input Method Implementation (table library)
安装中文词库
对于 Fcitx5 的中文输入法, 目前在仓库里提供了数个词库:
fcitx5-pinyin-zhwiki包:felixonmars 根据中文维基百科创建的适用于拼音输入法的词库
fcitx5-pinyin-sougou:适用于拼音输入法的搜狗词库
rime-pinyin-zhwiki包:适用于 Rime 输入法的词库
fcitx5-pinyin-moegirl-rimeAUR:适用于 Rime 输入法的词库
cedict:从 cedict辞典 导出的词库。
moegirl:outloudvi 根据萌娘百科创建的词库
注意: 手动下载的词典文件直接放到 ~/.local/share/fcitx5/pinyin/dictionaries 路径下即可。词典文件的后缀名应当为 .dict
以维基百科词库为例,在 GitHub 打开 维基百科中文拼音词库 的 Releases 界面,下载最新版的 .dict
文件。按照 README 的指导,将其复制到 ~/.local/share/fcitx5/pinyin/dictionaries/ 文件夹下即可。
# 下载词库文件
wget https://github.com/felixonmars/fcitx5-pinyin-zhwiki/releases/download/0.2.4/zhwiki-20220416.dict
# 创建存储目录
mkdir ~/.local/share/fcitx5/pinyin/dictionaries/
# 移动词库文件至该目录
mv zhwiki-20220416.dict ~/.local/share/fcitx5/pinyin/dictionaries/
设置为默认输入法
使用 im-config 工具可以配置首选输入法,在任意命令行输入:
$ im-config
根据弹出窗口的提示,将首选输入法设置为 Fcitx 5 即可。
关于 linux 环境变量
使用
$HOME/.pam_environment
设置环境变量的用户注意啦!由于 CVE-2010-4708, pam 上游在 1.4.0 版本中设置了默认不读取用户的环境变量设置,需要用户自行更换环境变量设置位置或恢复原默认读取行为。--- 依云’s Blog
使用 X11 的桌面环境,通常通过 display manager 来登录,比如 lightdm 和 sddm。这俩都支持
~/.xprofile
。这个文件会在启动过程中被 source,使用的 shell 是由 dm 自己确定的。lightdm 和 sddm 都是用的/bin/sh
(分别位于/etc/lightdm/Xsession
和/usr/share/sddm/scripts/Xsession
文件里)。可以看到,除了读取.xprofile
外,lightdm 也会读取.profile
。sddm 甚至连 bash、zsh、tcsh、fish 的启动配置脚本都给读了。--- 依云’s Blog
Linux 的环境变量怎么设置 - 依云's Bloghttps://blog.lilydjwg.me/2020/7/22/linux-environment-variables.215496.html
linux中环境变量及环境变量配置文件详解 - kelelipenghttps://www.cnblogs.com/kelelipeng/p/13638185.html
配置fcitx5环境变量
为X11桌面会话设置环境变量,即将以下配置项写入某一配置文件中
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
这步环境变量配置非常重要,即使前面的安装步骤完美,如果在这步配置有问题亦将无法在xfce4桌面切换出中文输入法。查找了许多文章的fcitx环境变量配置,大体上是下面这几种:
# 在~/.profile文件中配置环境变量
$ vim ~/.profile
# 在~/.pam_environment文件中配置环境变量
$ vim ~/.pam_environment
# 在~/.xprofile文件中配置环境变量
$ vim ~/.xprofile
# 在/etc/environment文件中配置环境变量
$ vim /etc/environment
# 在/etc/profile文件中配置环境变量
$ vim /etc/profile
参考了上面的依云’s Blog基本可以排除 ~/.pam_environment 配置。使用 ~/.profile 或 ~/.xprofile 配置好多次依然不起作用,其余两个是系统级的环境配置没有试过。猜测 fcitx5 的环境变量配置可能与安装桌面时选择的 display manager 有关,本文环境在安装 xfce4 时在 gdm3和 lightdm 中选择了 gdm3,按照依云’s Blog所述这个 ~/.xprofile 是 ssdm 和 lightdm 会读取的配置,而 ~/.profile 只有 lightdm 才会读取,那 gdm3 应该读取哪个配置文件呢?最终测试其余两个系统级配置都会生效。
开机自启动
安装 Fcitx5 后并没有自动添加到开机自启动中,每次开机后需要手动在应用程序中找到并启动,非常繁琐。如果是原生Ubuntu系统,则解决方案非常简单,在 Tweaks(sudo apt install gnome-tweaks)中将 Fcitx5 添加到「开机启动程序」列表中即可。
但是在 WSL Ubuntu 环境下并没有 Tweaks 应用,手动安装 Tweaks 后在桌面可能找不到程序入口,可以在终端中使用命令 sudo /usr/bin/gnome-tweaks 打开。
这里提供一个无需安装 Tweaks 的方法,在 xfce4 桌面中依次打开 所有应用程序->设置->会话和启动 弹出窗口后切换到 应用程序自启动 点击 "+" 添加开机启动程序 /usr/bin/fcitx5 如图所示:
Fcitx5 配置工具
Fcitx5 提供了一个基于 Qt 的强大易用的 GUI 配置工具,可以对输入法功能进行配置。有多种启动该配置工具的方法:
1. 在 所有应用程序->设置 中打开「Fcitx 配置」
2. 在 Fcitx 托盘图标上右键打开「设置」
3. 使用命令运行:fcitx5-configtool
根据个人偏好进行设置即可。需要注意的是「输入法」标签页下,应将「键盘 - 英语」放在首位,拼音(或其他中文输入法)放在后面的位置。
诊断定位问题
当你遇到任何 Fcitx5 有关的问题,例如 Ctrl+Space 快捷键在有的程序中不能工作,首先应该用
fcitx5-diagnose
命令诊断问题原因。fcitx5-diagnose
会列出所有 Fcitx5 正常运行所需的前提条件,从输出结果中通常可以找到问题的原因。--- Arch Linux WiKi
若进行上述配置后依然无法在图形桌面中切换中文输入法,请使用 fcitx5-diagnose 打印日志。
主要查看环境变量是否配置成功,如果依然提示需要配置环境变量则请尝试更换配置文件。
下面贴上一段环境变量配置报错的日志可供参考:
# 前端设置:
## Xim:
1. `${XMODIFIERS}`:
**XMODIFIERS 没有设置**
**请使用您发行版提供的工具将环境变量 XMODIFIERS 设为 "@im=fcitx" 或者将 `export XMODIFIERS=@im=fcitx` 添加到您的 `~/.xprofile` 中. 参见 [输入法相关的环境变量: XMODIFIERS](http://fcitx-im.org/wiki/Input_method_related_environment_variables/zh-cn#XMODIFIERS).**
从环境变量中获取的 Xim 服务名称为 fcitx.
2. 根窗口上的 XIM_SERVERS:
Xim 服务的名称与环境变量中设置的相同.
## Qt:
1. qt4 - `${QT4_IM_MODULE}`:
**请使用您发行版提供的工具将环境变量 QT_IM_MODULE 设为 "fcitx" 或者将 `export QT_IM_MODULE=fcitx` 添加到您的 `~/.xprofile` 中. 参见 [输入法相关的环境变量: QT_IM_MODULE](http://fcitx-im.org/wiki/Input_method_related_environment_variables/zh-cn#QT_IM_MODULE).**
2. qt5 - `${QT_IM_MODULE}`:
**请使用您发行版提供的工具将环境变量 QT_IM_MODULE 设为 "fcitx" 或者将 `export QT_IM_MODULE=fcitx` 添加到您的 `~/.xprofile` 中. 参见 [输入法相关的环境变量: QT_IM_MODULE](http://fcitx-im.org/wiki/Input_method_related_environment_variables/zh-cn#QT_IM_MODULE).**
3. Qt 输入法模块文件:
找到了未知的 fcitx qt 模块: `/usr/lib/x86_64-linux-gnu/qt5/qml/DBus/Org/Fcitx/Fcitx/libFcitx.so`.
找到了 Qt5 的输入法模块: `/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so`.
找到了 Qt4 的输入法模块: `/usr/lib/x86_64-linux-gnu/qt4/plugins/inputmethods/qtim-fcitx.so`.
## Gtk:
1. gtk - `${GTK_IM_MODULE}`:
**请使用您发行版提供的工具将环境变量 GTK_IM_MODULE 设为 "fcitx" 或者将 `export GTK_IM_MODULE=fcitx` 添加到您的 `~/.xprofile` 中. 参见 [输入法相关的环境变量: GTK_IM_MODULE](http://fcitx-im.org/wiki/Input_method_related_environment_variables/zh-cn#GTK_IM_MODULE).**
参考资料
Fcitx5 - Arch Linux 中文维基
Ubuntu22.04安装Fcitx5中文输入法(详细) - 知乎
关于 fcitx5 以及最近的环境变量问题 - WeepingDogel
在Ubuntu中安装中文输入法_Naisu Xu的博客-CSDN
wsl ubuntu安装中文语言和windows字体_acooler15的博客
wsl ubuntu 安装中文语言包并设为默认_无所事事的大T的博客