遐蝶 · 天光(TIANLIGHT):DSH Web 界面皮肤插件

前言

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         ← 桌宠素材,不参与壁纸候选

面板内换壁纸与高级项

  1. 打开左侧「壁纸」或按 Alt+W。
  2. 在混合库中点缩略图立即应用;用「全部 / 本地 / WE」筛选来源。
  3. 「网址导入」、WE 目录、GLSL 用于拉入远程或着色器;画面、外观、自动轮播、保存等收在「高级」。
  4. 需要流式上传时,在面板选择本地图片/视频,文件写入 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜