dsh-beautify
Manifest valid★ 2DeepSeek Harness Dream Skin,DSH theme plugin: Dream Skin color presets with a settings-page switcher.
@nlqh/dsh-beautify
DSH 社区插件 · 一站式美化包:鲸鱼光标 / 子代理小鲸鱼 / 29 套主题 / 自定义皮肤 / 声音与设置
每个子代理都是一只独立、完整、可互动的小鲸鱼,分布在主鲸鱼周围;主鲸鱼本身可拖动、点击回弹、换皮;29 套主题、10 态光标,所有声音可独立控制。

✨ 核心亮点
🐳 子代理小鲸鱼 — 每只都是完整插件

| 特性 | 说明 |
|---|---|
| 1:1 生命周期 | 每个子代理 = 一份完整小鲸鱼;子代理入场→小鲸鱼出现,离场→小鲸鱼离开(带"呱"声) |
| 错开报到 | 同时到达时逐只跳出来(间隔 ~170ms),每只"叽"一声叫,气泡显示「N 只小小鲸鱼报到」 |
| 点击回弹(q 弹) | 按下瞬间主鲸鱼 / 小小鲸鱼都弹一下(squash & stretch 回弹),配合叫声一按一响;hover 不弹 |
| 摸多了会生气 | 10 秒内连按满 8 次 → 主鲸鱼左右抖动 + 气泡弹出气话(「别摸啦!头要秃了!」),15 秒冷静期内不重复触发 |
| 可单独拖动 | 按住任意一只拖到屏幕任意位置,自动吸附墙壁(贴左/右/上/下) |
| 可单独摸头 | 鼠标放上去立刻变系统手型(grab),按下/拖动有叫声 |
| 碰撞体积 | 松手时与主鲸鱼/其他小鲸鱼重叠自动沿最小位移方向弹开,永不重叠 |
| 手动锁定 | 拖过的位置保持不动,主鲸鱼移动时其他自动重排不影响它 |
| 独立声音开关 | 菜单里可单独关掉子代理叫声,不影响主鲸鱼 |
| 点击 ≠ 拖动 | "摸一下"不会触发吸附/锁定(位移 < 5px 视为点击) |
| 小巧落地 | 小鲸鱼为完整同款图但尺寸小巧(主鲸鱼 30%,64–128px),首次出现原地淡入落地,不浮空 |
🖱️ 鲸鱼光标 — 10 种状态逐态可控
10 种状态:默认箭头 / 链接手型 / 文本 / 忙碌 / 禁止 / 十字准星 / 背景 / 画笔 / 帮助 / 拖动
- 拖动默认用系统原光标(grabbing 手感最自然)
- 摸头(hover 主鲸鱼)→ 立刻恢复系统手型
- 状态开关里可单独把每态切回皮肤
- 自定义皮肤:可上传 10 张图分别覆盖各态
🎨 29 套主题(已瘦身)
悟空 / 晨雾山水 / 夕港 / 橘子洲头 / 人民的 AI / 芙宁娜 / Reze / Firefly / DeepSeek / miku / 女仆系列 / 云鲸纸面 / 大肥鱼 / claude-eva / dream-* ……
- 内置 + 暗/亮双套
- WE(Wallpaper Engine)桥接:装本机 WE 后,用各自电脑的 WE 壁纸,不占包体积。扫描本机 79+ 张壁纸(web HTML/JS 动画 + 视频),设置 → 外观 → 壁纸引擎一键切换、随时刷新。壁纸模式下自动挂起当前主题(深海女仆工坊的色板与装饰一并隐藏),界面回归 dsh 默认观感、壁纸全屏干净显示,关闭壁纸后主题完整还原;配暗化 / 模糊 / 边框 / 玻璃 4 个滑块微调
- 自定义主题:可上传壁纸+调 7 个参数


🦢 深海女仆工坊(默认主题 · vendored)
默认主题:新装 / 未设置过主题时,直接启用深海女仆工坊。

海军蓝 + 金色调色板,水墨山水背景 + 候鸟女仆角色,提供暗色 / 亮色两套皮肤。
- 聊天界面女仆大尺寸清晰显示(96vh),输入区/操作按钮始终浮在女仆之上不挡操作
- 新会话 / 新绘画等非聊天视图女仆固定在背景层(z=2),让位给弹窗与输入区;轨迹视图不显示女仆(时间线不被大立绘遮挡)
- 深浅两档是两套底图:浅色档是瓷白纸面 + 宫殿底图,深色档换成夜宫图(同一幅画的夜版),且深色档的可读性遮罩用夜底色而不是纸白 —— 否则夜版会被洗成灰蓝中调,浅墨文字(回合尾的用时 / 时间戳、上下文占用百分比)会掉到 1.4:1
- 深色档下所有元信息墨色都按"夜海军蓝底"重校过:
label-tertiary由#96a6c9抬到#9dabce(最窄列里实测 4.41 → 4.61+) - 框艺只属于侧栏那颗"设置"按钮:设置弹窗里带「选择」的两行(壁纸主题 / 壁纸引擎)曾被主题的触发器样式一起套住 —— 整行被金色边框图(
border-image的fill)画成藏蓝描金、字体被换成衬线、行高抬到 50px、行自身 hover 底被压掉;现在这两行回到插件自己的样式,与同列其他行一致 - 插件自己的弹窗不再被主题的宿主规则误套:给宿主设置弹窗写的 5 条浮层规则(女仆调色板 token、金色描边、主题阴影、遮罩改海军蓝)选择器是泛化的
[role='dialog'][aria-modal='true'],而插件自己的Modal恰好是同一个组合 —— 它 portal 到body、不在 sidebar DOM 里(实测insideSettingsSlot=false),所以那些规则对它是纯误伤:实测插件弹窗子树有 56 个元素的 computed 被改(边框被换成暖金、插件作者写死的两条阴影被替换成主题阴影、瓦片底色被换成主题奶油、遮罩从中性黑变成海军蓝);现在插件Modal根节点带稳定标记data-dshw-surface,那 5 条规则用:not(标记, 标记 *)精确排除,宿主设置弹窗的调色板与装饰原样保留


🐋 挂件菜单与气泡(上游 v0.2.8 已融合)
- 随机台词:点击气泡切换随机台词段(峰谷时段 / 今日已用 / 卖萌吐槽 / rua 动图),再点关闭,每段完整停留 5 秒
- 每轮对话消耗:每轮对话结束自动弹出本轮消耗金额(真实 usage 换算,非估算),可开关、自定义自动关闭秒数
- 峰谷文案:默认 / 梁文峰谷 / !?强强?! 三种提示文案可选
- v4-pro 3 倍价:按官方 2026-08 定价换算(vision-exp 与 flash 同价)
- 滚动条避让:挂件右侧可按设定像素避开滚动条(默认贴边)
- 锚点位置记忆:记住相对边框距离,窗口缩放后不悬空、能吸回原位
- 多币种修复:余额接口多币种顺序不定时优先取 CNY 正余额
- 并发会话分桶:主会话与子代理并行时每轮消耗按会话分桶,不串账
🔊 声音系统
| 声音 | 开关 |
|---|---|
| 主鲸鱼点击/拖动 press / release | 总音效开关 + 音量 |
| 子代理点击/报到/离开 cry | 子代理声音独立开关 |
| 用量气泡(令牌模式) | 用量模式切换 |
| 4 个音效包可选 | 小黄鸭 / fx1(菜单下拉) |
⚙️ 设置体验
- 设置弹窗跟随主题自身明暗(不是宿主偏好),暗色主题下弹窗也是深色
- 键盘焦点环不再外泄成全局样式:插件里一条未作用域的
:focus-visible会变成全应用规则,把宿主原生控件的默认焦点环也换掉(实测 32 个键盘可达元素里 28 个被换);现已收进插件自己的按钮 / 分段条 / 关闭按钮,宿主控件恢复原生环,插件控件保留品牌色环 - 焦点环补齐:分组标题、磁贴、高级开关等面板自有可点表面在作用域收紧后不会退回系统黑环
- 外观页两处视觉修正:分组右侧的计数胶囊原与卡面同色被画平(读起来就是裸文字),改用可辨的悬停层底色;壁纸瓦片圆角与主题瓦片统一为 10px
- 修掉 3 处拼错的样式变量(
--dsw-alias-brand并不存在,浏览器静默回退成离线色值),改用真实的brand-primary - 鼠标光标开关修复:关闭后再次打开,皮肤一定可见(自动恢复 default 态)
- 拖动光标大小 24–64px
📸 截图场景说明
| 文件 | 场景 |
|---|---|
01-three-babies.png | 3 只子代理到达 → 报到气泡 + 竖排小鲸鱼 |
04-five-babies.png | 5 只子代理沿右侧竖排报到,气泡显示「5 只小小鲸鱼报到」,主鲸鱼在右下角 |
05-we-wallpaper.png | WE 壁纸生效:冲田总司樱花壁纸全屏,主题样式挂起、UI 毛玻璃穿透显示 |
06-we-picker.png | WE 壁纸选择器:扫描本机 Wallpaper Engine 壁纸缩略图网格 |
07-maid-atelier.png | 默认主题深海女仆工坊:左右双女仆立绘 + 主鲸鱼 + 余额气泡 |
08-maid-settings-light.png | 设置弹窗(浅色档)区域裁图:编号导航 + 外观/主题面板 |
09-maid-settings-dark.png | 同一弹窗的深色档:弹窗跟随主题自身明暗,不跟宿主 |
10-maid-sidebar.png | 会话侧栏竖条:海军蓝底 + 金边 + 会话行 / 工作区 |
11-maid-chat-light.png | 聊天态浅色档整屏:瓷白纸面 + 宫殿底图 + 双女仆立绘 |
12-maid-chat-dark.png | 聊天态深色档整屏:夜宫图 + 夜底 scrim + 深色玻璃卡 |
13-appearance-light.png | 设置 → 外观(浅色档)整屏:明暗模式 / 纯色主题 / 主题计数胶囊与「选择」按钮 / 壁纸引擎入口 |
14-appearance-dark.png | 同一页的深色档:弹窗跟随主题自身明暗,胶囊与行底在夜底上同样可辨 |
🔑 Key References(关键引用)
发布到 DSH Hub 需要这些文件齐全,DSH Hub 在安装时会读取它们:
| 引用 | 位置 | 作用 |
|---|---|---|
| 包清单 | package.json | name: @nlqh/dsh-beautify、dsh.bundle.patch 声明 |
| 发布协议 | cordis.patch.yml | 顶层 YAML 数组,insert 声明本包要注入的 loader 条目(name: @nlqh/dsh-beautify) |
| 服务端入口 | lib/index.js | Cordis loader 看到的服务端插件实现(路由、loader) |
| 浏览器端 | lib/client.js | 浏览器端 apply 入口(注入主题 / 光标 / 设置 / 子代理监听) |
| 鲸鱼脚本 | src/whale-widget.js | 主鲸鱼 + 小鲸鱼 widget(拖动、吸附、碰撞、气泡、声音) |
| 主题 | src/client/themes.ts | 29 套 DreamSkin 预设 |
| 壁纸 | src/client/wallpapers.ts | 内嵌壁纸 base64(瘦身后 ~1.7MB) |
| 光标 | src/client/cursor-images.ts | 10 态光标图 |
| 声音 | assets/Ya*.mp3 / assets/D*.mp3 | 主鲸鱼(Ya1/Ya2)+ 子代理(D1/D2)音效 |
| 角色图 | assets/DSniang1.png | 主鲸鱼 + baby 共用图(透明背景、完整角色) |
发布校验:DSH Hub 读 dsh.bundle.patch → 解析 cordis.patch.yml(entryListSchema:顶层数组)→ 校验 insert[].name 与 package.json#name 一致。
🚀 安装
DSH Hub 搜索 @nlqh/dsh-beautify → 安装即用,无需配置。
兼容版本: 本版本面向 DSH 0.1.6-alpha.2 及以后(清单里声明为 engines.dsh: ">=0.1.6-alpha.2")。
alpha.2 与更早的 0.1.0-rc.8 的客户端插件契约不同,同一份构建无法同时兼容:
| rc.8 | alpha.2(本版) | |
|---|---|---|
| store | @deepseek-ai/dsh-client-runtime | @deepseek-ai/dsh-client-store |
ClientContext | dsh-client-runtime/client | @deepseek-ai/cordis |
| renderer 类型合并 | 来自 ui-slots | @deepseek-ai/dsh-client-ui-renderer/client |
v0.3.0 及更早是 rc.8 血统;v0.4.0 起改为 alpha.2 血统。
安装后:
- 屏幕右下角出现主鲸鱼
- 启动子代理 → 自动出现对应小鲸鱼
- 设置 → 外观 → 主题/光标/声音
🛠️ 本地开发
git clone https://github.com/nlqh7/dsh-beautify.git
cd dsh-beautify
pnpm install
pnpm dsh web # 需要在 DSH harness monorepo 内
小贴士:WorkBuddy 环境下 git push 会被 helper-selector 卡住,用环境变量 GITHUB_TOKEN + URL 内嵌绕过:
git -c credential.helper= push "https://x-access-token:${GITHUB_TOKEN}@github.com/nlqh7/dsh-beautify.git" master
📜 License & Credits
License: CC BY-NC-SA 4.0
Credits:
- MeteorNOX/DeepSeek-Balance-Whale-Widget — 余额显示与鲸鱼 UI 灵感
- zhu1090093659/dsh-web-ui — 深海女仆工坊皮肤(vendored, CC BY-NC-SA)
- Aibie07/whale-girl-desktop-pet — 反应 GIF 播放机制参考
- 角色立绘:DSniang1.png(CC BY-NC-SA)
assets/reactions/*.gif:来自 B 站 UP 主「赤风RED」的「蓝色大肥鱼」表情包,版权归原作者所有,仅随本插件作非商业展示用途;如需另行使用请获取 UP 主本人授权- DSH 社区 @nlqh7 制作维护
Comments
Loading…