Hyprland 下 WeChat 中文输入与环境变量设置笔记
一、问题概述
在 Hyprland(Wayland)中使用 fcitx5 输入法时,WeChat 常出现无法输入中文的问题。
原因主要有三点:
- 环境变量未生效或被注释;
GLFW_IM_MODULE=ibus与 fcitx5 冲突;- 缺少
XIM变量,导致 XWayland 程序(如 Wine 版 WeChat)无法调用输入法。
二、推荐环境变量配置
编辑 ~/.config/hypr/hyprland.conf:
env = XIM,fcitx
env = GTK_IM_MODULE,fcitx
env = QT_IM_MODULE,fcitx
env = XMODIFIERS,@im=fcitx
env = SDL_IM_MODULE,fcitx
env = GLFW_IM_MODULE,fcitx
重载配置:
hyprctl reload
如仍无效,可将以上内容添加到 ~/.profile 并重启。
三、验证 fcitx5 是否生效
fcitx5 -d &
env | grep IM
fcitx5-diagnose
确保输出中的变量均为 fcitx。
四、处理 GLFW 与 ibus 冲突
部分 GLFW 应用仅支持 ibus。
不要全局切换,只针对特定程序单独设置:
示例:为 Minecraft 创建启动脚本
#!/bin/bash
export GLFW_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
ibus-daemon -drx &
minecraft-launcher "$@"
保存为 ~/bin/minecraft-wrapper 并赋予执行权限:
chmod +x ~/bin/minecraft-wrapper
仅此程序使用 ibus,其余应用继续使用 fcitx5。
五、Tip:关于 WeChat 版本差异
wechat:Wine 版,运行于 XWayland,依赖XIM,中文输入常需手动配置环境变量。wechat-universal:原生 Linux 版,支持 Wayland, 可直接使用binds.list,支持文件拖拽等功能,对 fcitx5 支持更完善。
建议优先使用 wechat-universal。
六、总结表
| 问题 | 原因 | 解决方案 |
|---|---|---|
| WeChat 无法中文输入 | 环境变量未生效或冲突 | 设置 env = XIM,fcitx 等变量 |
| GLFW 应用无输入法 | 仅兼容 ibus | 启动脚本单独设为 ibus |
| wechat 与 wechat-universal 行为不同 | 运行机制不同 | 优先使用 wechat-universal |