新版微信wechat-appimage无法使用fcitx5的解决办法

使用官方版本的wechat-appimage时无法使用fcitx5输入法。

已经设置/etc/envirment

#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
XIM=fcitx5
XIM_PROGRAM=fcitx5
GTK_IM_MODULE=fcitx5
QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5
SDL_IM_MODULE=fcitx5
GLFW_IM_MODULE=fcitx5

查看启动方式/usr/bin/wechat

!/bin/sh

case "${XMODIFIERS}" in
    "@im=ibus")
        : ${QT_IM_MODULE:=ibus}
        ;;
    *)
        : ${QT_IM_MODULE:=fcitx}
        ;;
esac
export QT_IM_MODULE

# 以下bug已经在 kde plasma 6.3.90 版本之后修复
# https://bugs.kde.org/show_bug.cgi?id=469274
# if [ "${XDG_SESSION_DESKTOP}" = "KDE" ] || [ "${XDG_SESSION_DESKTOP}" = "plasma" ] && [ "${XDG_SESSION_TYPE}" = "wayland" ]; then
#     XwaylandClientsScale=$(kreadconfig${KDE_SESSION_VERSION} --group KScreen --key XwaylandClientsScale)
#     [ "${XwaylandClientsScale:-true}" = "true" ] && unset QT_AUTO_SCREEN_SCALE_FACTOR
# fi
: ${QT_AUTO_SCREEN_SCALE_FACTOR:=1}
export QT_AUTO_SCREEN_SCALE_FACTOR

exec /opt/wechat-appimage/wechat-appimage.AppImage $@

会与设置好的环境变量发生读取问题,直接把QT_IM_MODULE修改成fcitx即可

#!/bin/sh
#
# case "${XMODIFIERS}" in
#     "@im=ibus")
#         : ${QT_IM_MODULE:=ibus}
#         ;;
#     *)
#         : ${QT_IM_MODULE:=fcitx}
#         ;;
# esac
# export QT_IM_MODULE
#
# 以下bug已经在 kde plasma 6.3.90 版本之后修复
# https://bugs.kde.org/show_bug.cgi?id=469273
# if [ "${XDG_SESSION_DESKTOP}" = "KDE" ] || [ "${XDG_SESSION_DESKTOP}" = "plasma" ] && [ "${XDG_SESSION_TYPE}" = "wayland" ]; then
#     XwaylandClientsScale=$(kreadconfig${KDE_SESSION_VERSION} --group KScreen --key XwaylandClientsScale)
#     [ "${XwaylandClientsScale:-true}" = "true" ] && unset QT_AUTO_SCREEN_SCALE_FACTOR
# fi
# : ${QT_AUTO_SCREEN_SCALE_FACTOR:=1}
# export QT_AUTO_SCREEN_SCALE_FACTOR
# 强制设置 fcitx 相关环境变量
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx

# 对于 Electron 应用,额外设置
export ELECTRON_USE_GTK_IM_MODULE=1

: ${QT_AUTO_SCREEN_SCALE_FACTOR:=1}
export QT_AUTO_SCREEN_SCALE_FACTOR

exec /opt/wechat-appimage/wechat-appimage.AppImage $@

再次打开即可使用fcitx