我的第一个 vibe coding 项目
项目地址:https://github.com/xiaochengzina/Driftlet
这是一个将网页窗口做成桌面小组件的项目。参考的是Rainmeter的设计理念,因为Rainmeter出来的早太老了,皮肤绘制效果太差了,不仅开发者限制多,不能做复杂效果,用户体验更是灾难,部分皮肤需要用户自己修改代码,自带劝退属性,门槛高,可能这也是如今桌面小组件发展不起来的原因之一吧。而且目前同类网页小组件的软件几乎没有,为解决这些痛点所以就打算自已做了。
其实我早就想做了,但苦于技术力有限,Rust、Tauri、win32api 这些光靠我自己学,感觉这辈子不可能做出来。不过现在好时代来临力,vibe coding 时代只要有想法,ai就能实现了。
项目使用kimi k3模型,仅用时20天就完成了
本项目与 Rainmeter 的区别:
| 对比维度 | Rainmeter | Driftlet |
|---|---|---|
| 定位 | 老牌 Windows 桌面美化与系统监控工具 | 新一代基于 Web 技术的桌面皮肤管理器 |
| 技术架构 | C++ 原生应用,自研渲染引擎 | Tauri 2 (Rust) + Vite + 原生 JavaScript,基于 WebView2 |
| 皮肤技术 | 专有 INI 配置文件 + Lua 脚本 + 图片资源 | 标准 Web 技术(HTML / CSS / JS),网页即皮肤 |
| 开发门槛 | 需学习 Rainmeter 特有的 INI 语法和度量单位系统 | 前端开发者零门槛,直接写网页;非开发者可复用示例 |
| 皮肤包格式 | .rmskin | .dskin(本质为 zip,skin.json 在根目录) |
| 皮肤安装方式 | 双击 .rmskin 安装,或手动复制到 Skins 目录 | 双击 .dskin 唤起安装引导页,或管理器内添加 |
| 皮肤生态 | 非常成熟,社区庞大,皮肤数量成千上万,涵盖各种风格 | 新兴项目,自带 4 款示例皮肤,生态尚在建设中 |
| 系统监控 | 原生内置丰富的系统信息度量(CPU、内存、磁盘、网络、电池等) | 通过后端命令 get_system_stats 等接口提供系统信息,需皮肤调用 |
| 窗口特性 | 支持置顶、拖动、透明度、点击穿透 | 支持置顶 / 贴桌面双态、无边框、透明、鼠标穿透、边缘吸附、缩放(50%–200%) |
| 配置自定义 | 需手动编辑 INI 文件,或通过皮肤作者提供的设置界面 | skin.json 声明 20 种控件类型,配置面板自动生成,支持分组 |
| 安全模型 | 皮肤拥有较高系统访问权限,无显式权限声明机制 | 权限声明制:敏感能力(注册表/Shell/系统控制/剪贴板/麦克风)需在 skin.json 声明,安装时分级标注(高危/中危);文件沙箱隔离;设置值跨皮肤隔离 |
| 皮肤热重载 | 保存后需手动刷新或重启 Rainmeter | 开发模式下保存文件后自动重载(防抖 300ms),可开关 |
| 布局管理 | 支持保存/加载布局 | 支持一键导出/导入全部配置与皮肤(单个 zip 备份文件),适合换机与分享 |
| 全局快捷键 | 可通过皮肤或插件自定义 | 内置一键隐藏/显示全部皮肤(默认 Ctrl+Shift+Alt+D),可修改或禁用 |
| 资源占用 | 极轻量,主程序约 30MB 内存 | 基于 WebView2,每个皮肤窗口独立渲染,资源占用高于 Rainmeter (100~300MB 内存) |
| 平台支持 | Windows XP / 7 / 8 / 10 / 11(32/64 位) | 仅 Windows 10 / 11(依赖 Win32 API 与 WebView2) |
| 更新维护 | 持续更新超过 15 年,非常稳定 | 新兴项目,活跃开发中,功能迭代快 |
| 适合人群 | 追求极致轻量、喜欢折腾 INI 配置、依赖成熟生态的用户 | 熟悉前端开发、希望用现代 Web 技术快速开发桌面组件的用户 |
目前有两个问题比较重要,生态 与 资源占用
生态还算好解决,现在都是 vibe coding 时代了,开发文档扔给ai,做个皮肤还是很快的。
但最主要问题就是内存占用了,但我认为技术架构很正确。只是发布时期有点尴尬了,遇到了内存暴涨。本来按照正常发展进程,现在的电脑应该是人均32G以上吧。但事与愿违,内存占用这个问题可能会劝退很多人。。。
还是先做着玩吧。
我的第一个 vibe coding 项目
https://xcz.me/archives/254/