BentoDesk 图标 # BentoDesk **由 Rust 驱动,极致优雅的下一代便当盒式 Windows 桌面整理器。** [English](README.md) · [简体中文](README.zh-CN.md)

最新版本 总下载量 GitHub Stars CI Windows 10 与 11 Rust 2024 AGPL-3.0 许可证

下载 · 观看完整演示 · 看看怎么用 · 隐私 · 从源码构建 · 参与贡献

BentoDesk 真实桌面演示:Zone 展开、Stack 绽放,最后重新收回桌面

Zone 展开,Stack 绽放,然后桌面重新安静下来。 · 播放 33 秒 MP4

## 文件在手边,噪音收起来 我习惯从桌面开始工作。文件很有用,堆成一片就不是了。 BentoDesk 把普通 Windows 文件折叠进小小的 **Zone**。Zone 平时收成胶囊, 需要时就在原地展开成网格,离开后再把空间还给桌面。相关的 Zone 可以组成 **Stack**,但仍保留各自的布局和样式。文件不会被导入某种专有资料库,它们 依旧是普通的 Windows 文件。
停靠
一枚小胶囊,不抢桌面。
展开
在原地搜索、打开与整理。
收回
离开以后,把空间还回来。
2.0 是 BentoDesk 的原生 Rust 重写。Tauri 1.x 中实用的想法保留下来,网页 运行时被移除;动画、排版、文件处理、设置与系统集成都按 Windows 桌面软件 重新完成。 ## 动画就是界面 胶囊和网格是同一个原生表面。几何、命中、文字、图标与控件共用一套动画 状态,因此反向操作会从当前画面继续,而不是突然切到另一层。

BentoDesk Zone 的真实展开、搜索与原生右键菜单动画

胶囊 → 网格 → 搜索 → 右键菜单 · 播放 MP4

Zone 可以选择宽度和五种边角,也可以悬停展开、单击展开或常驻展开。快速 滑过多个 Zone 时,尚未结束的动画不会把后续动画吞掉。 ## 桌面的其他部分 ### 01 · 把一个 Zone 调到顺手 名称、别名、图标、强调色、网格列数、宽度与边角都能直接编辑,不会在桌面上 弹出依赖浏览器内核的设置窗口。

BentoDesk 原生 Zone 编辑器

### 02 · 一次整理整张桌面 批量选择、显示、隐藏、移动或删除 Zone。网格、横排、纵列、环绕与自然布局 都会限制在显示器的可用范围内。

BentoDesk 原生批量区域管理器

### 03 · 让它融进自己的桌面 明暗主题、强调色、展开方式、性能参数、启动选项、备份、加密、插件与更新都 放在原生设置中。首次运行跟随 Windows 界面语言,之后可随时切换中文和 English。

BentoDesk 原生主题选择器

## 该小的地方,真的很小
2.39 MiB
Release 可执行文件
17.34 MiB
t60 Private Bytes
235 ms
Zone 完整收起
1 个进程
不携带浏览器运行时
这些数字来自一次隔离的五 Zone 实测,不是合成跑分。完整场景和边界见 [参考实测](#参考实测)。 ## BentoDesk 能处理什么 ### 日常操作 - 通过 Windows Shell/OLE 移动或复制文件、文件夹与快捷方式,也可以把项目 从 Zone 拖回桌面; - 在一个 Zone 内筛选,或跨全部 Zone 搜索; - 把多个 Zone 组成 Stack,再展开成员,同时保留各自布局; - 桌面空白区域保持点击穿透,普通应用窗口可以正常覆盖 BentoDesk。 ### 自动化,但先让人看一眼 - **智能分组**根据桌面文件生成可选建议,只有应用建议后才会移动内容; - **实时文件夹**让绑定目录与对应 Zone 保持同步; - **插件**从通过校验的本地包安装,支持启停、持久化与确认卸载; - **规则**处理重复的本地整理,不依赖在线服务。 ### 恢复与文件安全 可以保存和载入布局快照,从时间线查看结构变化并恢复旧布局。设置备份、原子 持久化、更新包校验,以及 DPAPI 或口令加密提供恢复路径,不需要辅助浏览器 进程。 拖放遵循 Windows 的移动与复制语义。失败或被拒绝的传输不会被记录为完成。 删除快照和批量删除 Zone 需要确认。不可替代的文件仍应像使用其他文件工具时 一样保留备份。 ## 如何选择桌面整理器 下面这些软件解决的是不同版本的“桌面放满了”。对照内容来自各产品的官方 说明,只比较工作方式,不拿合成跑分代替真实体验。 | 可以先看 | 它更适合什么情况 | | --- | --- | | [Windows 文件夹与桌面图标](https://support.microsoft.com/zh-cn/windows/experience/personalization/customize-the-desktop-icons-in-windows) | 不想安装额外软件,继续使用熟悉的图标、快捷方式与 Explorer 文件夹。 | | [Stardock Fences 6](https://www.stardock.com/products/fences/) | 看重丰富自动整理或受管电脑部署,包括排序规则、标签页、Peek、Folder Portal 与企业控制。 | | [Portals](https://portals-app.com/) | 想要常驻文件夹面板、标签页、逐面板样式与随显示器切换的档案。 | | [Nimi Places](https://mynimi.net/Projects/Nimi-Places/Features/) | 最看重预览、标签、排序规则与偏媒体浏览的容器。 | | **BentoDesk** | 想要本地优先,而且静止时尽量少占桌面的整理器:原生胶囊到网格动画、Stack、真实桌面项目、布局、快照与时间线恢复。 | BentoDesk 刻意保持专注:只支持 Windows,不替代 Explorer,也不提供云账号 同步。常驻文件夹门户、丰富媒体浏览或企业受管部署,应交给专门为它们设计的 产品。 ## 快速开始 1. 从 [Releases](https://github.com/ZRainbow1275/bentodesk/releases/latest) 下载 `BentoDesk-2.2.0-windows-x64-setup.exe`,在安装程序中阅读并同意用户 协议与隐私政策;如不想安装,也可选择便携 ZIP; 2. 使用同页 `SHA256SUMS.txt` 校验所选安装包或便携包,然后安装或解压; 3. 从托盘菜单新建或管理 Zone; 4. 把文件、文件夹或快捷方式拖入 Zone; 5. 在设置中选择主题、展开方式与语言。 两种发行包都不需要 Node.js、Tauri、WebView2 或额外浏览器运行时。BentoDesk 以本地运行为主,不需要账号或项目自建服务器,也不含遥测、分析、广告、云存储 或崩溃上传;不会上传桌面文件路径、名称、图标或内容。 更新器默认通过 HTTPS 查询 BentoDesk 官方 GitHub endpoint: `https://api.github.com/repos/ZRainbow1275/bentodesk/releases/latest`。受控的 `BENTODESK_UPDATE_MANIFEST_URL` 也可选择 HTTPS、file 或本地覆盖源。启用定时检查 时,应用启动后会立即检查一次,之后按所选周期执行(默认每周;Manual 只禁用定时检查)。 默认开启自动下载。默认通道只会在核对 GitHub SHA-256 digest 后暂存精确的官方 安装包;受控覆盖源声明的安装包也必须先通过 manifest SHA-256 或内置公钥 minisign 签名校验。安装始终需要用户明确操作。GitHub 或受控 HTTPS 覆盖源的主机可能按其 自身政策接收源 IP 地址、BentoDesk User-Agent 等普通 HTTPS 请求元数据。 卸载时默认保留本地设置;只有另行勾选并确认后才会删除 BentoDesk 自身状态。 详见[用户协议](installer/legal/UserAgreement.zh-CN.txt)与 [隐私政策](installer/legal/PrivacyPolicy.zh-CN.txt)。 ### 系统要求 - Windows 10 1809+ 或 Windows 11; - x86-64 处理器; - 建议使用当前 Windows 更新与显卡驱动。 ## 参考实测 一次隔离的公开版 BentoDesk 2.0.2 Windows x64 运行,分辨率 2560×1368、 144 DPI,场景为五个 Zone、50 个项目与一个 BentoDesk 进程: | 指标 | 结果 | | --- | ---: | | Release EXE | 2,506,752 bytes(2.39 MiB) | | Private Bytes t10 / t30 / t60 | 17.80 / 17.38 / 17.34 MiB | | Zone 完整展开 / 收起 | 234 ms / 235 ms | | 动画 tick median / p95 | 16 ms / 16 ms | ## 技术栈 | 层 | 实现 | | --- | --- | | 语言与运行时 | Rust 2024,单进程 | | 窗口与输入 | Win32 / USER32 / DWM | | 图形 | Direct2D、DirectWrite、DirectComposition、D3D11 | | 图标与图像 | Windows Imaging Component、Windows Shell | | 文件交互 | Shell/OLE、`ReadDirectoryChangesW` | | 隐私与系统安全 | 本地优先、无遥测、官方 GitHub HTTPS 更新、DPAPI | | 数据 | 本地原子写入、加密设置仓库 | | 构建 | MSVC x64、静态 CRT、size optimization、Fat LTO | > [!NOTE] > BentoDesk 2.0 的运行时不包含 Tauri、WebView2、Chromium、Node.js 或第三方 > GUI 框架。Tauri 1.x 源码仍保留在 > [`v1.3.0`](https://github.com/ZRainbow1275/bentodesk/tree/v1.3.0) 与 > [`archive/tauri-1.x`](https://github.com/ZRainbow1275/bentodesk/tree/archive/tauri-1.x)。 主要 crate: ```text bentodesk-shell 进程入口、Win32 消息路由与系统集成 bentodesk-app 应用状态、交互、渲染投影 bentodesk-backend 设置、插件、规则、恢复与更新 bentodesk-platform D2D/DWrite/DComp/WIC/Shell/OLE 边界 bentodesk-zone Zone 领域模型 bentodesk-style 主题、排版与视觉 token ``` ## 从源码构建 需要 Windows 10/11 x64、Rust 1.89 或更高版本,以及包含 MSVC 与 Windows SDK 的 Visual Studio 2022 Build Tools。 ```powershell git clone https://github.com/ZRainbow1275/bentodesk.git cd bentodesk $env:CARGO_BUILD_JOBS = "1" $env:CARGO_INCREMENTAL = "0" cargo build --locked --release --target x86_64-pc-windows-msvc -p bentodesk-shell --bin BentoDesk ``` 输出: ```text target\x86_64-pc-windows-msvc\release\BentoDesk.exe ``` 完整质量检查: ```powershell cargo fmt --all -- --check cargo test --locked --workspace --all-targets cargo clippy --locked --workspace --all-targets -- -D warnings cargo doc --locked --workspace --no-deps cargo deny check cargo audit ``` ## 参与贡献 欢迎代码、测试、翻译、主题、插件、文档和边界清楚的 Bug 报告。Issue 与 Pull Request 可以使用中文或 English;提交前请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。 安全漏洞请按 [SECURITY.md](SECURITY.md) 使用 GitHub 私密报告,不要公开提交 Issue。 ## 致谢 感谢GPT 5.6 SOL的帮助,以及[Tibo](https://x.com/thsottiaux)多次频繁的reset, 大大加快了本项目的面世和完善。 感谢 [Linux Do](https://linux.do/)、[NodeSeek](https://www.nodeseek.com/) 等社区的支持。

Tibo reset 搞怪图

BentoDesk 由方寒([@ZRainbow1275](https://github.com/ZRainbow1275))维护。 ## 许可证 BentoDesk 以 [GNU AGPL-3.0-or-later](LICENSE) 发布。