diff --git a/UPDATELOG.md b/UPDATELOG.md index 28b2bf08..4b316e60 100644 --- a/UPDATELOG.md +++ b/UPDATELOG.md @@ -31,6 +31,7 @@ - 修复配置修改后缓存不同步问题 - 修复 Windows 安装器自启设置问题 - 修复 macOS 下 Dock 图标恢复窗口问题 +- 修复 linux 下 KDE/Plasma 异常标题栏按钮 - 修复架构升级后节点测速功能异常 - 修复架构升级后流量统计功能异常 - 修复架构升级后日志功能异常 diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 11a42bba..264904c2 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -423,7 +423,23 @@ pub fn run() { // Set Linux environment variable #[cfg(target_os = "linux")] - std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); + { + std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); + + let desktop_env = std::env::var("XDG_CURRENT_DESKTOP").unwrap_or_default().to_uppercase(); + let is_kde_desktop = desktop_env.contains("KDE"); + let is_plasma_desktop = desktop_env.contains("PLASMA"); + + if is_kde_desktop || is_plasma_desktop { + std::env::set_var("GTK_CSD", "0"); + logging!( + info, + Type::Setup, + true, + "KDE detected: Disabled GTK CSD for better titlebar stability." + ); + } + } // Create and configure the Tauri builder let builder = app_init::setup_plugins(tauri::Builder::default())