Roach on Desk
一只运行在 Windows 桌面的离线写实蟑螂桌宠。它不连接 Agent、模型、账号或网络服务,也不会上传任何数据。

功能
桌面蟑螂
- 使用透明 APNG 素材,以俯视视角呈现;正常显示尺寸固定为 100 × 150 px。
- 自动在当前屏幕工作区域内缓慢爬行,使用八相位步态;每次短暂爬行后会停下来休息或用前足整理触须,鼠标移到蟑螂本体上才会继续活动。
- 左键可抓住并拖拽,松开后恢复活动;快速连点会触发挣扎动作。
- 手动拖到屏幕边缘后松开,会藏起主体、仅露出触须;点击触须即可重新出现。
- 不包含鼠标靠近逃跑、鼠标跟随、亲密度或系统事件联动功能。
文件回收站
- 可从资源管理器拖入文件或文件夹。
- 会打开独立确认窗口;确认后文件被移动至应用自己的回收站,而非直接永久删除。
- 可在设置面板的「回收站」中恢复文件;清空回收站前会再次确认。
设置与托盘
- 设置面板为独立、可拖动窗口,不会改变蟑螂尺寸或位置。
- 可开关:自动游走、可拖拽、连点挣扎、边缘收边、始终置顶。
- 系统托盘图标支持打开设置与退出桌宠。
操作
| 操作 | 效果 |
|---|---|
| 左键按住并拖动 | 抓住、拖动蟑螂 |
| 快速连点 | 触发挣扎 |
| 拖到屏幕边缘并松开 | 躲进边缘,只露触须 |
| 点击触须 | 重新出现 |
| 拖入文件或文件夹 | 打开独立回收确认窗口 |
| 右键托盘图标 | 打开设置或退出 |
开发运行
需要已安装 Node.js 和 npm。
npm install
npm start
验证
npm test
npm run lint
测试覆盖运动状态、边缘收边、视觉素材、托盘菜单和运行时契约;源码检查会确认应用不发起网络请求。
打包
仅在需要发布时执行:
npm run make
便携版输出至 dist/Roach-on-Desk/Roach on Desk.exe。若网络环境允许下载 electron-builder 的 NSIS 依赖,可运行 npm run makeInstaller 生成安装包。
项目结构
src/
main.js 主进程:窗口、托盘和 IPC
preload.js 安全桥接
recycle-bin.js 应用回收站:回收、恢复、清空
renderer/
app.js 蟑螂运动、拖拽与文件投放
pet-controller.mjs 运动与交互状态机
pet-view.mjs APNG 与触须视觉切换
settings.* 独立设置窗口
confirm.* 独立文件回收确认窗口
assets/roach-topdown/ 运行时蟑螂素材与主题
tests/ 自动化测试
scripts/ 校验和便携版构建脚本