Linux 点击输入框卡死、界面不刷新 - cc-switch
Quick fix
升级到 cc-switch v3.13.0 及以上版本(启动时自动设置 WEBKIT_DISABLE_COMPOSITING_MODE=1 并做窗口焦点修复)即可解决。
Symptom
Section titled “Symptom”在 Linux 下使用 cc-switch v3.11.1 时,点击任意输入框后应用会卡死(必现)。
另外会偶发自动拉起浏览器并打开 `https://github.com/farion1231/cc-switch`。该问题集中在 Linux 桌面环境(Debian 13 XFCE/KDE、Ubuntu 22.04/24.04,X11 与 Wayland 均有报告,含 Docker/kasmweb 容器),表现为点击任意输入框后 GUI 冻结、界面不自动刷新,只有反复拖动窗口大小才能触发重绘。维护者判断其与 Tauri 2 / WebKitGTK 在系统环境中的渲染兼容性有关(上游问题)。手动设置 WEBKIT_DISABLE_COMPOSITING_MODE=1、WEBKIT_DISABLE_DMABUF_RENDERER=1 或升级 WebKitGTK 对部分用户无效;v3.13.0 对此做了系统性修复(启动时设置 WEBKIT_DISABLE_COMPOSITING_MODE=1、在所有窗口重新显示路径执行焦点修复、移除 Linux 上的 data-tauri-drag-region),官方确认修复。#1667 是同类变体:v3.12.2/v3.12.3 界面不自动刷新,回退 v3.11.1 后消失。注意有用户报告 3.14.1 的 Ubuntu 22.04 Docker 环境中「只要编辑就会卡死」,因此部分环境下升级后仍可能复现,与官方结论存在矛盾。
#2489 是 Windows 平台的同名变体(主界面完全不显示,而非卡死):使用 Windows 内置 Administrator 账号登录时,Evergreen WebView2 初始化失败,根本不拉起 msedgewebview2.exe 子进程,与 Linux 的 WebKitGTK 渲染问题是不同根因,修复方式也不同(见 FAQ)。
升级 cc-switch 到 v3.13.0 或更高版本。v3.13.0 起应用启动时会自动设置 WEBKIT_DISABLE_COMPOSITING_MODE=1,并在启动、deeplink、single_instance、托盘显示等所有窗口显示路径执行焦点修复(linux_fix::nudge_main_window),同时移除 Linux 上的 data-tauri-drag-region 以规避 Wayland 问题。维护者已在 #1667 确认此版本修复 Linux UI 响应问题。
升级后若仍卡死,在设置里启用「Linux 原生标题栏」再试(维护者在 #1290 中给出的建议)。
临时绕过方案:GUI 卡死后反复调整窗口大小可强制界面重绘(停止调整后会再次卡死,仅为应急)。
若 deb 包仍有问题,可尝试本机编译为 AppImage 使用(有用户在 xubuntu 24.04 上验证 AppImage 正常)。
仍无法解决时,可改用 CLI 版本 cc-switch-cli(https://github.com/SaladDay/cc-switch-cli),由维护者推荐。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 3 个真实 issue
- 我已经设置了 WEBKIT_DISABLE_COMPOSITING_MODE=1 启动,为什么还是卡死?
- 多个用户(含同时叠加 WEBKIT_DISABLE_DMABUF_RENDERER=1、升级 WebKitGTK 到 2.50.4)报告手动设置该环境变量无效。有效修复是升级到 v3.13.0+,应用内部会设置该变量并配套窗口焦点修复。
- v3.13.0 具体修复了什么?
- 启动时设置 WEBKIT_DISABLE_COMPOSITING_MODE=1;新增 linux_fix::nudge_main_window,在启动、deeplink、single_instance、托盘显示等所有窗口重新显示路径执行焦点修复;移除 Linux 上的 data-tauri-drag-region 以规避 Wayland 问题。
- 界面卡住后有什么临时办法让它刷新?
- 反复调整窗口大小(resize)可以让 UI 在每次调整时刷新出来,但停止调整后会继续卡死,只能应急,建议升级版本。
- Windows 上托盘图标正常但主界面打不开,也是这个问题吗?
- 不是同一根因。#2489 排查确认:使用 Windows 内置 Administrator 账号登录时,Evergreen WebView2 的 CreateCoreWebView2EnvironmentWithOptions 初始化失败,WebView2 子进程不会被拉起。解决方案:设置注册表 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\FilterAdministratorToken = 1 并重启;或通过环境变量 WEBVIEW2_BROWSER_EXECUTABLE_FOLDER 指定 Fixed Version WebView2 路径;或改用普通管理员账号登录。
- 我的 WebView2 Runtime 被误删了怎么办?
- 有用户反馈误删 WebView2 后也会出现主界面无法打开的情况,重新安装 Microsoft Edge WebView2 Runtime 即可。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。