dsh-web
zhu1090093659
DeepSeek Harness (DSH) Web 插件聚合生态 · 万物皆插件,通过创意工坊分发||DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:hgp005/dsh-winterskin
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
把任意一张照片变成整个 DeepSeek Harness GUI 的底色,并把面板、边框、品牌色一并调成与照片配套的玻璃质感主题。
装上这个 DSH profile 插件,界面就"穿上"了你的照片:照片铺满整个窗口,左右两栏与浮层变成半透明玻璃,强调色从照片里取。右下角有一枚可拖动的胶囊控制台,设置 里还有一整页「雪岭皮肤」。
dsh.bundle.patch)+ Web 客户端插件(dsh.client.platform = web)| 能力 | 说明 |
|---|---|
| 照片底图 | background-size: cover 铺满窗口,background-attachment: fixed 滚动时照片不动 |
| 可读性保障 | 照片之上叠一层随明暗主题切换的冷色罩 + 径向暗角,正文对比度不会被照片破坏 |
| 面板玻璃化 | 覆写 13 个 --dsw-* 别名 token(背景/浮层/边框/品牌色/文字/三态色),浅色与深色各给一套值 |
| 不写死产品 DOM | 全局选择器只有 body 与 body[data-ds-dark-theme];其余全部走官方主题 token 层 |
| 两处控件 | 右下角胶囊(快捷开关 + 浮层控制台)与 设置 → 雪岭皮肤(完整设置页),同一套控件 |
| 浓淡连续可调 | 0–100% 滑块,同时影响照片色罩厚度与面板透明度 |
| 五套配色 + 自定义 | 松绿 / 暖阳 / 冷霜 / 墨色 / 夜蓝,另可用取色器覆盖强调色(自动按明暗分别压深或提亮) |
| 换图无需重启 | 拖拽或选择图片,浏览器内压缩(最长边 ≤ 2400×1500,WebP,回退 JPEG)后存入本地,立刻生效、重启仍在 |
| 取不到图就完全不介入 | 先探测图片可加载才绘制;图片缺失时产品 UI 保持原样 |
| 副作用全可回收 | 样式表、token 层、slot 注册都由插件的 fiber 持有,停用/卸载即全部回收 |
● 雪岭皮肤 │ 50% ▴
Esc 关闭)。| 控件 | 作用 |
|---|---|
| 穿上皮肤 | 总开关 |
| 浓淡 | 0–100% 连续滑块:照片上冷色罩的厚度 + 面板玻璃的透明度 |
| 配色 | 五套预设;每套同时提供浅色与深色两版 token 值 |
| 自定义强调色 | 取色器覆盖品牌色 |
| 图片 | 缩略图预览 + 当前来源;拖拽或点「更换图片」;「恢复内置」退回包内底图 |
| 恢复默认设置 | 以上全部复位 |
web profile,需要 dsh CLI 与 pnpm。0.1.5-rc.2(@deepseek-ai/cordis 4.0.2)的 web profile 上完整验证。client/client.js 已是可直接被浏览器加载的 bundle。需要 PATH 上有 git:
dsh plugin --profile web add github:hgp005/dsh-winterskin
等价的显式写法:
dsh plugin --profile web add "git+https://github.com/hgp005/dsh-winterskin.git"
dsh plugin --profile web add https://github.com/hgp005/dsh-winterskin/archive/refs/heads/main.tar.gz
已实测可用(pnpm 会直接把仓库快照装成 dsh-winterskin@1.2.0,不需要 git)。
也可以直接下载 ZIP 解压,然后走下面的"从本地目录安装"。
git clone https://github.com/hgp005/dsh-winterskin.git D:\dsh-winterskin
dsh plugin --profile web add D:\dsh-winterskin
安装命令会自动把本包写入 profile 依赖,并因为包内声明了 dsh.bundle.patch 而自动追加到 dsh.profile.bundles。
本包没有
prepare构建脚本,所以 git 安装不需要在pnpm-workspace.yaml里配置allowBuilds。
安装或更新后必须两步都做:
第二步请用 Ctrl + Shift + R 强制刷新(普通 F5 可能命中首页缓存,而整个插件启动图是内嵌在首页 HTML 里的,一旦命中缓存浏览器根本不会去请求新 bundle)。
判断是否成功:设置列表里出现「雪岭皮肤」、右下角出现胶囊。
选择保存在本机浏览器里(按来源隔离,即协议 + 主机 + 端口):
| localStorage 键 | 内容 |
|---|---|
dsh-winterskin:settings:v1 |
开关、浓淡、配色、自定义强调色 |
dsh-winterskin:image:v1 |
自定义图片(data URL)与尺寸信息 |
清掉这两个键(或点「恢复默认设置」)即回到出厂状态。
┌─ 宿主半 (lib/index.js) ──────────────────────────────┐
│ 在 /dsh-winterskin/snow-ridge.png 上以 image/png │
│ 提供包内底图(webServer 精确路由,随插件生命周期回收)│
└──────────────────────────────────────────────────────┘
│ 同源 URL
┌─ 浏览器半 (client/client.js) ────────────────────────┐
│ 1. 注入 <style>:照片底图 + 冷色罩 + 暗角 │
│ 2. theme.overrideTokens:13 个 --dsw-* token 的 │
│ 浅色/深色两套值(面板玻璃化) │
│ 3. shell.overlay:右下角胶囊 │
│ 4. settings.section:设置页「雪岭皮肤」 │
└──────────────────────────────────────────────────────┘
两条关键实现约定:
inject = ['slots', 'theme']。若不声明,Cordis 会在 slots / theme 就绪之前就调用 apply,ctx.get('slots') 取到 undefined,结果是"插件已安装、界面毫无变化"——照片画在 body 上却被仍不透明的面板完全盖住。(这正是 1.2.0 修复的问题。)window.__ModuleLoader__.load({ id, factory }),id 必须等于包名;因此改代码后不需要构建,但需要重启 + 刷新页面。dsh-winterskin/
├── package.json # bundle patch 与 dsh.client 声明、元数据
├── cordis.patch.yml # 把插件行插入 profile 组合树
├── lib/
│ └── index.js # 宿主半:图片资源路由
├── client/
│ └── client.js # 浏览器半:样式 + token + 胶囊 + 设置页(已构建形态)
├── assets/
│ └── snow-ridge.png # 默认底图(本仓库自制渐变图)
├── CHANGELOG.md
├── LICENSE
└── README.md
装好了,但界面没有任何变化?
没有走完「重启 profile + 强制刷新页面」两步。注意:服务器重启 不会重新加载浏览器里的 JS,旧标签页只是自动重连;请用 Ctrl + Shift + R。
设置里找不到「雪岭皮肤」? 同上。另外确认它是真的装上了:
dsh --profile web --dump-config | Select-String winterskin
应该能看到 - id: dsh-winterskin 这一行。
照片没出现,只有一层灰蓝色?
说明底图没取到(此时插件按设计完全不介入,只是面板已被改色)。检查 http://127.0.0.1:3080/dsh-winterskin/snow-ridge.png 是否返回 200。
换了图片,但另一个端口/浏览器里还是旧的? 设置按浏览器来源隔离(协议 + 主机 + 端口),换端口打开会看到默认皮肤。
图片太大存不下? 控制台会明确提示(浏览器 localStorage 有配额)。此时图片在本次运行内仍生效,重启后回到上一张;建议换一张小一点的图。
和别的皮肤/主题插件冲突? 多个插件覆写同一批 token 时,后注册的层生效。建议同一时间只留一个皮肤插件。
client/client.js(或 lib/index.js)。Ctrl + Shift + R。无构建步骤、无 TypeScript 转译 —— 提交前建议至少跑一次语法检查:
node --check client/client.js
node --check lib/index.js
dsh plugin --profile web remove dsh-winterskin
重启 profile 即完全移除;如还想清掉本机选择,再删掉上面两个 localStorage 键。
assets/snow-ridge.png 是本仓库自制的默认底图(由 SVG 渐变与山脊路径生成),可自由使用。dsh-winterskin is a DeepSeek Harness profile plugin that paints a photo across the whole web GUI and turns its panels into matching glass surfaces.
--dsw-* alias tokens overridden with light and dark values — no product DOM selectors.shell.overlay, and a full settings page.localStorage — no restart needed.dsh plugin --profile web add github:hgp005/dsh-winterskin
Then restart the web profile and hard-reload the page (Ctrl+Shift+R) — a server restart alone never re-fetches the page's JavaScript.
MIT licensed.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: skin、theme。