开源的跨平台桌面集成 SDK

统一桌面接口,
专注应用本身。

一套 Rust API,连接 Windows 与 Linux。
让主题、壁纸、通知与唤醒能力更容易接入。

你的应用跨语言接入
RustPythonNode.jsC / C++
UniDesktop API一个接口,连接不同桌面。
Rust cratesC ABI统一能力契约
WindowsWin32 / WinRT
LinuxPortal / D-Bus / CLI
按运行环境,选择可用的原生后端。
连接你熟悉的桌面
WindowsGNOMEKDE PlasmaXFCEHyprlandSway
查看支持范围

常用能力,统一接入。

主题与外观

检测明暗主题,实时跟随系统外观。

壁纸管理

支持多显示器、填充模式与明暗配对。

原生通知

发送系统通知,支持操作按钮与优先级。

保持唤醒

按需阻止显示器休眠或系统空闲。

从一段代码开始。

使用 Rust 原生接口,或通过 C ABI
接入 Python 与 Node.js。

阅读接入指南
从源码开始

当前通过仓库构建 SDK。
公开 Releases 暂无预编译安装包。

下载源码 ZIP
use uda_core::appearance::AppearanceManager;
use uda_platform_linux::appearance::LinuxAppearanceManager;

fn main() -> Result<(), uda_core::error::UdaError> {
    let desktop = LinuxAppearanceManager::new();
    let theme = desktop.detect_theme()?;
    println!("System theme: {theme:?}");
    Ok(())
}

支持哪些桌面?

XDG Portal↓桌面原生 IPC↓CLI 回退↓Unsupported

可预期的逐级回退

通过 capabilities() 区分完整支持、受限支持与不支持,让应用在调用之前就能做出判断。

依据 SDK README 的桌面环境支持范围
桌面环境接入方式核心能力
Windows 10 / 11原生 Win32 / WinRT✓ 完整支持
GNOME 42+Portal / 桌面接口✓ 完整支持
KDE Plasma 5 / 6Portal / 桌面接口✓ 完整支持
XFCE桌面接口 / 回退后端✓ 完整支持
Hyprland / SwayWayland / 可用后端◒ 部分支持
Generic X11CLI 回退后端◒ 部分支持

完整支持指主题、壁纸、通知和唤醒四项能力。部分支持环境的壁纸能力可用,其余能力依赖运行环境及回退后端。

查看详细兼容性说明

一起完善桌面生态。

由 SR Studio 发起,与开源社区共同维护。
欢迎贡献代码、反馈问题,或支持项目。

参与社区讨论