前言¶
在 DSH Web UI 里长时间写代码或调智能体时,桌面往往只有聊天和工具面板,缺少一点可随手互动的界面元素。纯 CSS 循环动画的「假物理」桌宠容易显得生硬,又会占满整块区域挡住下面的应用。下面介绍社区插件 dsh-basketball-pet(维护者 2095945715a-source):在 shell.overlay 层挂一只带真实碰撞与投掷手感的篮球,篮筐和球箱可拖、可投、可记分,且除球与控件外其余区域点击穿透,不挡工作区操作。
这是什么¶
dsh-basketball-pet 是面向 DSH Web UI 的客户端插件,分类上属于趣味换装类桌宠/小玩具。它在工作区上方叠加篮筐、球箱和一颗篮球:重力、空气阻力、旋转、滚动摩擦、撞墙回弹以及落地时的 squash-and-stretch 由插件自管物理循环驱动,而不是 CSS 动画循环。每日进球数按日历日统计,午夜归零;篮筐与球箱位置在刷新后仍会记住。插件不发起网络请求,除分数与两处布局外不向 localStorage 写入其它数据。
核心功能¶
物理与交互¶
- 弹跳篮球:重力约
2400 px/s²,地面恢复系数0.78,含空气阻力与旋转;撞击会压缩,快速下落会拉伸。 - 可拖篮筐:玻璃篮板、支架、渐变篮圈与菱形篮网;从篮圈、篮板或支架拖动即可移动,记分牌跟随。
- 可拖球箱:球可在箱内静置;拖动带球的球箱时球一起移动。
- 甩投:约 110 ms 的指针采样换算为出手速度(上限约
2600 px/s),可平投、高抛或打板。 - 得分:球从篮圈平面下方、向下运动且落在内圈间隙内时 +1,伴随篮网摆动、
+1弹出与记分牌 bump;篮圈与篮板有真实反弹。 - 每日记分:按日历日存储,即使页面不关闭,过了午夜也会回到 0。
- 布局记忆:篮筐与球箱位置在重载后保留(键名
dsh-basketball-pet:layout:v1)。 - 减少动效:在
prefers-reduced-motion下不再自行扰动,仍响应用户输入。
实现要点(便于评估)¶
单文件客户端插件 client.js,无构建步骤、无运行时依赖。在 shell.overlay 槽位注册一个组件,用独立的 requestAnimationFrame 循环直接写 transform,避免每帧触发 React 重渲染。物理常数包括 GRAVITY 2400、FLOOR_REST 0.78、WALL_REST 0.84、篮圈 1.72、篮板 0.62、空气阻力 0.1;碰撞含地面、两侧墙、顶、篮圈两端(小圆)与篮板边。分数存储键为 dsh-basketball-pet:score:v1。
兼容环境¶
需要带 shell.overlay 槽位及 @deepseek-ai/dsh-client-ui-slots 服务的 DSH Web UI;适用于基于 Chromium / Electron / WebKit 的 DSH 桌面构建,不依赖 Node 或原生代码。许可证为 MIT(资料中 package.json 版本 1.3.1)。
安装与启用¶
可从 DSH 插件市场安装,或在 shell 中执行(命令以仓库 README 为准):
dsh plugin add dsh-basketball-pet
# if your dsh asks for a target profile explicitly:
dsh plugin --profile desktop add dsh-basketball-pet
若使用本地发布包:
dsh plugin add ./dsh-basketball-pet-1.3.0.tgz
若从本仓库源码添加,README 给出的形式为:
dsh plugin add github:<owner>/dsh-basketball-pet
安装后刷新页面(Ctrl+R),桌宠会挂载到 Web UI 的 shell.overlay 槽位。
典型用法¶
| 操作 | 效果 |
|---|---|
| 点击球箱 | 球弹出 |
| 拖动球后松开 | 按甩投速度飞出 |
| 点击球(不拖动) | 原地小跳 |
| 拖动篮圈 / 篮板 / 支架 | 移动篮筐,记分牌跟随 |
| 拖动球箱 | 移动球箱;箱内球一起移动 |
| 把球放到球箱上 | 收球入箱 |
| 把球投进篮圈 | +1 |
overlay 为点击穿透:只有球、篮筐和球箱接收指针事件,其余点击会落到下层应用。
适用场景与注意¶
适合希望在 DSH 桌面环境里放一只不挡操作、又能随手投几球的小玩具的用户。插件以当前 dsh 进程权限在浏览器侧运行;安装前建议在 GitHub 仓库 阅读源码与 MIT 许可证,确认符合你的安全与合规要求。DSH 生态强调「一切皆插件」;社区目录站点 SkillHub 插件页 为独立收录,与 DeepSeek / 幻方无官方从属关系,不要将其等同于官方应用商店。
结尾¶
dsh-basketball-pet 把可拖篮筐、球箱与带物理的投篮记分叠在 shell.overlay 上,兼顾穿透点击与每日记分,适合作为 DSH Web UI 里的轻量桌宠。目录页:https://www.skillhub.cn/plugins/2095945715a-source/dsh-basketball-pet;源码与说明:https://github.com/2095945715a-source/dsh-basketball-pet。