587 字
3 分钟
【踩坑】在Wayland桌面使用Fcitx5在QQ,微信中输入中文

在Wayland桌面使用Fcitx5在QQ,微信中输入中文#

我为我的Archlinux系统安装的第一个桌面环境是KDE 6.5。这一版本的KDE已经完全转向Wayland了,当时怀着忐忑的心情安装了QQ,Vscode之类的Electronic应用,本来以为会遇到Fcitx5无法切换中文输入法的问题,结果意外的没有出问题。Fcitx5竟然在QQ上以完美的DPI进行渲染!本来以为Wayland下的Fcitx5的问题都已经解决,于是欣喜地去安装配置了Hyprland,结果在Hyprland下,无法在QQ,微信上输入中文的毛病依然发生了(Fcitx5对KDE/GNOME做了特别的优化,没对Hyprland做😣)。于是便有了这篇指北。

Fcitx5 安装#

在Arch上Fcitx5的安装十分简单,这里直接贴命令了:

Terminal window
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-configtool

可以同时添加一些词库:

Terminal window
sudo pacman -S fcitx5-pinyin-zshwiki # 维基百科词库
paru -S fcitx5-pinyin-sougou-dict-git # 搜狗词库
paru -S fcitx5-pinyin-moegirl # 萌娘百科词库

紧接着添加一些皮肤:

Terminal window
paru -S fcitx5-skin-ori-git

Hyprland配置#

在Hyprland上无法在QQ,微信(沙盒版AUR)等Electron应用上使用的原因很简单,就是Hyprland 等非 GNOME/KDE 的 Wayland WM 存在 bwrap 与 XWayland 配合问题,只需要在Hyprland配置文件中添加系统环境变量即可(不影响KDE):

~/.config/hypr/hyprland.conf
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hypr.land/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = XMODIFIERS,@im=fcitx
env = SDL_IM_MODULE,fcitx

接下来大概率就可以在Hyprland中的QQ,微信中进行中文输入了。

但还有一个问题,Fcitx可能会出现候选词模糊的情况。出现这种情况是因为WeChat 和 LinuxQQ 都运行在 XWayland 上(而非原生 Wayland),fcitx5 候选框需要根据应用的 DPI 缩放来渲染,如果 XWayland 的 DPI 设置与 Wayland 缩放不一致,就会导致候选框被二次缩放而模糊。除此之外,如果你使用了 非整数倍缩放(如 1.25x, 1.5x),fcitx5 候选框可能被拉伸渲染。解决的方法也很简单,只需要单独设置XWayland的缩放就可以了。

Terminal window
# 根据你的缩放设置计算 DPI
# 1.0x = 96 DPI
# 1.25x = 120 DPI
# 1.5x = 144 DPI
# 2.0x = 192 DPI
xrdb -merge <<< "Xft.dpi: 120"

~/.config/hypr/hyprland.conf中添加:

exec-once = xrdb -merge <<< "Xft.dpi: 120"

即可每次启动时都重新启动。

【踩坑】在Wayland桌面使用Fcitx5在QQ,微信中输入中文
http://onemom.top/posts/fcitx5_on_hyprland/
作者
onemotre
发布于
2025-12-08
许可协议
CC BY-NC-SA 4.0