[Text Editor] 输入不了中文
Tofloor
poster avatar
可喜
deepin
2026-06-26 22:41
Author

deepin V25.1.1 系统自带的文本编辑器、终端 以及 小U同学的 文本输入框里均输入不了中文。

自己安装了 gedit。gedit、chrome 浏览器 里都可以正常输入中文。

按照豆包建议,安装 fcitx5-frontend-qt6, fcitx5-frontend-qt5, 发现都是最新的

然后 在 ~/.profile 加入

export GTK_IM_MODULE=fcitx5

export QT_IM_MODULE=fcitx5

export XMODIFIERS=@im=fcitx5

export SDL_IM_MODULE=fcitx5

重启,仍然没用

请问如何解决?

Reply Favorite View the author
All Replies
avatar
chmod700
deepin
2026-06-27 06:11
#1

fcitx5-frontend-gtk2

fcitx5-frontend-gtk3

fcitx5-frontend-gtk4这几个包呢

Reply View the author
avatar
可喜
deepin
2026-06-27 11:06
#2

fcitx5-frontend-gtk2

fcitx5-frontend-gtk3

fcitx5-frontend-gtk4

也是最新的。

豆包说,gedit能输入中文,说明gtk 是好的

deepin-editor 输入不了中文,说明 qt 有问题。但是按豆包的修改建议做了,仍然没解决

Reply View the author
avatar
neko
deepin
Ecological co-builder
Q&A Team
2026-06-27 11:30
#3

卸载玲珑版本的文本编辑器,安装deb版本。可能环境变量没传进玲珑内部。
也可以试试把环境变量写入/etc/profile.d/fcitx.sh文件里这样系统全局加载

Reply View the author
avatar
可喜
deepin
2026-06-27 14:55
#4

试了,把环境变量写入/etc/profile.d/fcitx.sh文件里这样系统全局加载,也没有效果。
现在我的环境变量里 QT_IM_MODULE 已经是 fcitx5 了。

卸载了玲珑版本的文本编辑器。现在系统文本编辑器默认变成gedit 了,解决了文本编辑器的问题。

但是仍旧没有解决 系统终端、小U同学 无法输入中文的问题。现在发现,应用市场、WPS里也都无法输入中文😭

Reply View the author
avatar
可喜
deepin
2026-09-11 22:35
#5

在小U同学的帮助下,折腾了2个小时,终于解决。

以下小U同学的总结:

根本原因:Deepin 25 的桌面应用从 systemd 用户环境继承输入法变量,而登录时 pam_systemd 会把 PAM 环境(旧残留的 ibus)导入并覆盖 systemd 用户环境,导致所有 Qt 应用(deepin-editor、小U同学、控制中心)无法输入中文。如果以后重装系统,可先确认输入法框架统一为 fcitx5,避免再次出现 ibus 残留

最终解法:通过 LightDM session-wrapper 在 PAM 会话建立后、dde-session 启动前注入 fcitx5 环境变量,时机正确、无法被覆盖:

/usr/local/bin/deepin-session-wrapper —— export + set-environment fcitx5
/etc/lightdm/lightdm.conf.d/98-input-env.conf —— 让 LightDM 使用该 wrapper

根治方案:用 LightDM 的 session-wrapper 在正确时机注入

session-wrapper 会在 PAM 会话建立之后、dde-session 启动之前执行——这是注入环境变量的完美时机,不会被覆盖!

1 创建会话包装脚本

bash

sudo tee /usr/local/bin/deepin-session-wrapper <<'EOF'

#!/bin/sh

export GTK_IM_MODULE=fcitx5

export QT_IM_MODULE=fcitx5

export SDL_IM_MODULE=fcitx5

export XMODIFIERS=@im=fcitx5

systemctl --user set-environment GTK_IM_MODULE=fcitx5 QT_IM_MODULE=fcitx5 XMODIFIERS=@im=fcitx5 SDL_IM_MODULE=fcitx5

exec "$@"

EOF

sudo chmod +x /usr/local/bin/deepin-session-wrapper

  1. 让 LightDM 使用它

bash

sudo mkdir -p /etc/lightdm/lightdm.conf.d

sudo tee /etc/lightdm/lightdm.conf.d/98-input-env.conf <<'EOF'

[Seat:*]

session-wrapper=/usr/local/bin/deepin-session-wrapper

EOF

Reply View the author