Hyprland 下 WeChat 中文输入与环境变量设置笔记

一、问题概述

在 Hyprland(Wayland)中使用 fcitx5 输入法时,WeChat 常出现无法输入中文的问题。

原因主要有三点:

  1. 环境变量未生效或被注释;
  2. GLFW_IM_MODULE=ibus 与 fcitx5 冲突;
  3. 缺少 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