Gtk-CRITICAL: gtk_widget_get_scale_factor 失败 - cc-switch
Quick fix
在 Linux 或 WSL2 中运行 cc-switch 遇到 GTK 断言失败时,请修改 settings.json 关闭静默启动,或清理残留配置重装。
Symptom
Section titled “Symptom”(cc-switch:643): Gtk-CRITICAL **: 22:56:19.052: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed该错误通常出现在 Linux 或 WSL2 环境下运行 cc-switch GUI 时。由于 WSL2 的显示服务器与 GTK/WebKit 的窗口缩放存在兼容性问题,导致在窗口未完全初始化(例如静默启动时)查询缩放因子触发断言失败。这会引发界面冻结、窗口按钮失效、无法显示主界面或 WebKit 内部错误。社区反馈的解决方案存在差异:部分用户通过关闭静默启动解决,而另一些用户在已关闭静默启动的情况下依然报错,最终通过彻底清理残留配置重装或改用 CLI 解决。
编辑 cc-switch 的配置文件,确保关闭静默启动模式。
// ~/.cc-switch/settings.json (root 用户为 /root/.cc-switch/settings.json){"silentStartup": false}如果修改配置后依然报错,请彻底卸载 cc-switch,清理所有残留配置文件后重新安装。
若 GUI 界面持续崩溃无法使用,建议暂时改用命令行版本 cc-switch-cli 进行代理和模型管理。
Affected Versions
Section titled “Affected Versions”Toolcc-switch
Version3.14.0 - 3.16.4
PlatformsLinux
Source Issues
Section titled “Source Issues”本页汇总自 3 个真实 issue
- 为什么非最大化时关闭按钮失效?
- 这是 WSL2 下 GTK 窗口管理的已知兼容性问题,尝试最大化窗口后再点击,或通过修改配置、清理重装的方法解决。
- 我是 root 用户,配置文件路径在哪里?
- root 用户的配置文件路径为 /root/.cc-switch/settings.json,请确保将其中的 "silentStartup" 设置为 false。
- 添加 Codex OAuth 认证时遇到 WebKit 内部错误怎么办?
- 这同样是由于 WSL2 环境下 WebKitGTK 渲染异常导致的。请先尝试关闭静默启动并清理重装,若仍无法弹出认证窗口,建议暂时使用 cc-switch-cli 配置。
原子替换失败 os error 50将 Claude Code 配置目录从 WSL 路径改回 Windows 本地路径,或回退至 v3.19.0。"Not logged in ? Please run /login" Claude使用 Copilot 或 Codex 等托管账户时,必须在 cc-switch 中开启“API代理接管”,否则直连上游地址会导致认证失败或模型无权限报错。Your access token could not be refreshed升级 cc-switch 至 v3.17.0+,修复接管时写入 PROXY_MANAGED 占位符污染 OAuth 凭证或导致 401 的问题。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。