Arch linux KDE ,输入法框架是 ibus Qt 应用和火狐正常。应该不是我程序的问题,在 Windows 下没问题,而且用 Tk 的 IDLE 也输不了中文,弹不出候选栏,英文直接上屏了。fcitx5 也试过,不仅 Tk 用不了,Qt 和火狐也用不了了…… 有人有过这方面经验吗?网上完全找不到相关信息,欧洲用户切换母语和英语是怎么搞的?他们都没有这种问题吗?
1
Cooky 2022-03-29 22:30:21 +08:00
fcitx5 装了对应的模块了吗? fcitx5-gtk fcitx5-qt ?
|
2
LaTero OP @Cooky 装了,fcitx5-im 组里面有。另外火狐用 ibus 连环境变量都不需要,也是挺神奇的。
|
3
maxco292 2022-03-29 22:38:42 +08:00 via Android
pam_environment 设置了吗
|
4
LaTero OP @maxco292 .xprofile 里设的,能设的环境变量都设了,qbittorrent 和 Konsole 都能用,就 Tk 不行。
|
5
maxco292 2022-03-29 22:46:25 +08:00 via Android
@LaTero 我这边 pam env 设置的环境变量 idle fctix5 是可以用的。
GTK_IM_MODULE DEFAULT=fcitx QT_IM_MODULE DEFAULT=fcitx XMODIFIERS DEFAULT=\@im=fcitx SDL_IM_MODULE DEFAULT=fcitx |
6
Cooky 2022-03-29 22:47:23 +08:00
@LaTero 你开个终端看看 fcitx 的变量都在吗,kde 可能会清空变量吧,xprofile 不见得有效
export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx |
7
kingfalse 2022-03-29 22:54:48 +08:00 via Android
我是 opensuse kde fcitx5 rime 没问题,ibus 的话是有些程序不支持,比如 jb 家的 ide
|
8
LaTero OP |
9
sparkrat 2022-03-29 23:32:31 +08:00
自己看一下 fcitx5-diagnose 咯,基本上“fcitx5 能工作,但是在特定环境下不工作”的情况,都可以通过这个诊断的输出来检查原因
|
10
maxco292 2022-03-29 23:36:44 +08:00 via Android
pam environment 上游确实废弃了,现在正统方案是 .config/environment.d/*.conf
|
11
LaTero OP |
12
24owls 2022-03-30 20:37:26 +08:00
刚刚试了一下 tk 可以用 fcitx 啊,不过我还是用的 debian buster 的 fcitx 4
apt install git-gui git gui 然后在 commit message 里面正常切换到 fcitx 输入了汉字 |
13
LaTero OP @24owls 试了试我这 git gui 也不行,tk 8.6.12 。fcitx4 还没试过,但是 ibus 也不行。你用了桌面环境吗?
|
14
24owls 2022-03-30 23:50:32 +08:00
@LaTero 我的 Debian Buster 上面 i3wm 无 DE 和 KDE 都可以正常在 tk 的 git gui 里面用 fcitx 输入汉字
|
15
LaTero OP @24owls 我刚才也试了 fcitx4 ,还是不行,越来越迷了。你 locale 是中文的吗?我在 kde 里 locale 设的是 en_US ,刚试着调了下中文了一下,但是看 arch wiki ,KDE 的 locale 和 keymap 好像很乱,不清楚还有没有地方没改到的。另外我 caps lock 的灯也没用,有可能是 kde 新版本的 bug ,debian 没滚动的 arch 新所以正常。明天我也搞个 i3wm 看看行不行。
|
16
24owls 2022-03-31 12:46:49 +08:00
# localectl
System Locale: LANG=en_GB.UTF-8 LANGUAGE=en_GB:en 应该跟 locale/keymap 没什么关系吧,我记得语言这部分我没做过什么特殊设置,仅有的两处改动,一个是 i3wm 启动的时候加了几个环境变量 export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx 一个是 emacs 启动的时候修改了 LC_CTYPE=zh_CN.UTF-8 要不你找个新环境试一下,如果新环境没碰到问题的话,再排查原因 |
17
LaTero OP @24owls 还真和您 emacs 设的 LC_CTYPE 有关😭我下载了源码 debug 了一晚上终于搞定了。有三步是必需的:
1. 安装它硬编码的 XLFD pattern 能匹配到的字体。 2. tk 不支持 fontconfig ,还要手动 xset 。 3. LC_CTYPE 必须为中文 /日文等语言。 根源是 tk 硬编码了一个 XLFD 字体 pattern ,并且不支持 fontconfig ,创建字体失败,而 tk preferred input style 必须要有字体,所以 XCreateIC 失败。 libx11 真的看着头疼,文档里也没提到 XIMPreeditPosition 一定要字体(可能文档太老了),难怪 GTK 和 Qt 都要搞自己的输入模块。珍爱生命,远离 XIM 。 |
18
Jarvis666 2022-04-04 17:23:11 +08:00
1. 不使用中文
2. 换 win 或 mac |