点击“编辑”整体卡死 Claude Code
Quick fix
在 Linux 上改用 deb 包,或修复 AppImage 内缺少 fcitx/ibus 模块的 GTK 输入法缓存以避免回退到 XIM。
Symptom
Section titled “Symptom”进入编辑页后整体卡死:窗口无响应,进程存活,CPU 正常(非死循环)。Linux AppImage 的 AppRun 无条件设置 `GTK_IM_MODULE_FILE`,但其指向的 bundle 缓存不包含 fcitx 或 ibus 输入法模块,且 AppDir 中也没有 `immodules/` 目录。当环境使用 `GTK_IM_MODULE=fcitx` 时,GTK 在缓存中找不到该模块,会按当前 locale 回退到 XIM(`im-xim.so`)。
编辑页文本框取得焦点时,WebKitGTK 会在该 XIM 路径下卡死。报告中的单变量对照显示:即使不更换 bundle 内的 WebKit,只要让 GTK 不再回退到 XIM,卡死便会消失。系统 GTK 模块与 AppImage 内 GTK 版本可能存在 ABI 不匹配,不能假定可直接复用系统的 `im-fcitx5.so`。
优先改用 deb 包运行 cc-switch;报告中该方式可正常加载系统的 fcitx5 输入法模块,编辑页不会卡死。
如必须使用 AppImage,自行解包后修复 AppDir 内的 GTK 输入法模块缓存:不要让 `GTK_IM_MODULE_FILE` 指向缺少常见输入法模块的缓存;若保留自带缓存,则需同时为 bundle 内 GTK 版本构建并加入 `im-fcitx5.so` 或 `im-ibus.so`,再生成对应缓存。
AppImage AppRun export GTK_IM_MODULE_FILE="$APPDIR//usr/lib/gtk-3.0/3.0.0/immodules.cache"也可不设置 `GTK_IM_MODULE_FILE`,交由 GTK 使用系统缓存。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 1 个真实 issue
- 为什么在 `.desktop` 里再设 `GTK_IM_MODULE_FILE` 无效?
- AppImage 的 `AppRun` 会无条件导出该环境变量,因此用户后设置的值无法覆盖它。
- 把 `GTK_IM_MODULE=xim QT_IM_MODULE=xim` 设为 XIM,能排除输入法因素吗?
- 不能;该设置会主动进入 XIM 路径,与“XIM 触发卡死”的结论一致。
- 能否直接把系统的 `im-fcitx5.so` 放进 AppImage?
- 不一定可行。报告中系统 GTK 3.24.41 的 `im-fcitx5.so` 在 bundle GTK 3.24.33 下加载失败,应使用针对 bundle 内 GTK 版本构建的模块。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。