当前位置:   article > 正文

WSL(ubuntu2204)xfce4安装中文环境和fcitx5框架及中文输入法

xfce4

安装中文语言包

sudo apt install language-pack-zh-hans

配置中文显示

首先运行如下命令配置 locale 

$ sudo vi /etc/locale.gen

找到 *zh_CN.UTF-8 UTF-8* 并取消注释,然后保存并退出。

  1. locale.gen...
  2. # zh_CN.GBK GBK
  3. zh_CN.UTF-8 UTF-8
  4. # zh_HK BIG5-HKSCS
  5. 此处省略200行 ...

 运行命令 sudo locale-gen 进行编译

  1. $ sudo locale-gen
  2. Generating locales (this might take a while)...
  3. en_US.UTF-8... done
  4. zh_CN.UTF-8... done
  5. zh_SG.UTF-8... done
  6. Generation complete.

设置默认语言是中文

编辑文件 /etc/default/locale

$ sudo vi /etc/default/locale

将文件内容更改如下,重启 wsl 生效。

  1. 1 LANG=zh_CN.UTF-8
  2. 2 LANGUAGE="zh_CN:zh:en_US:en"

安装输入法框架

有中文语言包后就可以正式准备安装输入法了。Linux 中安装其它语言的输入法首先需要安装输入法框架,之后再安装输入法。常用的输入法框架有 ibus 和 fcitx,本文只介绍 fcitx5 框架的安装。

  • Fcitx

Fcitx (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的输入法平台,可以通过安装引擎支持多种输入法,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。

  • Fcitx5

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

若在系统已经存在一个输入法框架的情况下安装其它框架可能会无法正常工作,需要删除不需要的框架和输入法,可使用如下方式删除:

  1. # 删除软件包保留软件的配置文件
  2. sudo apt remove xxxx
  3. # 删除软件包和软件的配置文件 
  4. sudo apt purge xxxx 
  5. # 清理卸载对象的关联文件
  6. sudo apt autoremove

安装fcitx5框架

使用 Fcitx 5 输入法框架需要安装三部分基本内容:

 1. 安装主程序包

sudo apt install fcitx5

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

2. 输入法引擎

  1. # 安装中文输入法引擎
  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 查看。

  1. $ apt-cache search fcitx5
  2. fcitx5 - 下一代 Fcitx 输入法框架
  3. fcitx5-data - Fcitx Input Method Framework v5 (common data files)
  4. fcitx5-frontend-gtk2 - GTK2 IM Module for fcitx5
  5. fcitx5-frontend-gtk3 - GTK3 IM Module for fcitx5
  6. fcitx5-frontend-gtk4 - GTK4 IM Module for fcitx5
  7. fcitx5-frontend-qt5 - IM module for fcitx5
  8. fcitx5-module-chttrans - Fcitx Input Method Framework v5 (chttrans module)
  9. fcitx5-module-cloudpinyin - Fcitx Input Method Framework v5 (cloudpinyin module)
  10. fcitx5-module-cloudpinyin-dev - Development files for fcitx5 cloudpinyin module
  11. fcitx5-module-emoji - Fcitx Input Method Framework v5 (emoji module)
  12. fcitx5-module-fullwidth - Fcitx Input Method Framework v5 (fullwidth module)
  13. fcitx5-module-lua - Lua support for fcitx5
  14. fcitx5-module-lua-common - Lua support for fcitx5 (common files)
  15. fcitx5-module-lua-dev - Lua support for fcitx5 (development files)
  16. fcitx5-module-pinyinhelper - Fcitx Input Method Framework v5 (pinyinhelper module)
  17. fcitx5-module-pinyinhelper-dev - Development files for fcitx5 pinyinhelper module
  18. fcitx5-module-punctuation - Fcitx Input Method Framework v5 (punctuation module)
  19. fcitx5-module-punctuation-dev - Development files for fcitx5 punctuation module
  20. fcitx5-module-quickphrase - Fcitx Input Method Framework v5 (quickphrase module)
  21. fcitx5-module-wayland - Fcitx Input Method Framework v5 (wayland modules)
  22. fcitx5-module-xorg - Fcitx Input Method Framework v5 (xorg modules)
  23. fcitx5-modules - Fcitx Input Method Framework v5 (core modules)
  24. fcitx5-modules-dev - Fcitx Input Method Framework v5 (input modules dev files)
  25. fcitx5-mozc - Mozc engine for fcitx5 - Client of the Mozc input method
  26. fcitx5-pinyin - Fcitx Input Method Framework v5 (builtin pinyin support)
  27. fcitx5-rime - Rime input method support for fcitx5
  28. fcitx5-table - Fcitx Input Method Framework v5 (builtin table support)
  29. fcitx5-table-amharic - Flexible Input Method Framework v5 - Amharic table
  30. fcitx5-table-arabic - Flexible Input Method Framework v5 - Arabic table
  31. fcitx5-table-cns11643 - Flexible Input Method Framework v5 - Cns11643 table
  32. fcitx5-table-compose - Flexible Input Method Framework v5 - Compose table
  33. fcitx5-table-emoji - Flexible Input Method Framework v5 - Emoji table
  34. fcitx5-table-ipa-x-sampa - Flexible Input Method Framework v5 - IPA-X-SAMPA table
  35. fcitx5-table-latex - Flexible Input Method Framework v5 - LaTeX table
  36. fcitx5-table-malayalam-phonetic - Flexible Input Method Framework v5 - Malayalam phonetic table
  37. fcitx5-table-other - Additional table based input method for Fcitx 5
  38. fcitx5-table-rustrad - Flexible Input Method Framework v5 - Rustrad table
  39. fcitx5-table-tamil-remington - Flexible Input Method Framework v5 - Tamil Remington table
  40. fcitx5-table-thai - Flexible Input Method Framework v5 - Thai table
  41. fcitx5-table-translit - Flexible Input Method Framework v5 - Translit table
  42. fcitx5-table-translit-ua - Flexible Input Method Framework v5 - Ukrainian Translit table
  43. fcitx5-table-viqr - Flexible Input Method Framework v5 - Viqr table
  44. fcitx5-table-yawerty - Flexible Input Method Framework v5 - Yawerty table
  45. gir1.2-fcitxg-1.0 - GObject introspection data for fcitx5
  46. libfcitx5-qt-data - Qt library and IM module for fcitx5 (data files)
  47. libfcitx5-qt-dev - Qt library and IM module for fcitx5 (development files)
  48. libfcitx5-qt1 - Qt library and IM module for fcitx5
  49. libfcitx5config-dev - Fcitx Input Method Framework v5 (config library dev files)
  50. libfcitx5config6 - Fcitx Input Method Framework v5 (config library)
  51. libfcitx5core-dev - Fcitx Input Method Framework v5 (core library dev files)
  52. libfcitx5core7 - Fcitx Input Method Framework v5 (core library)
  53. libfcitx5gclient-dev - GLib-based D-Bus client library for fcitx5 (development files)
  54. libfcitx5gclient2 - GLib-based D-Bus client library for fcitx5 (library)
  55. libfcitx5utils-dev - Fcitx Input Method Framework v5 (utils library dev files)
  56. libfcitx5utils2 - Fcitx Input Method Framework v5 (utils library)
  57. fcitx5-anthy - Fcitx5 wrapper for Anthy IM engine
  58. fcitx5-chewing - Chewing input method support for fcitx5
  59. fcitx5-chinese-addons - Chinese-related addon for fcitx5 (metapackage)
  60. fcitx5-chinese-addons-bin - Chinese-related addon for fcitx5 (binary tools)
  61. fcitx5-chinese-addons-data - Chinese-related addon for fcitx5 (shared data files)
  62. fcitx5-config-qt - configuration tool for Fcitx5 (Qt version)
  63. fcitx5-hangul - Hangul input method wrapper for fcitx5
  64. fcitx5-keyman - Fcitx5 wrapper for Keyman keyboarding platform
  65. fcitx5-kkc - Fcitx5 wrapper for libkkc IM engine
  66. fcitx5-libthai - Thai input method engine for Fcitx5 based on LibThai
  67. fcitx5-m17n - m17n support module for Fcitx5 Input Method Framework
  68. fcitx5-material-color - UI theme for fcitx5 following Material Design
  69. fcitx5-sayura - Fcitx5 wrapper for Sayura IM engine
  70. fcitx5-skk - Japanese SKK input engine for Fcitx5
  71. fcitx5-unikey - Vietnamese Input Method Engine for Fcitx5 using Unikey Engine
  72. kde-config-fcitx5 - KDE configuration module for Fcitx5
  73. libime-bin - Generic Input Method Implementation (tools)
  74. libime-data - Generic Input Method Implementation library (data files)
  75. libime-data-language-model - Generic Input Method Implementation library (language model)
  76. libimecore-dev - Generic Input Method Implementation (core dev files)
  77. libimecore0 - Generic Input Method Implementation (core library)
  78. libimepinyin-dev - Generic Input Method Implementation (pinyin dev files)
  79. libimepinyin0 - Generic Input Method Implementation (pinyin library)
  80. libimetable-dev - Generic Input Method Implementation (table dev files)
  81. 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/ 文件夹下即可。

  1. # 下载词库文件
  2. wget https://github.com/felixonmars/fcitx5-pinyin-zhwiki/releases/download/0.2.4/zhwiki-20220416.dict
  3. # 创建存储目录
  4. mkdir ~/.local/share/fcitx5/pinyin/dictionaries/
  5. # 移动词库文件至该目录
  6. 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桌面会话设置环境变量,即将以下配置项写入某一配置文件中

  1. export XMODIFIERS=@im=fcitx
  2. export QT_IM_MODULE=fcitx
  3. export GTK_IM_MODULE=fcitx

这步环境变量配置非常重要,即使前面的安装步骤完美,如果在这步配置有问题亦将无法在xfce4桌面切换出中文输入法。查找了许多文章的fcitx环境变量配置,大体上是下面这几种:

  1. # 在~/.profile文件中配置环境变量
  2. $ vim ~/.profile
  3. # 在~/.pam_environment文件中配置环境变量
  4. $ vim ~/.pam_environment
  5. # 在~/.xprofile文件中配置环境变量
  6. $ vim ~/.xprofile
  7. # 在/etc/environment文件中配置环境变量
  8. $ vim /etc/environment
  9. # 在/etc/profile文件中配置环境变量
  10. $ 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 打印日志。

 主要查看环境变量是否配置成功,如果依然提示需要配置环境变量则请尝试更换配置文件。

下面贴上一段环境变量配置报错的日志可供参考: 

  1. # 前端设置:
  2. ## Xim:
  3. 1. `${XMODIFIERS}`:
  4. **XMODIFIERS 没有设置**
  5. **请使用您发行版提供的工具将环境变量 XMODIFIERS 设为 "@im=fcitx" 或者将 `export XMODIFIERS=@im=fcitx` 添加到您的 `~/.xprofile` 中. 参见 [输入法相关的环境变量: XMODIFIERS](http://fcitx-im.org/wiki/Input_method_related_environment_variables/zh-cn#XMODIFIERS).**
  6. 从环境变量中获取的 Xim 服务名称为 fcitx.
  7. 2. 根窗口上的 XIM_SERVERS:
  8. Xim 服务的名称与环境变量中设置的相同.
  9. ## Qt:
  10. 1. qt4 - `${QT4_IM_MODULE}`:
  11. **请使用您发行版提供的工具将环境变量 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).**
  12. 2. qt5 - `${QT_IM_MODULE}`:
  13. **请使用您发行版提供的工具将环境变量 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).**
  14. 3. Qt 输入法模块文件:
  15. 找到了未知的 fcitx qt 模块: `/usr/lib/x86_64-linux-gnu/qt5/qml/DBus/Org/Fcitx/Fcitx/libFcitx.so`.
  16. 找到了 Qt5 的输入法模块: `/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so`.
  17. 找到了 Qt4 的输入法模块: `/usr/lib/x86_64-linux-gnu/qt4/plugins/inputmethods/qtim-fcitx.so`.
  18. ## Gtk:
  19. 1. gtk - `${GTK_IM_MODULE}`:
  20. **请使用您发行版提供的工具将环境变量 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 中文维基https://wiki.archlinuxcn.org/wiki/Fcitx5

Ubuntu22.04安装Fcitx5中文输入法(详细) - 知乎https://zhuanlan.zhihu.com/p/508797663

关于 fcitx5 以及最近的环境变量问题 - WeepingDogelhttps://weepingdogel.github.io/posts/%E5%85%B3%E4%BA%8Efcitx5/

在Ubuntu中安装中文输入法_Naisu Xu的博客-CSDNhttps://blog.csdn.net/Naisu_kun/article/details/121482385

wsl ubuntu安装中文语言和windows字体_acooler15的博客https://blog.csdn.net/acooler15/article/details/111681560

wsl ubuntu 安装中文语言包并设为默认_无所事事的大T的博客https://blog.csdn.net/taurusbt/article/details/124484990

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/74433
推荐阅读
  

闽ICP备14008679号