基于 Rust + Tauri 的高性能桌面文件管理工具 - 轻量、优雅、高效
Second Desk 是一款现代化的 Windows 桌面文件管理工具,采用 Rust + Tauri 2.x + Vue 3 技术栈构建。它以抽屉式设计理念,通过屏幕边缘触发或全局快捷键快速呼出,让桌面文件访问变得触手可及。
与传统的桌面图标管理不同,Second Desk 将常用文件收纳在一个可随时呼出的抽屉面板中,既保持了桌面的整洁,又不牺牲文件访问的便捷性。无论是快速启动应用、打开文档,还是管理下载文件,只需将鼠标移到屏幕边缘或按下快捷键,即可在 1 秒内完成操作。
- 桌面整洁 - 将常用文件收纳到抽屉中,告别杂乱的桌面图标
- 随用随现 - 边缘触发或快捷键呼出,用完自动隐藏,不占屏幕空间
- 智能分类 - 自动识别文件类型,支持自定义分类和虚拟文件夹
- 高度定制 - 从触发方式到主题配色,一切都可按需调整
- 性能至上 - Rust 后端保证极致性能,冷启动不到 1 秒
| 特性 | 说明 |
|---|---|
| 🚀 极速启动 | 冷启动 <1 秒,文件扫描 <100ms |
| 🪟 智能触发 | 支持 4 个方向的边缘触发 + 全局快捷键 |
| 🎨 精美主题 | 5 种配色 × 深浅色模式 × 毛玻璃效果 |
| 📁 虚拟分组 | 像 iPhone 一样拖拽图标创建文件夹 |
| ✅ 批量操作 | 长按进入批量选择模式,快速移动多个文件 |
| 🔧 完全可调 | 窗口位置、大小、触发延迟、自动隐藏全可配 |
| 💾 轻量高效 | 内存占用 <120MB,二进制体积 <50MB |
| 🛡️ 智能保护 | 全屏检测、快捷键保护期、拖动检测 |
| 操作 | 说明 |
|---|---|
| 边缘触发 | 将鼠标移动到屏幕边缘(默认右侧),停留片刻即可呼出 |
| 快捷键呼出 | 按下 Ctrl+Shift+D(可自定义)快速呼出/隐藏 |
| 自动隐藏 | 鼠标移出窗口或窗口失焦时自动隐藏(可选择模式) |
| 托盘图标 | 右键托盘图标可快速访问设置或退出程序 |
| 操作 | 说明 |
|---|---|
| 单击 | 打开文件或应用程序 |
| 右键 | 打开上下文菜单(打开、重命名、删除、属性等) |
| 拖拽 | 拖动文件调整顺序,或拖入虚拟文件夹/分类 |
| 收藏 | 点击文件右上角的星标,将文件添加到收藏 |
| 搜索 | 在顶部搜索框输入关键词,实时过滤文件 |
Second Desk 提供灵活的分类管理系统,帮助你组织文件:
- 全部 - 显示当前路径下的所有文件
- 收藏 - 显示所有已收藏的文件和虚拟文件夹
- 应用 - 自动识别
.exe、.lnk、.url等可执行文件 - 文档 - 自动识别
.doc、.pdf、.txt等文档文件 - 媒体 - 自动识别图片、视频、音频等媒体文件
- 其他 - 不属于以上类型的文件
- 点击分类栏右侧的 + 按钮
- 输入分类名称,选择图标
- 勾选要添加到该分类的文件
- 点击确认创建
自定义分类支持:
- 拖拽排序
- 重命名和编辑
- 右键删除
虚拟文件夹类似于 iPhone 的文件夹功能,可以将多个文件聚合在一起,但不会真正移动文件位置。
方式一:拖拽合并
- 拖动一个文件图标
- 将其悬停在另一个文件上方(会显示合并预览)
- 松开鼠标,自动创建包含两个文件的虚拟文件夹
方式二:批量选择创建
- 长按任意文件 500ms 进入批量选择模式
- 点击选择多个文件
- 点击底部操作栏的「创建文件夹」
- 打开 - 单击虚拟文件夹,弹出成员列表
- 添加成员 - 拖动文件到虚拟文件夹图标上
- 移除成员 - 在弹出列表中右键点击成员,选择「移出文件夹」
- 重命名 - 右键虚拟文件夹,选择「重命名」
- 删除 - 右键虚拟文件夹,选择「删除」(不会删除实际文件)
- 收藏 - 点击虚拟文件夹的星标图标
批量选择模式让你可以一次性操作多个文件,比逐个拖动更高效。
- 长按触发 - 按住任意文件图标不动 500ms,自动进入批量选择模式
进入批量选择模式后,底部会出现操作栏:
| 按钮 | 功能 |
|---|---|
| 全选 | 选择当前显示的所有文件 |
| 移动到... | 将选中项添加到分类或虚拟文件夹 |
| 创建分类 | 用选中的文件创建新分类 |
| 创建文件夹 | 用选中的文件创建虚拟文件夹(需选择 ≥2 项) |
| 取消 | 退出批量选择模式 |
点击「移动到...」后,会弹出目标选择器:
- 分类标签页 - 显示所有自定义分类,点击即可添加
- 虚拟文件夹标签页 - 显示当前路径下的虚拟文件夹
- 网格视图 - 以图标网格显示文件(默认)
- 列表视图 - 以紧凑列表显示文件
- 小 - 适合文件较多时使用
- 中 - 默认大小,平衡显示效果
- 大 - 适合触屏或需要大图标时使用
提供 5 种预设配色:
- 🔵 蓝色 - 经典稳重
- 🟢 绿色 - 清新自然
- 🟣 紫色 - 优雅神秘
- 🟠 琥珀 - 温暖活力
- 🩷 粉色 - 柔和可爱
- 浅色模式 - 明亮背景,适合日间使用
- 深色模式 - 暗色背景,减少眼睛疲劳
- 跟随系统 - 自动匹配系统主题
- 标准 - 适中的模糊和透明度
- 淡雅 - 轻微模糊,更加通透
- 强化 - 强模糊效果,更具质感
- 极简 - 几乎透明,低调隐蔽
- 自定义 - 手动调节模糊度、饱和度、透明度
支持设置自定义图片作为窗口背景,让界面更加个性化。
- 触发方向 - 选择屏幕的上/下/左/右边缘
- 触发延迟 - 鼠标停留多久后触发(100-1000ms)
- 触发区域 - 边缘触发的敏感区域大小
- 鼠标离开隐藏 - 鼠标移出窗口后自动隐藏
- 窗口失焦隐藏 - 点击其他窗口后自动隐藏
- 隐藏延迟 - 触发隐藏前的等待时间
- 调整模式 - 点击进入调整模式,可拖动调整窗口位置和大小
- 动画速度 - 窗口显示/隐藏的动画时长(100-500ms)
| 快捷键 | 功能 |
|---|---|
Ctrl+Shift+D |
呼出/隐藏窗口(可自定义) |
Esc |
退出批量选择模式 / 关闭弹窗 |
Ctrl+F |
聚焦搜索框 |
Enter |
执行搜索或选中的建议 |
↑ / ↓ |
导航建议列表 |
Tab |
自动补全选中的建议 |
快捷键支持自定义:在设置面板中点击快捷键输入框,按下新的组合键即可录制。
顶部搜索框不仅支持文件搜索,还集成了强大的多模式智能搜索功能:
直接输入文件名进行搜索:
项目报告.docx # 搜索文件名包含关键词的文件
.pdf # 搜索所有 PDF 文件
系统应用(输入 > 前缀或直接输入命令):
>calc # 打开计算器
>notepad # 打开记事本
cmd # 打开命令提示符(无需前缀)
ps # 打开 PowerShell(无需前缀)
ps+参数 # 打开 PowerShell 并执行命令
cmd+参数 # 打开命令提示符并执行命令
支持的系统命令:calc(计算器)、notepad(记事本)、explorer(资源管理器)、taskmgr(任务管理器)、mspaint(画图)、control(控制面板)、regedit(注册表)、msconfig(系统配置)
网页搜索(无需前缀,直接输入):
bd # 打开百度首页
bd 编程教程 # 用百度搜索"编程教程"
gg React # 用 Google 搜索"React"
bing AI # 用 Bing 搜索"AI"
打开网页(自动识别 URL):
https://github.com # 完整 URL
www.google.com # www 前缀
github.com # 域名
localhost:3000 # 本地服务
快速跳转系统文件夹(支持中英文):
下载 / downloads # 在资源管理器中打开下载文件夹
文档 / documents # 在资源管理器中打开文档文件夹
桌面 / desktop # 在资源管理器中打开桌面
图片 / pictures # 在资源管理器中打开图片文件夹
音乐 / music # 在资源管理器中打开音乐文件夹
视频 / videos # 在资源管理器中打开视频文件夹
打开任意路径:
C:\Windows # 在资源管理器中打开 Windows 目录
D:\Projects # 打开其他盘符路径
- 搜索框会自动识别输入类型,并在左侧显示对应图标:
- 🔍 搜索模式(默认)
- ⚡ 命令模式(蓝色)
- 🌐 导航模式(绿色)
- 输入时会实时显示智能建议,按
↑↓键选择,Enter执行 - 搜索引擎命令会显示动态提示:无参数显示"打开首页",有参数显示"搜索:关键词"
- 所有操作都会自动记录到历史记录,方便快速重复执行
- Tauri 2.x - 跨平台桌面应用框架
- tokio - 异步运行时
- rayon - 数据并行处理
- windows-rs - Windows API 绑定
- dashmap - 并发哈希表
- Vue 3 + TypeScript - 响应式 UI 框架
- Vite - 快速构建工具
- Pinia - 状态管理
- VueUse - 组合式工具库
- Node.js 18+
- Bun 1.0+
- Rust 1.70+
- Windows 10/11
# 安装前端依赖
bun install
# Rust 依赖会在首次运行时自动下载# 启动开发服务器(热重载)
bun run tauri:dev# 构建生产版本
bun run tauri:buildSecondDesk/
├── src/ # Vue 3 前端代码
│ ├── components/ # 组件
│ ├── composables/ # 组合式函数
│ ├── config/ # 配置文件
│ ├── stores/ # Pinia 状态管理
│ ├── styles/ # 样式文件
│ ├── App.vue # 根组件
│ └── main.ts # 入口文件
│
├── src-tauri/ # Rust 后端代码
│ ├── src/
│ │ ├── commands/ # Tauri 命令
│ │ ├── core/ # 核心逻辑
│ │ ├── utils/ # 工具函数
│ │ ├── main.rs # 主程序
│ │ └── lib.rs # 库入口
│ ├── Cargo.toml # Rust 配置
│ └── tauri.conf.json # Tauri 配置
│
├── package.json # 前端配置
├── vite.config.ts # Vite 配置
└── tsconfig.json # TypeScript 配置
| 指标 | 目标值 | 说明 |
|---|---|---|
| 冷启动时间 | <1 秒 | 从点击到可用 |
| 文件扫描 | <100ms | 100 个文件 |
| 图标加载 | <50ms | 单个图标 |
| 内存占用 | <300MB | 正常使用 |
| 窗口动画 | 60fps | 流畅无卡顿 |
| 二进制体积 | <50MB | 安装包大小 |
本项目灵感来源于 @Vicent轩 的 EasyDesktop 项目,在原项目的基础上进行了完全重构:
感谢原作者的创意和灵感!🙏
- 基础文件管理(扫描、打开、重命名、删除)
- 网格/列表视图切换
- 图标大小调节
- 实时搜索功能
- 分类管理系统
- 虚拟文件夹(拖拽创建、收藏、排序)
- 批量选择模式
- 主题系统(5 种配色 + 深浅色模式)
- 毛玻璃效果(4 种预设 + 自定义)
- 自定义背景图片
- 边缘触发系统(4 个方向)
- 全局快捷键
- 自动隐藏模式
- 全屏应用检测
- 窗口位置/大小调整
- 设置面板
- 新手引导流程
- 最近访问记录
- 访问频率统计
- 自动更新功能
- 模糊检索 - 支持拼音、首字母、关键词匹配
- 网页搜索 - 快速调用搜索引擎
- 路径快速打开 - 输入路径直接打开文件夹
- 快捷命令 - 设置快捷打开常用应用
- PowerShell 命令执行
- 网页搜索集成
GPL V3.0 LICENSE
欢迎提交 Issue 和 Pull Request!
当前版本已知问题,计划在后续版本中修复
- 自动隐藏,需要手动触发一下才能恢复?需要探明原因才能修改