前言¶
DeepSeek Harness(DSH)的 Web 端默认是功能导向的界面,长时间对着会话窗口时,背景、排版和视觉层次往往停留在系统默认样式。社区里已有通过 dsh.bundle.patch 与 dsh.client 挂载到 Web 端的皮肤类插件;若你希望全屏动态壁纸、玻璃质感面板和可配置的壁纸库与 DSH 主界面叠在一起,而不是单独开一个壁纸应用,就需要面向 Web GUI 的皮肤方案。
下面介绍维护者 MilkySnowWay123 在 SkillHub 分类「趣味换装」下的插件 dsh-client-ui-skin-tianlight(包名 @dsh-external/dsh-client-ui-skin-tianlight)。它是 DSH Web 皮肤插件,不是独立应用;通过布线行 ui-skin-tianlight 与 body 属性 data-dsh-tianlight 接入。GitHub 仓库当前约 2 stars,代码许可为 MIT。
这是什么¶
遐蝶 · 天光(TIANLIGHT) 面向 DSH Web GUI:新海诚式天光配色,全屏循环动态壁纸铺在界面最底层,玻璃质感面板、可拖拽薄荷小猫桌宠,以及自建的壁纸与排版控制面板。
与「只改 CSS 主题」相比,该插件在浏览器半处理壁纸库、ShaderToy 风格 GLSL、可选 WebWallGL 场景、上传与自动轮播;在宿主半提供素材路由、流式上传与场景适配页。apply() 整体包在 try/catch 中,异常时皮肤可能不出现,但不会阻止进入 DSH。
核心功能¶
壁纸与图层¶
- 动态壁纸:全屏循环视频固定在最底层,界面整体抬升一层。
- 可替换素材:将
mp4 / webm / mov / m4v / png / jpg / jpeg / webp / avif / gif / svg放入assets/自动识别;也可在面板「网址导入」粘贴远程直链(无扩展名会探测图片/视频,非直链会报错)。格式细节见仓库docs/FORMATS.md。 - 静态帧:从当前视频抓取 6 帧,点选其一固定为静态壁纸,可一键恢复动态;跨域 URL 取帧会被浏览器拦截。
- 默认来源优先级(无手动选择时):
bg-main.mp4→bg-4k.mp4→ 其它视频 → 第一张图片 → 内置渐变;缺文件逐级降级,不会白屏。 - ShaderToy 风格:本地 GLSL 片段(
iTime/iResolution/iMouse/ 可选u_audio),含极光/星云/水波/音频极光等预设;编译失败只提示,不替换当前壁纸,帧率上限 30fps。 - WebWallGL 场景:可选 Wallpaper Engine 场景通道(内置 MIT 的 WebWallGL 3.0,位于
vendor/webwallgl/),在沙箱 iframe 中渲染project.json+scene.pkg;首帧超时或引擎失败会退回上一张可播壁纸或视频。需要浏览器 WebGL2,目录名需为 ASCII。 - 叠加层:A/B 两槽,预设(暗角/颗粒/光晕/扫描线)或图片,可调不透明度与混合模式。
- 自动轮播:顺序或随机,间隔 30 秒至 10 分钟,可仅轮播收藏;页面隐藏、省电或手动暂停时顺延。
壁纸面板与操作¶
- 入口:左侧「壁纸」标签;被侧栏挡住时按 Alt+W 开关面板。
- 一眼换壁纸:默认打开统一混合壁纸库(本地 + 上传 + WE 视频/场景),点缩略图立即应用;顶部可按「全部 / 本地 / WE」筛选。
- 上传:面板内选图/视频,默认单文件上限 512MB(环境变量
TIANLIGHT_UPLOAD_MAX可调),落盘到assets/uploads/;同名自动加-1等后缀,中文或 4K 文件名会清洗为可播放的 ASCII 名。 - 播放与画质:取景段可暂停/继续(刷新后保持)、0.5–1.5x 倍速与水平翻转;亮度/对比度/饱和度滤镜默认关闭,开启后有全屏合成成本。
- 性能档位:ShaderToy 与侧栏镜像可选自动 / 60 / 30 / 15fps;面板顶部显示真实播放状态(动态播放中、已暂停、自动播放被拦截等)及恢复入口。
界面与交互¶
- 玻璃面板:输入框、气泡、菜单、设置面板统一半透明磨砂;设置面板不做实时背景模糊,以免全屏视频上双层
backdrop-filter掉帧。 - 排版面板(Aa):字号、界面字族、代码字族、字重、行距、字距与一键复位;可拖动,右上角关闭。
- 推理档位滑杆:弹簧阻尼、连续拖拽、档位吸附,对接官方
remote.session.modelCatalog/selectModel。 - 壁纸自适应配色:打开面板时从当前画面取一次主色推导强调色(配置项
--tl-accent默认#2b74c9,面板内可被取色覆盖)。 - 薄荷小猫:可拖拽桌宠,会呼吸、靠近有回应,点击打开互动菜单;
assets/cat.png为桌宠素材,不参与壁纸候选。 - 亮/暗双主题:两套 token,均保持壁纸可见。
兼容与安全边界¶
| 项 | 说明 |
|---|---|
| 测试版本 | DSH 0.2.0-rc.2(Web) |
| 最低要求 | 支持 dsh.client 的版本(0.1.5 起) |
| Node | >=18(见 package.json engines) |
非 Web profile 或部分服务缺失时,插件按可选处理并挂起,而非拖垮宿主。升级 DSH 后建议运行 node tools/upgrade-check.mjs 校验客户端加载器、哈希选择器、modelCatalog 契约等;FAIL 表示可能无法加载皮肤,WARN 表示仅视觉降级。
安装与启用¶
README 给出的步骤以 Windows 目录联接为例;核心是链入 profile 的 node_modules、登记 bundle、写入 cordis.patch.yml,然后重启 DSH。
1. 把本目录放到任意位置,链接进 profile:
mklink /J "%USERPROFILE%\.dsh\profiles\web\node_modules\@dsh-external\dsh-client-ui-skin-tianlight" "D:\path\to\skin-tianlight"
2. profile 的 package.json 登记:
"dsh": { "profile": { "bundles": ["@dsh-external/dsh-client-ui-skin-tianlight"] } }
3. profile 的 cordis.patch.yml 插入:
- id: ui-skin-tianlight
name: '@dsh-external/dsh-client-ui-skin-tianlight'
disabled: false
4. 重启 DSH 后 Ctrl+F5
本版在宿主侧新增上传、场景、引擎适配等路由,安装或更新后需重启一次 dsh web;之后若只改 src/ 下的浏览器半代码,通常 Ctrl+F5 即可。上传目录为 assets/uploads/;WE 场景根目录在壁纸面板里配置。
插件随 DSH 进程以当前用户权限运行;安装前请自行审阅仓库源码与 MIT 许可证,并确认演示素材(如 bg-main.mp4、bg-4k.mp4、cat.png)再分发时的使用权。
典型用法¶
用文件替换默认壁纸¶
无需改代码,把文件放进插件目录下的 assets/:
assets/
bg-main.mp4 ← 首选视频
bg-4k.mp4 ← 备选 / 4K
rain.webp ← 静态图片壁纸
cat.png ← 桌宠素材,不参与壁纸候选
面板内换壁纸与高级项¶
- 打开左侧「壁纸」或按 Alt+W。
- 在混合库中点缩略图立即应用;用「全部 / 本地 / WE」筛选来源。
- 「网址导入」、WE 目录、GLSL 用于拉入远程或着色器;画面、外观、自动轮播、保存等收在「高级」。
- 需要流式上传时,在面板选择本地图片/视频,文件写入
assets/uploads/。
调整玻璃与遮罩(CSS 变量)¶
| 变量 | 默认(亮 / 暗) | 作用 |
|---|---|---|
--tl-panel-fill |
0.84 / 0.88 |
模态面板填充 |
--tl-glass-fill |
0.30 / 0.38 |
玻璃表面填充 |
--tl-glass-blur |
12px / 14px |
玻璃模糊半径(小面积表面) |
--tl-shell |
0 |
全局表面透明度,0 表示壁纸全可见 |
--tl-overlay |
0.82 / 0.84 |
菜单/弹层遮罩 |
推理滑杆手感由 stiffness(默认 170)、damping(默认 25)等参数影响,数值越大越干脆、回弹越小。
开发与校验(改皮肤逻辑时)¶
浏览器半源码在 src/,lib/client.js 为构建产物,勿直接编辑。常用命令:
node tools/build.mjs # 从 src/ 生成 lib/client.js
node tools/upgrade-check.mjs # DSH 升级后兼容性自检
node tools/test.mjs # 逻辑回归(Range、文件名安全、壁纸发现等)
适用场景与注意¶
适合:主要在 DSH Web 端长时间工作、希望壁纸(含 4K 视频)、玻璃 UI、壁纸库与可选 WE/WebGL 场景与主界面一体的用户;接受在 0.2.0-rc.2 附近版本上自行验证兼容性。
注意:
- 插件不是 SkillHub 或 DeepSeek 官方出品;社区目录为独立站点,安装方式以 README 为准,勿臆造
dsh plugin add一类未在资料中出现的命令。 - 完整仓库可能附带约 70MB 默认演示视频与桌宠图;轻量使用可删除
assets/bg-main.mp4、bg-4k.mp4、cat.png,缺失时以渐变兜底。 - 跨域壁纸的取色与视频抓帧受浏览器同源策略限制;4K/高帧率下开启画面滤镜或过高镜像帧率可能掉帧,面板会提示关滤镜或降档。
- 音频响应(如 ShaderToy「音频极光」)仅在手动启用后分析麦克风电平,不录音、不上传,关面板或页面隐藏会释放。
结尾¶
遐蝶 · 天光把动态壁纸、壁纸库、玻璃排版与桌宠收进 DSH Web 的一条皮肤链路里,并区分宿主路由与浏览器注入,在兼容失败时尽量只降级视觉。若要在本地启用,按 README 完成 profile 链接、bundle 与 cordis.patch.yml 配置后重启 dsh web 即可验证。
- SkillHub 目录页:https://www.skillhub.cn/plugins/MilkySnowWay123/dsh-client-ui-skin-tianlight
- GitHub:https://github.com/MilkySnowWay123/dsh-client-ui-skin-tianlight