姬子的星月夜(Himeko's Starry Night)
仅在0.2.1-rc2测试通过!!!其他版本慎重!!!
DeepSeek Harness UI 的主题插件:星云壁纸 + 莫奈取色 + 液态玻璃。

效果
- 星云画作(已裁掉 UID 水印)铺满整个窗口;UI 面板半透明,壁纸色透上来。
- 莫奈取色:深靛蓝(
rgba(12,14,44)系)+ 长春花紫强调色,发送按钮、主按钮、链接、状态色统一。 - 暗色主题锁定,设置里的浅色/暗色选择已隐藏。
- 液态玻璃:输入框、消息气泡、新会话按钮、二级菜单(账号/权限/模型/命令/更多/智能体团队)、 左侧栏行与当前对话、设置导航与设置弹窗、代码块、右侧栏入口卡片与图标。
- 全屏右侧栏:背景重模糊,输入框与用量条压在模糊层下。
- 设置弹窗保持约 90% 不透明以保证可读性。
- Windows 标题栏:最小化 / 窗口化 / 关闭三枚原生按钮的底色改为透明,直接浮在壁纸上(不再出现 一条与旁边不同色的暗带);「应用 / 编辑」按钮的悬停与展开态使用同一套玻璃高亮。
- 「应用 / 编辑」下拉改为插件自绘的液态玻璃菜单(与应用内其它二级菜单同一材质), 编辑菜单的撤销 / 重做 / 剪切 / 复制 / 粘贴 / 删除 / 全选均可用,不再出现系统原生灰菜单。
- 设置里新增「关于」「退出」两栏(排在 Agent 预设下方):「关于」展示版本、主题与壁纸信息, 并提供检查更新;「退出」是真正退出应用的入口(会关闭整个 DeepSeek Harness)。
- 启动屏:宿主端通过
webserver/index-inject注入一层[data-dsh-boot]作用域的样式, 启动页不再是纯黑 HARNESS:星云壁纸 + 液态玻璃胶囊 + 官方 deepseek HARNESS 标志 + 鲸鱼尾巴 加载动画 + 「正在点亮星月夜…」+ 底部主题落款。dsh web首帧即生效;桌面端在下一次启动时 由 boot payload 注入(应用启动时采集,装好后重启一次即可看到)。 - 「ask_user_question」选择窗:原生卡片用的是被主题调薄的 input 底色,看起来像壁纸上挖了个洞; 现在改成和设置弹窗同款的深蓝液态玻璃(42% 不透明 + 40px 模糊,按实际观感调过几轮), 选项行 / 编号 / 输入框 / 跳过 / 提交按钮统一成主题材质。
- 加载指示器统一为鲸鱼尾巴:从
dsh-client-ui-chat的运行时样式里取出官方 28×28 动画 APNG, 内联进插件并替换全部转圈 loader(附件上传、设置-账号、设置-通用更新指示、CoT 翻译、 附件缩略图,以及启动屏)。prefers-reduced-motion下自动退回同一只尾巴的静态 SVG。 - 「插件」页与「自动化任务」页:行 hover、筛选 pill、搜索框和按钮统一成液态玻璃材质 (按钮保留原品牌色,只加玻璃高光/rim;行高光换成菜单同款渐变玻璃)。
- 会话里的定时任务卡片(
schedule_create的结果卡):宿主这张卡自己写死了中性灰填充,不吃主题 token,所以此前只有它还是原生灰块;现在卡片本体、悬停态和左侧时钟图标块都并入同一套深蓝液态玻璃。 - 插件安装弹窗:「安装源」下拉是一整块玻璃面板,选项行保持透明扁平,不再逐行叠玻璃 (此前每一行都被当成独立面板,层叠透字);「自定义地址」输入框与提示文字沿用主题材质。
- 输入框下方的用量读数(轮次 / tok/s / tok 总量 / 缓存命中 / 上下文百分比):原本直接压在 壁纸上,亮处几乎看不清;现在每一项都是深色玻璃底片 + 提亮文字 + 阴影,任何壁纸区域都清晰。
界面截图
下面几张是浏览器版(dsh web)实拍,未做后期;桌面端的窗口标题栏按钮与启动屏略有不同,
其余材质一致。
| 设置 · 关于 | 插件页 |
|---|---|
![]() |
![]() |
已知限制
- 设置里的「退出」执行的是真正的退出(
window.close()在此桌面端会关闭整个应用), 正在运行的任务会随之中断;「应用」菜单里原生的「退出」行为相同。 - 「应用」菜单里原生条目的「管理 dsh 命令…」由主进程独占的对话框提供,页面无法调用, 因此没有迁移到自绘菜单中;「关于」「退出」已按要求放进设置。
- 「应用 / 编辑」的玻璃下拉依赖桌面端 preload 注入的标题栏按钮(Windows 桌面版);纯浏览器 打开 Web UI 时没有这两个按钮,插件不会注入任何额外菜单。
- 启动屏样式只在启动页存在期间生效;桌面端本次运行期间不会出现(boot 注入在宿主启动时采集), 重启一次 DSH 桌面端后生效。
兼容性
主题的皮肤层是按某个 DSH 版本的 Web 客户端类名写的;DSH 升级重构建前端时这些类名会重新哈希, 旧选择器会一次性失效(0.1 → 0.2 那次重构让一批插件「崩掉」,一部分原因就在这里)。
支持的 DSH Web 版本:>=0.2.1-rc.2 <0.3.0(在 0.2.1-rc.2 的 Web 版与桌面端实测完整适配)。
更低的版本缺少当前这批已哈希类名,会退到下面说的「部分适配 / 基础模式」(壁纸与基础变量仍然生效);
更高的大版本可能再次重哈希,等本插件更新后再用。兼容范围同时写在 README 与 package.json 的
devDependencies(@deepseek-ai/dsh-* 的版本区间)里,皮肤市场与安装前核对都以它为准。
插件启动时会做一次「UI 指纹」检查:
- 设置 → 关于 里多了一行「兼容状态」和「界面锚点」:
- 完整:当前 DSH 前端与主题构建时一致,全部皮肤生效;
- 部分适配 / 基础模式:检测到 DSH 前端已变化,插件会如实显示降级状态;壁纸与基础变量继续生效, 组件皮肤静默失效,不会把宿主拖崩;
- 控制台会打印一行
[star-wallpaper] DSH <版本> · compat <等级> · anchors <n>/<m>; - 也可以在页面控制台查看
window.__SWS_COMPAT__核对当前状态; - 稳定锚点:输入框、发送/添加按钮、会话头部控件等核心组件会在运行时被标上
data-sws-*, 玻璃样式同时挂在锚点上——即使下次 DSH 重哈希类名,这些最显眼的部位仍然保持主题材质。
升级 DSH 后想快速比对:node tools/selectors-report.mjs 会列出模板里所有依赖类名的选择器
(--json 输出结构化结果),适合适配新版本时看差异。
兼容范围就写在上面那两处(README + package.json 的 @deepseek-ai/dsh-* 区间)里,供皮肤市场索引和
安装前核对;主题刻意不声明 peerDependencies 或 engines.dsh,所以 DSH 的启动兼容闸门不会硬拦它——
超出声明区间时它照常加载,由上面那行「兼容状态」如实降级,不会把宿主拖崩。如果「关于」里显示的不是
「完整」,等本插件更新,或先在插件页停用它、用原生界面。
素材与版权
- 星云壁纸(
assets/nebula.jpg、assets/boot.jpg):取自游戏《崩坏:星穹铁道》4.4 版本的 CG, 版权归米哈游(miHoYo)所有。这里仅作个人欣赏与主题装饰使用,不做任何商业用途; 如果要二次分发或商用,请自行替换为拥有授权的图片。 - deepseek HARNESS 标志(
assets/brand-lockup.svg)与鲸鱼尾巴加载动画(assets/whale-tail.png): 取自 DeepSeek Harness 官方前端资源,版权归 DeepSeek 所有,这里只用于本主题的界面装饰。 - 其余 CSS / JS 代码与
icon.svg为本项目原创,使用 MIT 许可证。
安装
# 从 GitHub 安装(推荐)
dsh plugin add https://github.com/Yoimiya-Lover-0621-01/himeko-starry-night
# 或从本地目录安装
dsh plugin add "D:\path\to\dsh-star-wallpaper"
或在 Harness 的「插件 → 添加插件」里选择本目录。安装后重启/刷新 Web UI 生效。
目录
client.js:构建产物(勿手改)index.js:宿主半边,只负责往启动页注入样式;启动不依赖它也能正常进入应用tools/client.template.js:样式与逻辑源文件tools/build-client.mjs:构建脚本(把壁纸与鲸鱼尾巴内联成 base64)tools/selectors-report.mjs:类名选择器清单(适配新 DSH 版本时比对用)assets/nebula.jpg:裁切后的星云画作(3051x1295)assets/boot.jpg:启动屏用压缩壁纸(1600x679)assets/brand-lockup.svg:从官方品牌组件提取的 deepseek HARNESS 标志assets/whale-tail.png:官方 28×28 鲸鱼尾巴 APNG(从 ui-chat 运行时样式提取)assets/whale-tail-still.svg:同一只尾巴的静态 SVG(reduced-motion 回退)preview.png/preview-settings.png/preview-plugins.png:README 里的界面截图(浏览器版)cordis.patch.yml:把本插件挂进 bundle


No comments yet. Be the first to write one.