一个轻量的 Windows 桌面收纳工具,产品形态参考 360 桌面助手和腾讯电脑管家桌面整理:它不是一块大仪表盘,而是直接贴在桌面层上的多个半透明收纳盒。普通应用窗口会盖住收纳盒,回到桌面即可操作。
系统要求:Windows 10 或 Windows 11、.NET Framework 4.8、普通用户权限。
- 从 GitHub Releases 下载 Windows ZIP。
- 解压整个文件夹,不要只单独拖出 EXE。
- 双击
启动拾光桌面.cmd,或运行dist\DesktopNest.exe。
当前发布包未进行代码签名。Windows SmartScreen、Smart App Control、WDAC 或企业策略可能阻止运行;请不要通过关闭系统安全功能来强行绕过。下载页同时提供 SHA-256 校验文件。
首次运行会询问是否启用“桌面图标接管”。接管只隐藏 Explorer 自带的图标层,然后由收纳盒显示桌面项目;不会移动、重命名或删除任何文件,正常退出时会恢复系统图标。接管前会在本地写入恢复租约,若上次异常退出,下次启动会先恢复再继续。通知区域菜单中也有“恢复系统桌面图标”。若仍未恢复,可运行:
.\dist\DesktopNest.exe --repair-desktop首次正常运行默认写入当前用户的开机启动项,不需要管理员权限;可在设置或通知区域菜单中关闭。
- 应用快捷方式可按语义拆成浏览器、沟通与社交、游戏与平台、创意与开发、影音娱乐、办公与学习、系统与工具;普通文件保留文件夹、文档、图片与影音、压缩包、其它等类型
- 只为实际存在内容的类别创建小窗口;每个收纳盒可自由拖动、右下角隐形热区缩放、锁定、折叠和重命名
- 拖动结束时自动吸附屏幕边缘或其它盒子的边缘,并保持统一间距
- 分辨率、缩放比例或主显示器变化后会合并系统事件并按实际窗口像素尺寸做两次有限校准;标题栏的网格图标、盒子右键菜单和托盘菜单也都可手动排成同行同列对齐、互不重叠的均衡网格
- 普通收纳盒与“时间与系统”的标题栏操作统一使用图形按钮,并保留悬停说明和无障碍名称;普通收纳盒的按钮仅在鼠标悬停时显示,右键盒子可立即整理、打开设置或退出
- 图标使用真实 Shell 的 256 像素高清源并向下缩放;遇到内容缩在大透明画布里的特殊快捷方式会先按有效图案裁去透明留白,避免图标异常细小;双击打开,右键可定位文件或手动换到另一个盒子
- 独立的小工具盒显示当前时间、日期、音量和亮度滑动条
- 收纳盒与工具盒处于桌面层,不占任务栏;点击任务栏“显示桌面”或使用 Win+D 时仍会留在桌面,恢复应用后不会盖住应用窗口
- 托盘菜单可一键显示/隐藏全部盒子、恢复系统图标和修改启动设置
收纳是虚拟布局。手动把图标换到其它盒子只更新本地布局记录,不改变文件路径。
常驻阶段不运行 AI 进程,也不轮询桌面:
FileSystemWatcher只监听顶层文件/目录的新增、删除和重命名,700 ms 合并同一批事件。- 普通内容写入、大小变化和属性变化不会唤醒整理逻辑。
- 扩展名明确的项目先由本地规则直接分类。
- 首次启用或分类架构升级时,只对尚无缓存的未知类型和快捷方式批量调用一次 AI;结果持久化,后续开机不重复分析。
- 日常只分析新出现或更名且尚无缓存的低置信度项目;普通文件夹直接归入文件夹盒,删除项目只更新界面、不调用 AI。
AI 请求只包含文件名、扩展名和“是否为文件夹”,不读取或上传文件内容、截图、图标或完整本地路径。模型输出只能从程序限定的语义/文件类型盒子 ID 中选择,不能任意创建名称或执行文件操作;手动分类的优先级高于 AI。
默认模型:
- OpenAI:
gpt-5.6-luna(reasoning_effort: none) - DeepSeek:
deepseek-v4-flash(关闭 thinking)
两者都可在设置里修改。没有密钥时,程序完全使用本地规则。
不要把 API 密钥发到聊天、写进源码或 settings.xml。
推荐在通知区域右键“拾光桌面”→“设置…”→“AI 自动归类”中,用遮罩输入框保存。密钥写入当前 Windows 用户的凭据管理器,设置文件只保存提供方和模型名。
如果更方便从项目目录配置,可复制根目录的 API_KEY_IMPORT.local.example 为 API_KEY_IMPORT.local.txt:完全退出程序,在对应等号后粘贴密钥,保存并关闭文本编辑器,然后立即重新启动。程序会独占读取这个根目录文件,把密钥导入 Windows 凭据管理器,并只清空成功导入的对应值;失败项会保留并显示不含密钥的提示。API_KEY_IMPORT.local.txt 已加入 .gitignore,但 .gitignore 不能阻止 Syncthing;由于项目目录可能被同步,请不要把填有密钥的文件长期留在磁盘上。文件清空也不等同于磁盘上的物理安全擦除。
也可以先在 Windows 用户环境变量中配置,环境变量优先于凭据管理器:
OPENAI_API_KEY
DEEPSEEK_API_KEY
建议使用独立项目密钥,并在服务商控制台设置较小的月度预算与用量提醒。
内置屏幕优先使用 Windows WMI;外接显示器尝试 DDC/CI。亮度只在工具盒加载和用户拖动时读取/写入,不做常驻轮询。若外接屏不响应,请在显示器菜单中启用 DDC/CI;不支持时滑块会显示不可用,不影响音量、时钟或整理功能。
项目使用系统自带的 .NET Framework 4.8 C# 编译器,无需安装 Visual Studio:
.\build.ps1 -Configuration Release
.\test.ps1
# 启动正式程序后,真实触发任务栏“显示桌面”按钮并往返验证 10 次
.\test-window-behavior.ps1
# 使用隔离目录测试,不写开机项、不接管系统桌面图标
.\dist\DesktopNest.exe --desktop "C:\path\to\sample-desktop" --no-startup --qa
# 生成 GitHub Release ZIP 与 SHA-256 文件
.\package-release.ps1 -Version 2.0.0自动测试覆盖语义分类协议、标题栏图形按钮与无障碍语义、缓存升级、窗口吸附、跨分辨率自适应排列、不可行的小屏网格保护、高清 Shell 图标源、透明缩放热区、文件分类、创建/删除事件、内容写入不唤醒、系统音量/亮度兼容和临时开机项完整清理。窗口层集成测试会先做 3 次快速反转,再完整往返 10 次;它记录全部收纳盒的准确窗口句柄,轮换激活每一个盒子,并持续验证:显示桌面期间盒子可见且不抢焦点,恢复后所有普通应用都位于盒子上方,盒子没有进入 topmost、被最小化、被 DWM 隐藏或保留 Explorer owner。若当前 Windows 吞掉快速的第二次任务栏自动化调用,测试会单独告警并延迟恢复,不会把系统侧未响应误判为收纳盒故障。
- 在通知区域右键“拾光桌面”,关闭“开机启动”,然后退出程序。
- 确认 Explorer 的桌面图标已经恢复;如未恢复,运行
dist\DesktopNest.exe --repair-desktop。 - 删除解压得到的应用文件夹。
应用不需要管理员权限,也不会安装系统服务。用户设置和分类缓存位于当前 Windows 用户的本地应用数据目录;保存过的 AI 密钥位于 Windows 凭据管理器,可在应用设置中删除。
当前仓库未附带开源许可证,不视为授予复制、修改或再分发源码的许可。安全问题请按 SECURITY.md 使用 GitHub 私密漏洞报告入口提交。
正式可执行文件仍是 dist\DesktopNest.exe。公开 Release 目前为未签名构建;后续取得受信任的代码签名证书后,应在打包前签名并重新生成 SHA-256。