DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

AAAjzx111 /

AAAjzx111/dsh-theme-jing-chiyang

Verified

王者荣耀「镜 · 炽阳神光」动态主题 —— DeepSeek Harness 主题插件

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@d857c35a

镜 · 炽阳神光 — DSH 主题插件

王者荣耀「镜 · 炽阳神光」主题:碎裂镜面 + 炽阳金辉的动态界面外观,为 DeepSeek Harness 的 Web / 桌面图形界面提供一整套金曜配色与全屏动态背景。

主题示意

  • 仓库:https://github.com/AAAjzx111/dsh-theme-jing-chiyang
  • npm:https://www.npmjs.com/package/dsh-theme-jing-chiyang
  • 发行版:https://github.com/AAAjzx111/dsh-theme-jing-chiyang/releases

自 1.1.0 起,主题里嵌入了「镜 · 炽阳神光」的主视觉:它同时作为整窗底图与两个主面板的肌理, 并按遮挡关系重绘在面板下方,文字始终压在稳定的暗色通道上。

主视觉

自 1.3.0 起,每次启动会先播约 5 秒的镜面破碎开场:这块背景本身被切成 56 片玻璃,先显现、再炸开、短暂悬停后逆向重组,最后闪光把原图推出来。不额外加载任何图片。

开机动画

这是什么

一个标准的 DSH bundle 插件(Host 半区 + Client 半区):

  • Host 半区(index.js)不做任何事,只提供 Loader 行需要的包入口,因此主题不会影响宿主逻辑。
  • Client 半区(client.js)在页面里完成全部工作:
    • 覆写 DSH 自己的设计令牌(--dsw-alias-* 等,混合模式与深色模式各写一份),让侧边栏、气泡、输入框、菜单、代码块、滚动条、按钮等全部落到「墨蓝 + 熔金」的配色上;
    • 在界面后面画一张静态的夜穹:墨色天幕、炽阳日轮、金芒光冕、斜射光柱、磨砂镜片、从太阳散出的镜面裂纹、可读性薄雾与暗角;
    • 在界面上面叠一层会动的光:太阳的呼吸、金烬与镜尘、约 19 秒一次的掠光、跟随鼠标的神光光晕;
    • 左下角一枚「镜」字徽记,点一下即可在 神光(全动效)→ 静谧(缓慢)→ 关闭 三档之间切换,选择记在浏览器 localStorage 里。

开机动画(2.0 起:镜面破碎)

打开 DSH 时,先用 4.9 秒播一段「镜面显现 → 镜化破碎 → 镜像重组 → 炽阳降临 → 收尾」,整段只用同一张背景原图切出来的玻璃。

做法:把原图按 cover 的同一套换算(cover 尺寸 + background-position: 66% 10%)算成一个「玻璃平面」,在上面用抖动的三角网格切出 56 片不规则碎片;每片是「原图对应裁片 + 暗玻璃底色 + 沿多边形的高光边」三层叠出来的。所以碎片飞行时看到的是同一张画的局部反射,重组回原坐标后与原背景逐像素对齐。

落地的一帧用的是原图本身的亮度(brightness(1.04) saturate(1.06) contrast(1.03)),不是常驻背景那层提亮(1.65)。所以开场结束时看到的是画的原样;界面浮上来之后背景才回到主题自己的亮度。

时间 发生什么
0–0.8 s 画面从暗金开始:玻璃平面像压着一层暗玻璃(--i-dim 0.62),边缘金色光带亮起,撞击点的裂纹沿玻璃快速蔓延
0.8–1.6 s 平面炸开:56 片玻璃带着金边向四周飞出(不同尺寸/角度/景深/自转),撞击点发出一圈金色冲击波
1.6–2.6 s 碎片先短暂悬停,再反向旋转收拢;缝隙里透出镜像世界的暗影(--i-ghost),越收越亮
2.6 s 全部归位的瞬间一次强金色闪光,原图从镜面里「推」出来(scale(1.045) → 1)
2.76–4.4 s 背后的日轮光环张开、金色光束扩散、少量水晶碎片绕着角色缓转、一道光扫过画面
4.44–4.9 s 开场层淡出,界面已经在原位,徽记跳到「神光」档
  • 跳过:动画期间点一下鼠标或按任意键,直接进入结尾(至少停 1.3 秒)。
  • 只播一次:同一个会话里刷新页面不会再播;每次完全重启 DSH 播一次。
  • 永久关掉:localStorage['dsh-theme-jing-chiyang/intro'] = 'off'。
  • 再看一次:按住 Alt 点左下角「镜」徽记(普通点击仍是切换动效档位),或在控制台执行 __jzsIntro()。
  • 系统开启「减少动态效果」(prefers-reduced-motion)时不会播。

想自己调

代码全在 client.js 顶部两个常量和 INTRO_CSS 里,改完刷新 DSH(client 插件在启动时打包,必须完全退出再开):

想改 改哪里
总时长 / 最短停留 / 淡出 const INTRO = { total: 4900, min: 1300, fade: 460 }
每个节拍的时间点 const BEAT = { crack, shatter, blast, hang, close, sun, sweep, dust, settle }(毫秒)
碎片数量 / 大小分布 cutGlass() 里的 7×4 网格、reach(默认 0.36)与 0.010 面积阈值、cap(56)
飞多远 / 转多少 / 飞多久 引擎里 push(0.09 + push*0.30)、spin((s.spin-0.5)*74)、span(1800ms)与四段 keyframe 的 offset
玻璃有多暗、边缘多亮 INTRO_CSS 里的 .jzs-i-dim、.jzs-i-tint、[data-lit] 的 drop-shadow
闪光强度 .jzs-i-flash 的渐变 + 引擎里 flash 的 opacity 峰值(0.62)

为什么这样分层

这台机器是软件渲染(没有 GPU 加速):任何持续变化的图层都会让整窗重绘。实测(同一时刻开关主题对比):

做法 单核占用
CSS 动画 + 整窗 canvas 粒子 约 140–160%
面板透明 + 背景层随帧变化 约 150%(文字被反复重绘)
静态背景 + 上层动效 + 8 fps 时钟 约 40%(可再切静谧/关闭)

所以最终形态是:背景一动不动(只画一次),只有上层的少量元素在动,并且由一个 8 fps 的时钟统一驱动;标签页隐藏或窗口失焦时自动停表。

安装

从 npm(推荐)

dsh plugin --profile desktop add dsh-theme-jing-chiyang

Web 版把 desktop 换成 web。

从 GitHub

dsh plugin --profile desktop add github:AAAjzx111/dsh-theme-jing-chiyang

离线压缩包(发给不想碰命令行的人)

把发行版里的 zip 解压,在解压目录执行:

powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

脚本会复制插件到 %USERPROFILE%\.dsh\profiles\<profile>\plugins\、在 node_modules 建链接、 往 cordis.patch.yml 补一行挂载(先备份)。卸载:同一条命令加 -Uninstall。

三种方式装完都要完全退出 DSH 再打开(只关窗口不够),主题才会挂上。

卸载

从 cordis.patch.yml 去掉上面那三行,再删掉 node_modules\dsh-theme-jing-chiyang 链接与 plugins\dsh-theme-jing-chiyang 目录。

主题的清理是完整的:卸载时三张样式表、背景层、动效层、徽记、事件监听与动画时钟都会一并移除,界面回到 DSH 原始外观。

目录

dsh-theme-jing-chiyang/
├── package.json          # 清单:dsh.bundle.patch + dsh.client(platform: web)
├── cordis.patch.yml      # 把插件插入 profile 配置树
├── index.js              # Host 半区(空实现)
├── client.js             # Client 半区:令牌 + 静态背景 + 动效层 + 徽记 + 开机动画
├── skin.json             # 主题身份(供插件市场归类为 theme)
├── locale/{en,zh}.json   # 插件列表里的标题与描述
├── assets/key-art.webp   # 主视觉(以 base64 内联在 client.js 里)
├── assets/intro.jpg      # 开机动画的静帧(只在 README 里用)
├── icon.svg              # 金色镜片徽记
└── README.md

主视觉(1.1.0)

assets/key-art.webp 是内联进 client.js 的(base64 data URI),因此主题不需要额外请求、离线可用。 想换图:替换 assets/key-art.webp 后重新生成 data URI(client.js 顶部的 const KEY_ART), 再刷新页面即可。当前是 1600px 宽、WebP q72,约 120 KB,内联后约 160 KB。

可调项

client.js 顶部:

const FPS = { full: 8, calm: 2, off: 0 }      // 时钟帧率
const SPEED = { full: 1, calm: 0.5, off: 0 }  // 动效速度倍率
const INTRO = { total: 2400, min: 900, fade: 340 }  // 开机动画:总长 / 跳过后的最短停留 / 结尾淡出

开机动画要更「慢热」就调大 INTRO.total(并且把 playIntro() 里那条 Math.max(1200, INTRO.total - INTRO.fade) 之后各层的 duration 一起拉长); 不想每次启动都播,设 localStorage['dsh-theme-jing-chiyang/intro'] = 'off'。

帧率是性能与观感的唯一旋钮:8 在软件渲染下比较克制,有独显/硬件合成的机器可以调到 20–30 让光尘更顺滑。

配色集中在 TOKENS_CSS,日轮/光冕/镜片的位置与形状在 STAGE_CSS 与 SHARDS 里,粒子的数量与轨迹在 buildEmbers() 里。

已知限制

  • 主题会强制使用深色配色(金色夜穹是深色画布),并在页面里保持 data-ds-dark-theme;设置里的浅色/深色开关对它不生效。
  • 桌面壳的注入表在宿主启动时一次性收集,若插件是在宿主运行中被手工加进来的,这一版能热挂载生效;但若宿主重启后仍要显示,插件必须留在 profile 里(本仓库的安装步骤已经保证)。
  • 面板保持半透明会让文字每帧与背景重新混合,软件渲染下代价明显;若机器吃力,用「静谧」或「关闭」。
  • 开机动画那 2.4 秒里界面不可点(点击=跳过);「关闭」档位下不播。
  • 主题不替换 DSH 的组件样式,只覆写设计令牌并叠加上下两层画布;DSH 升级后若令牌改名,个别控件可能回落到默认色。

许可

代码 MIT(见 LICENSE)。icon.svg 为随本插件一起使用而绘制,与代码同许可。

—/ 5

No ratings yet

Verified DSH bundle

Commit d857c35ae506

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout