dlpufan
dsh-theme-cyberpunk
DeepSeek Harness 赛博朋克主题插件:RGB 流动霓虹、自定义背景图库、本地音乐播放器与一键启停。
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
dsh-theme-cyberpunk
DeepSeek Harness(dsh)Web 界面的赛博朋克主题插件:RGB 流动霓虹、暗色霓虹城市背景、可自定义背景图库,以及一个右上角可拖动、可收起的 HUD(外观一键切换 + 本地音乐播放器,歌单与播放状态持久化)。
关于 DeepSeek Harness 插件系统的更多背景,见文末 关于 DSH 插件。
环境要求
验证:
node -v # v22.x
pnpm -v
dsh --help
安装
方式一:dsh plugin add(推荐,自动激活)
在插件目录内执行 .(dsh plugin 会把 . 锚定到当前目录并转发给 pnpm):
cd dsh-theme-cyberpunk
dsh plugin --profile web add .
然后重启 Web profile:
dsh web
刷新浏览器即可。
原理:
dsh plugin add= 在 profile 目录里执行pnpm add,然后dsh会自动把声明了dsh.bundle的包登记进dsh.profile.bundles,从而自动激活——本插件声明了dsh.bundle,所以无需手动改配置。
方式二:从 GitHub 仓库安装
dsh plugin --profile web add "github:dlpufan/dsh-theme-cyberpunk/dsh-theme-cyberpunk"
GitHub 子目录安装需要
dsh plugin底层的 pnpm 支持;如果提示构建/路径问题,请改用方式一(clone 后本地add .)。
手动激活(备用)
如果 dsh plugin add 没有自动激活(例如用 pnpm 手动安装的),在
$DSH_HOME/profiles/web/cordis.patch.yml 里加对应 insert 行即可:
- insert:
- id: theme-cyberpunk
name: dsh-theme-cyberpunk
注意:
cordis.patch.yml顶层必须是一个 YAML 数组;空文件或纯注释会报错,想全部关掉就写[]。
功能
- RGB 氛围:旋转 RGB 色轮 + 霓虹光斑 + 细密 CRT 扫描线 + 暗角。
- 背景图库:内置暗色霓虹城市图,可添加本地图片并记住选择;新增图片进入图库,可随时切换 / 删除。
- 外观一键切换:
赛博 / 默认按钮,在赛博朋克与默认 UI 间切换,偏好持久化。 - 本地音乐播放器:添加本地音频组成歌单,支持播放 / 暂停、上一首 / 下一首、随机顺序、循环(关 / 列表 / 单曲)、进度拖动与音量;歌单与播放状态(歌曲、进度、音量、随机、循环)都持久化,刷新后回位但不自动播放。
使用
刷新后右上角出现胶囊 HUD:
⋮手柄:拖动 HUD(位置记住)。- 「赛博 / 默认」:切换外观,绿点亮起表示赛博朋克开启。
- 音符图标:打开 / 收起音乐播放器。
- 图片图标:打开 / 收起背景图库。
»:收起为单个音符按钮,点击再展开。
音乐播放器面板:
| 操作 | 说明 |
|---|---|
+ 添加本地音频 | 打开文件选择器,可多选(mp3 / flac / wav 等) |
| 点击歌单中的曲目 | 立即播放该曲 |
×(曲目右侧) | 从歌单移除(同时从 IndexedDB 删除) |
| 交叉箭头 | 随机顺序开关(点亮为开启) |
| 上一首 / 下一首 | 切换曲目 |
| 中央圆形按钮 | 播放 / 暂停(渐变霓虹底) |
| 循环箭头 | 循环模式:关 → 列表 → 单曲(点亮为开启) |
| 进度条 / 音量条 | 拖动跳转 / 调音量 |
背景图库面板:
| 操作 | 说明 |
|---|---|
| 「默认背景」 | 切回内置霓虹城市图 |
| 点击缩略图 | 切换为对应背景(选中带青色描边) |
×(缩略图右上) | 从图库删除(删除当前项会自动切回默认) |
+ 添加背景图 | 从本地选择图片(多选,加入图库并立即应用最后一张) |
自定义
所有颜色与特效集中在 dsh-theme-cyberpunk/lib/client.js:
DARK/LIGHT——--dsw-*token 覆盖值。css里的--cbx-neon-*—— 霓虹原色。body[data-cbx-on][data-ds-dark-theme]—— 背景图与蒙层。DARK["--dsw-alias-bg-base"]的 alpha —— 背景图透出程度。
常用调整:
| 想改什么 | 改哪里 |
|---|---|
| 主霓虹色 | --cbx-neon-cyan + DARK["--dsw-alias-brand-primary"] |
| RGB 氛围强度 | body[data-cbx-on]::before { opacity }(默认 0.18) |
| 色轮转速 | @keyframes cbx-spin 的 16s |
| 背景图透出程度 | DARK["--dsw-alias-bg-base"] 的 alpha |
| 换背景图 | 替换 client.js 里 base64 的 data:image/jpeg;base64,... |
| 扫描线开关 | 删掉 body[data-cbx-on]::after 整段 |
| 关闭动效 | 系统开启「减少动态效果」时自动禁用 |
详见 dsh-theme-cyberpunk/README.md。
目录结构
dsh-theme-cyberpunk/
├── README.md # 本文件
├── LICENSE # MIT
├── .gitignore
└── dsh-theme-cyberpunk/ # 插件包
├── package.json # dsh.bundle(自动激活)+ dsh.client(浏览器半边)
├── cordis.patch.yml # 自插入 patch
├── README.md
└── lib/
├── index.js # node 半边(空 apply)
└── client.js # 浏览器半边:token + RGB 特效 + 背景图 + HUD
卸载
dsh plugin --profile web remove dsh-theme-cyberpunk
或从 cordis.patch.yml 中删除对应 insert 行,再重启。
关于 DSH 插件
DeepSeek Harness 用 Cordis 插件框架组装。一个 profile(如 web)由「bundle 层 + 用户 patch 层」叠加而成:
- bundle:
package.json里声明dsh.bundle.patch的包,其cordis.patch.yml会作为一层 patch 叠加,向组合里insert插件条目。 - client 插件:声明
dsh.client的包,其exports["./client"]是浏览器半边(window.__ModuleLoader__.load),由dsh-client-modules扫描并注入到页面。 - host 插件:
main入口就是 Node 半边。
本插件做成「自插入 bundle」:dsh plugin add . 安装后即自动激活,无需手改配置。