面向 Windows WSL Containers(WSLc) 的轻量级桌面管理器,基于 GPUI Kit 构建。
网站:https://timeroute.github.io/wslc-desktop-website/
下载:Releases 中的 WSLc.Desktop-<version>-x86_64.msi。
| 总览 | 容器日志 | 拉取镜像 |
|---|---|---|
![]() |
![]() |
![]() |
用独立会话 wslc-desktop(%LOCALAPPDATA%\WSLcDesktop\)管理容器、镜像与 VHD 卷,与默认 wslc CLI 会话隔离。Rust 绑定使用自维护 fork timeroute/wslc-rs(OpenContainer / Logs / named volumes)。MSI 不捆绑 wslcsdk.dll:首次启动以阻塞弹窗安装/更新 SDK,之后复用 %LOCALAPPDATA%\WSLcDesktop\sdk\ 缓存(仅在版本不兼容或手动重试时再下载)。启动门禁只读注册表 Lxss\Msi\Version(与 WSL 一致),SDK 连上后版本来自 Service::version()。同一用户会话只允许一个实例。
- 打开 Releases
- 下载最新
WSLc.Desktop-<version>-x86_64.msi并安装 - 确保本机 WSL 2.9.3+(
wsl --update) - 首次启动按提示完成 SDK 安装;之后即可拉取镜像、创建容器
同版本 MSI 会覆盖旧安装(固定 UpgradeCode + AllowSameVersionUpgrades)。若「应用和功能」里已有重复条目,先卸干净再装新包。
需要 VC++ 运行库时,安装 VC++ Redistributable。
| 页面 | 能力 |
|---|---|
| 总览(默认) | 引擎 / SDK / 应用版本、会话 CPU·内存、容器·镜像·卷摘要 |
| Containers | 创建(端口 / bind / 命名卷);行内 Start / Stop / Restart / Logs / Inspect / Exec / Remove;catalog + OpenContainer 跨重启恢复 |
| Images | 拉取弹窗;行内创建容器 / 删除 |
| Volumes | 弹窗创建(1/2/5/10 GiB);行内删除 |
| 设置 | 可滚动;语言、主题、会话 CPU / 内存(下次新建会话生效) |
Logs 走 fork 的 LogsOptions(底层 wslc --session wslc-desktop container logs)。退出应用不会 terminate 会话,便于下次重连。
要求: Windows 10/11 x64 · WSL 2.9.3+ · Rust stable-MSVC · VS 2022 C++ + Windows SDK + CMake
wsl --update
rustup default stable-x86_64-pc-windows-msvc
cargo run # 开发
cargo build --release # 发布二进制
cargo test另需 WiX Toolset 3.14+ 与 cargo install cargo-wix:
cargo wix
# 产物:target\wix\WSLc.Desktop-<version>-x86_64.msi
# 当前 0.1.2:WSLc.Desktop-0.1.2-x86_64.msi可选:cargo wix --no-build(已有 release 产物时)、cargo wix --sign(需 signtool)。
打 v* tag 会触发 Windows MSI 工作流:构建 MSI 并创建 Release 挂载安装包。
# 版本与 Cargo.toml 对齐,例如 0.1.2 → v0.1.2
git tag v0.1.2
git push origin v0.1.2也可:push / PR 到 main 仅上传 artifact;或 Actions → Windows MSI → Run workflow。
[target.'cfg(windows)'.dependencies]
wslc = { git = "https://github.com/timeroute/wslc-rs", rev = "<commit>" }在 fork 打补丁并 push 后,更新这里的 rev,再 cargo build / 提交 Cargo.lock。可用 WSLC_CLI_PATH 覆盖日志用的 wslc.exe。
UI (GPUI Kit)
├─ SDK 安装弹窗 → NuGet 缓存 wslcsdk.dll
├─ Session "wslc-desktop"(与 CLI 隔离,退出不 terminate)
└─ 拉取 / 创建 / 日志 → 阻塞弹窗或行内操作
| 资源 | 持久化 |
|---|---|
| Containers | %LOCALAPPDATA%\WSLcDesktop\catalog.json + OpenContainer |
| Volumes | catalog |
| 会话 prefs | %LOCALAPPDATA%\WSLcDesktop\prefs.json |
.github/workflows/ Windows MSI CI / Release
wix/ MSI 快捷方式与图标
src/app/ 界面(overview / containers / images / volumes / settings)
src/wslc/ SDK 封装与 Live 会话
Apache-2.0


