中文输入法

wumenglab 发布于 1 天前 5 次阅读


常用的有fcitx5和ibus,fcitx5更现代,功能更多,建议使用。

GNOME和KDE桌面的配置方法会略有不同,注意区分。

fcitx5

安装需要的包

sudo pacman -S fcitx5-im fcitx5-rime rime-ice-pinyin-git

fcitx5-im 包含了fcitx5的基本包

fcitx5-rime是输入法引擎

rime-ice-pinyin-git 雾凇拼音输入法,实测比万象拼音好用。这个包在archlinuxcn里,如果你没添加cn源的话可以用yay从aur安装。

可选:fcitx5-mozc日语输入法

编辑配置文件启用rime雾凇拼音

mkdir -p ~/.local/share/fcitx5/rime
vim ~/.local/share/fcitx5/rime/default.custom.yaml 

第一行命令mkdir -p检查文件夹是否存在,不存在的话创建。第二行编辑配置文件,写入以下内容设置rime的默认方案为雾凇拼音:

patch:
  # 这里的 rime_ice_suggestion 为雾凇方案的默认预设
  __include: rime_ice_suggestion:/

编辑环境变量

sudo vim /etc/environment

GNOME和KDE会略有不同

  • GNOME的话写入 XIM="fcitx" GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx XDG_CURRENT_DESKTOP=GNOME

GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx这三个是最主要的环境变量

XDG_CURRENT_DESKTOP=GNOME这一项可以解决吞字问题,建议设置

XIM="fcitx"是因为我在微信的某个版本出现输入法无法使用的情况,设置这个解决了

KDE的话写入

XMODIFIERS=@im=fcitx

系统设置

  • GNOME的话
    1. 打开fcitx5配置添加rime
    2. 安装扩展 商店搜索extension,安装蓝色的extensionmanager。安装input method panel扩展
  • KDE的话
    1. 打开系统设置 > 键盘 > 虚拟键盘, 选择fcitx5,记得应用
    2. 系统设置 > 语言和时间 > 输入法,添加rime。 “配置全局选项”可以设置切换输入法的快捷键。“配置附加选项”可以进行一些自定义设置。

可选:美化

浏览器搜索fcitx5 themes,下载自己喜欢的主题放到~/.local/share/fcitx5/themes目录下。在fcitx5配置里的”经典用户界面“里进行设置。

干净删除fcitx5

  1. 删除包 sudo pacman -Rns fcitx5-im fcitx5-mozc fcitx5-rime rime-ice-pinyin-git

删除配置文件

sudo rm -rfv ~/.config/fcitx5 ~/.local/fcitx5

清理环境变量

sudo vim /etc/environment

KDE用户接着看输入法异常的解决办法

ibus

kde用fcitx5就可以。gnome和ibus兼容性更好,如果有需要可以更换。

因为是次要内容所以放在附录了,点击此处跳转

输入法异常的解决办法

KDE、hyprland、niri、sway这样基于wayland运行的图形化环境设置GTK和QT的IM_MODULE全局变量会导致输入法闪烁和位置错误等问题,但是不设置的话百分之一百会在xwayland应用和electron应用出现输入法异常。所以需要为出现异常的应用单独进行输入法设置。

已知问题:

  1. 漏字
  2. 删不掉输入框的最后一个字母
  3. 卡顿
  4. 删除输入框字母的时候会错误删除右侧已经写好的文字

2025.10.19日记

录制新视频的时候神奇地发现如果locale设置为en_US.UTF-8就不会出现异常了。所以又有了新的办法,而且是最好的办法。为什么说是最好的办法?因为就算设置了IM_MODULE或者--ozone-platform,影响最大的漏字问题确实没了,但是会出现其他问题。如果设置locale为英文,那就一点问题都没有,100%复现。

  • 设置locale为英文 这会让所有软件都变成英文。系统级的文件在/etc/locale.conf,用户级的在~/.config/locale.conf。里面写入LANG=en_US.UTF-8
  • 给输入法异常的软件单独设置环境变量 对于那些出现漏字情况的输入法,单独用环境变量设置英文本地化。系统依旧可以设置成中文。 示例:
    • 从终端启动 LANG=en_US.UTF-8 linuxqq

从.dekstop启动

编辑exec

env LANG=en_US.UTF-8 /usr/bin/linuxqq %U

这个办法的缺点是界面会变成英文,如果你介意的话继续往下看,但就像开头说的那样,下文的其他办法还是会出现漏字之外的异常。另外,如果你完全无法使用输入法的话,也继续往下看。

从快捷方式打开的话(.desktop)

对于QT和GTK应用

打开菜单编辑器,给对应程序设置IM_MODULE环境变量

GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx

对于chromium和electron应用

在linuxqq 【此处】%U添加命令行参数

--ozone-platform=wayland

不行的话设置:

--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime

从终端命令打开的话

上面的设置只对快捷方式打开生效,从终端用命令打开的话不一定生效。解决办法是编辑shell的配置文件单独设置alias。

  • zsh/bash 编辑home目录下的.zshrc.bashrc文件,根据使用的shell而定。
    • QT或GTK应用(以typora为例) alias typora='GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx typora'

chromium和electron应用(以vscode为例)

alias code='code --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime'

fish

fish的话有两种方法,一种是abbr,另一种是function

  • abbr
此作者没有提供个人介绍。
最后更新于 2025-10-24