Firefox
(Firefox)
2025年05月22日 01:32
10
最近遇到类似的问题,下面是总结的问题和解决方案,各位看一下是否相同吧!
** 问题现象:**
在 openSUSE Tumbleweed KDE Plasma 环境中,Fcitx5 输入法突然仅能在部分原生 KDE 应用(如 Kate、Konsole、Dolphin)中正常切换和输入中文,而在其他 GTK 应用(如 VS Code、Firefox)或非 KDE 应用中无法调出输入法或输入中文。
** 背景与排查:**
此问题可能与近期卸载 Fcitx4 相关组件的操作有关。
在 Konsole 终端中,通过以下命令临时设置环境变量并启动 Firefox 进行测试:
Case 1 (使用 fcitx5):
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5
结果:Firefox 可以正常输入中文。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
结果:Firefox 无法输入中文。
** 初步推断:** 上述测试表明,对于受影响的 GTK 应用,必须显式将输入法模块环境变量设置为 fcitx5 而非 fcitx。问题根源可能是系统未能为这些应用正确加载或传递正确的 Fcitx5 环境变量,或者默认传递了不适用于 Fcitx5 的 fcitx 值。
** 核心诉求:**
寻求一种全局解决方案,使得所有应用(包括 GTK 应用和从任务栏启动的应用)都能正确识别并使用 Fcitx5 输入法,而不仅仅是通过终端手动设置环境变量后启动的应用。
** 解决方案:通过 KDE Plasma 环境脚本全局设置 Fcitx5 环境变量 **
KDE Plasma 推荐使用~/.config/plasma-workspace/env/目录下的脚本为用户会话设置环境变量。这种方法可以确保从桌面环境启动的应用程序能够继承这些设置。
** 步骤:**
** 创建并授权环境脚本:**
打开 Konsole 终端,执行以下命令来创建脚本目录(如果不存在)并创建一个名为 im_vars.sh 的脚本文件,然后赋予其执行权限:
mkdir -p ~/.config/plasma-workspace/env/
touch ~/.config/plasma-workspace/env/im_vars.sh
chmod +x ~/.config/plasma-workspace/env/im_vars.sh
** 编辑环境脚本内容:**
使用文本编辑器(如 Kate)打开~/.config/plasma-workspace/env/im_vars.sh 文件,并填入以下内容:
#!/bin/sh
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5
export INPUT_METHOD=fcitx5
** 说明:**
- 根据之前的测试结果 (Case 1 有效),这里我们直接将环境变量的值设置为 fcitx5。
- INPUT_METHOD=fcitx5 是一个常用的补充环境变量,建议一并添加。
** 保存并应用更改:**
保存 im_vars.sh 文件。为了使更改生效,你需要 ** 完全注销当前的 KDE Plasma 会话,然后重新登录 **。或者,直接重启计算机。
** 验证:**
重新登录后,尝试从 KDE 应用程序启动器(任务栏)启动之前有问题的应用(如 VS Code、Firefox),检查是否可以正常切换并使用 Fcitx5 输入中文。
Firefox
(Firefox)
2025年05月22日 01:33
11
此时 通过 wine 安装的企业微信还是没法输入中文(之前都是正常的),决定放弃 wine,改用 VirtualBox 安装。
lilydjwg
(lilydjwg)
2025年05月22日 02:23
12
Firefox:
结果:Firefox 无法输入中文。
** 初步推断:** 上述测试表明,对于受影响的 GTK 应用,必须显式将输入法模块环境变量设置为 fcitx5 而非 fcitx。问题根源可能是系统未能为这些应用正确加载或传递正确的 Fcitx5 环境变量,或者默认传递了不适用于 Fcitx5 的 fcitx 值。
不应当。请检查 fcitx5-diagnose。
Chromium 系另说。火狐应当能使用 Wayland 输入法协议。请检查 fcitx5-diagnose。
部分自带 Qt 的应用(如静态链接或者 flatpak 或者自己带一堆 .so 文件的),可能由于版本过旧只有 fcitx 模块而没有 fcitx5 模块。因此设置为 fcitx 是更好的选择。
lilydjwg:
Chromium 系另说
Chromium 只认环境变量,KDE 虚拟键盘设置为 “fcitx wayland 启动器” 对它不起作用。systemd-inputmethod-generator 只是弹个提示,总比完全用不了强…或者我直接把提示 patch 掉就没这么多问的了…
lilydjwg
(lilydjwg)
2025年05月23日 09:59
14
不一定。部分版本可以手动添加选项开启原生 Wayland 和 text input v3。并且在原生 Wayland 模式下,GTK 输入法模块不好用。
确实,在 about://flags 里开启 “Preferred Ozone platform” 和 “Wayland text-input-v3” 可以输入。
@IceNature
我试了 15.6 选明月拼音简化字就可以,我是右下角状态栏里选的。
另外,/tmp 下面有 rime-xxx-INFO、rime-xxx-WARNING、rime-xxx-ERROR 的运行日志,你可以把 ERROR 的发出来看看
Log file created at: 2025/05/24 19:51:10
Running on machine: ***
Log line format: [IWEF] mmdd hh:mm:ss.uuuuuu threadid file:line] msg
E0524 19:51:10.078210 15932 simplifier.cc:45] opencc config not found: t2s.json
@marguerite ERROR 里面提示说没有找到 t2s.json
我 find / -name "t2s.json" -type f 2>/dev/null
可以找到 /usr/share/opencc/t2s.json
@IceNature opencc 的 t2s.json 就是管简繁转换的…你看下 INFO 里面的 “ initializing opencc: ” 跟的 config path 是什么
I0524 21:05:22.673975 28983 simplifier.cc:36] initializing opencc: t2s.json
E0524 21:05:22.674108 28983 simplifier.cc:45] opencc config not found: t2s.json
I0524 21:05:22.674217 28983 simplifier.cc:36] initializing opencc: t2s.json
E0524 21:05:22.674271 28983 simplifier.cc:45] opencc config not found: t2s.json
@marguerite 只看到了这几行
@IceNature 你的 opencc 和 librime 的版本是多少?
opencc 1.1.6-150600.1.39
librime1 1.7.3-150400.1.5
@marguerite
opencc_test_demo.tar.xz (303.4 KB)
我是在 Leap 15.6 x86_64 上编译的这两个东西。
先备份你自己的 libopencc.so.1.1.6
sudo mv /usr/lib64/libopencc.so.1.1.6 /usr/lib64/libopencc.so.1.1.6.bak
然后用我的替换:
sudo cp -r ./opencc_test_demo/libopencc.so.1.1.6 /usr/lib64/libopencc.so.1.1.6
然后运行 opencc_test:
./opencc_test_demo/opencc_test
看看输出什么,把输出贴上来。
然后恢复你原来的 libopencc.so.1.1.6:
sudo mv /usr/lib64/libopencc.so.1.1.6.bak /usr/lib64/libopencc.so.1.1.6
看到 okay 或者 okay1 就说明你的 opencc 能把 t2s.json 识别为 /usr/share/opencc/t2s.json,并且能正确的加载。我的能,不知道你什么情况…
PACKAGE_DATA_DIRECTORY: /home/marguerite/opencc/build/output/share//opencc//
terminate called after throwing an instance of 'opencc::FileNotFound'
[1] 45930 abort (core dumped) ./opencc_test_demo/opencc_test
直接崩掉了
prefixedFileName: /usr/share/opencc//
okay
这次可以了,显示上面这个。
不过 fcitx5-rime 还是只能输出繁体,日志里面还是找不到 t2s.json
ddqi
(weearc)
2025年05月25日 15:42
29
因为 M17N 的是正常的,所以感觉似乎可以试一下用 M17N 的替换看看?也可以对照看看少什么东西不:
# zypper se -i rime fcitx opencc
S | Name | Type | Version | Arch | Repository
---+----------------------------+--------+---------------------------------+--------+-----------------
i | fcitx-gtk2-32bit | 软件包 | 4.2.9.9-202.2 | x86_64 | M17N
i+ | fcitx5 | 软件包 | 5.1.12-45.14 | x86_64 | M17N
i | fcitx5-branding-openSUSE | 软件包 | 0.1.0-2.3 | noarch | M17N
i | fcitx5-chinese-addons | 软件包 | 5.1.8-29.12 | x86_64 | M17N
i+ | fcitx5-configtool-kcm6 | 软件包 | 5.1.8-31.3 | x86_64 | M17N
i+ | fcitx5-configtool-qt6 | 软件包 | 5.1.8-31.3 | x86_64 | M17N
i | fcitx5-customphraseeditor | 软件包 | 5.1.8-29.12 | x86_64 | M17N
i | fcitx5-customphraseeditor6 | 软件包 | 5.1.8-29.12 | x86_64 | M17N
i+ | fcitx5-gtk2 | 软件包 | 5.1.3-30.29 | x86_64 | M17N
i+ | fcitx5-gtk3 | 软件包 | 5.1.3-30.29 | x86_64 | M17N
i+ | fcitx5-gtk4 | 软件包 | 5.1.3-30.29 | x86_64 | M17N
i+ | fcitx5-lua | 软件包 | 5.0.14-20.12 | x86_64 | M17N
i | fcitx5-pinyindictmanager | 软件包 | 5.1.8-29.12 | x86_64 | M17N
i | fcitx5-pinyindictmanager6 | 软件包 | 5.1.8-29.12 | x86_64 | M17N
i+ | fcitx5-qt-lang | 软件包 | 5.1.9-35.15 | noarch | M17N
i+ | fcitx5-qt5 | 软件包 | 5.1.8-33.6 | x86_64 | (系统软件包)
i+ | fcitx5-qt6 | 软件包 | 5.1.9-35.15 | x86_64 | M17N
i+ | fcitx5-rime | 软件包 | 5.1.9-24.12 | x86_64 | M17N
i+ | fcitx5-table-extra | 软件包 | 5.1.7-21.9 | noarch | M17N
i+ | libfcitx-gclient1-32bit | 软件包 | 4.2.9.9-202.2 | x86_64 | M17N
i+ | libfcitx-utils0-32bit | 软件包 | 4.2.9.9-202.2 | x86_64 | M17N
i+ | libFcitx5Config6 | 软件包 | 5.1.12-45.14 | x86_64 | M17N
i+ | libFcitx5Core7 | 软件包 | 5.1.12-45.14 | x86_64 | M17N
i+ | libFcitx5GClient2 | 软件包 | 5.1.3-30.29 | x86_64 | M17N
i+ | libFcitx5Qt5DBusAddons1 | 软件包 | 5.1.9-35.15 | x86_64 | M17N
i+ | libFcitx5Qt5WidgetsAddons2 | 软件包 | 5.1.9-35.15 | x86_64 | M17N
i+ | libFcitx5Qt6DBusAddons1 | 软件包 | 5.1.9-35.15 | x86_64 | M17N
i+ | libFcitx5Qt6WidgetsAddons2 | 软件包 | 5.1.9-35.15 | x86_64 | M17N
i+ | libFcitx5Utils2 | 软件包 | 5.1.12-45.14 | x86_64 | M17N
i+ | libopencc1_1 | 软件包 | 1.1.9-2.1 | x86_64 | openSUSE-CQU-OSS
i+ | librime-lua | 软件包 | 0.0.0+git20240308.20ddea9-14.23 | x86_64 | M17N
i | librime1 | 软件包 | 1.10.0+git20240229.4ee471e-84.3 | x86_64 | (系统软件包)
i+ | opencc-data | 软件包 | 1.1.9-2.1 | x86_64 | openSUSE-CQU-OSS
i | rime | 软件包 | 1.10.0+git20240229.4ee471e-84.3 | x86_64 | (系统软件包)
我这边使用的方案是 雾凇拼音 虽然也有简繁转换设置但是似乎并没有出现问题,也可以正常输出繁体:
当然简体肯定也是正常的:
推荐试试看
注: 我这边甚至没用 opencc ,不知道为什么。也没有 /tmp/
下 rime 相关日志,可能是风滚草的区别?
lilydjwg
(lilydjwg)
2025年05月26日 02:31
30
opencc -c t2s.json
如果不报错,按 Ctrl-D 退出。如果报错,则继续:
strace -o strace.log -f opencc -c t2s.json
然后把当前目录下的 strace.log 发出来。