fcitx5-frontend-gtk2
fcitx5-frontend-gtk3
fcitx5-frontend-gtk4这几个包呢
fcitx5-frontend-gtk2
fcitx5-frontend-gtk3
fcitx5-frontend-gtk4这几个包呢
fcitx5-frontend-gtk2
fcitx5-frontend-gtk3
fcitx5-frontend-gtk4
也是最新的。
豆包说,gedit能输入中文,说明gtk 是好的
deepin-editor 输入不了中文,说明 qt 有问题。但是按豆包的修改建议做了,仍然没解决
卸载玲珑版本的文本编辑器,安装deb版本。可能环境变量没传进玲珑内部。
也可以试试把环境变量写入/etc/profile.d/fcitx.sh文件里这样系统全局加载
试了,把环境变量写入/etc/profile.d/fcitx.sh文件里这样系统全局加载,也没有效果。
现在我的环境变量里 QT_IM_MODULE 已经是 fcitx5 了。
卸载了玲珑版本的文本编辑器。现在系统文本编辑器默认变成gedit 了,解决了文本编辑器的问题。
但是仍旧没有解决 系统终端、小U同学 无法输入中文的问题。现在发现,应用市场、WPS里也都无法输入中文😭
在小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
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
Popular Ranking
ChangePopular Events
More
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
重启,仍然没用
请问如何解决?