dsh-desktop-pet
No description
- Stars
- 2
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
奶龙桌宠 🐲
一个会「盯人」的小桌宠:屏幕右下角的 Q 版奶龙(金黄色圆滚滚的小龙,参考官方 「黄皮肤、duangduang 大肚肚」形象),眼神会跟着鼠标箭头走。 按住可以把它拖到任意位置,点它一下还会冒出一句奶声奶气的吐槽。
✨ 功能
- 眼神跟随:黑色圆眼睛 + 白色高光整体朝鼠标方向位移(
requestAnimationFrame每帧驱动,流畅不卡顿) - 右下角驻留:默认固定屏幕右下角,可直接拖动到任意位置(自动吸附在视口内)
- 点击互动:点一下会弹出随机气泡台词,2.4 秒后自动消失
- 待机动画:上下浮动呼吸 + 周期性眨眼
- 纯 SVG 绘制:无任何图片资源,代码即形象
🚀 两种使用方式
方式一:作为 DSH 动态插件(推荐)
这是本项目的原始形态:一个 DeepSeek Harness 动态 Cordis 插件(仅 Client 半区),渲染在
shell.overlay 全屏浮层槽位。
- 在 DSH 会话中调用
cordis_define,把plugin/client.js中return { ... }的函数体粘贴到code.client字段(idPrefix 建议naidr)。 - 调用
cordis_run激活,在浏览器里批准后,屏幕右下角就会出现奶龙。
说明:动态插件是会话级、进程内的,停止或重启会话后需要重新激活。
方式二:独立网页 Demo(无需任何依赖)
直接用浏览器打开 standalone/index.html,纯 HTML/CSS/JS,
双击即可体验完整功能。
📁 项目结构
dsh-desktop-pet/
├── README.md # 本文件
├── plugin/
│ └── client.js # DSH 动态插件 Client 半区源码
└── standalone/
└── index.html # 零依赖独立 Demo(可直接浏览器打开)
🛠️ 技术要点
- 插件仅 Client 半区:
inject: ['timer']声明计时服务,气泡自动消失用ctx.timeout - 眼神跟随通过
document.addEventListener('mousemove')+ rAF 循环直接改 SVGtransform(整眼位移 + 高光位移),不触发 React 重渲染 - 拖动用 Pointer Events +
setPointerCapture,并区分「拖动」与「点击」 - 样式经
styles.insert注入,随插件卸载自动清理