Bundle
dsh-theme-cyberpunk
A neon cyberpunk appearance plugin for the DeepSeek Harness web surface: refined RGB ambient lighting, CRT scanlines, and a cohesive cyan/magenta/violet token palette.
- Source
- dlpufan
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 10 days ago
Readme
# dsh-theme-cyberpunk
DeepSeek Harness(`dsh`)Web 界面的赛博朋克主题插件:RGB 流动霓虹、暗色霓虹城市背景、可自定义背景图库,以及一个右上角可拖动、可收起的 HUD(外观一键切换 + 本地音乐播放器,歌单与播放状态持久化)。
[简体中文](README.md) · [English](README.en.md) · [日本語](README.ja.md)
> 关于 DeepSeek Harness 插件系统的更多背景,见文末 [关于 DSH 插件](#关于-dsh-插件)。
---
## 环境要求
- [Node.js](https://nodejs.org/) 22+(`dsh` 本身要求)
- [pnpm](https://pnpm.io/installation)(`dsh plugin` 通过 pnpm 管理插件)
- 已安装并初始化过 DeepSeek Harness(`dsh web` 可运行)
验证:
```sh
node -v # v22.x
pnpm -v
dsh --help
```
---
## 安装
### 方式一:`dsh plugin add`(推荐,自动激活)
在插件目录内执行 `.`(`dsh plugin` 会把 `.` 锚定到当前目录并转发给 pnpm):
```sh
dsh plugin --profile web add .
```
然后重启 Web profile:
```sh
dsh web
```
刷新浏览器即可。
> 原理:`dsh plugin add` = 在 profile 目录里执行 `pnpm add`,然后 `dsh` 会自动把声明了 `dsh.bundle` 的包登记进 `dsh.profile.bundles`,从而自动激活——本插件声明了 `dsh.bundle`,所以无需手动改配置。
### 方式二:从 GitHub 仓库安装
```sh
dsh plugin --profile web add "github:dlpufan/dsh-theme-cyberpunk"
```
> 也可先 clone 本仓库,再在仓库根目录执行 `dsh plugin --profile web add .`。
### 手动激活(备用)
如果 `dsh plugin add` 没有自动激活(例如用 pnpm 手动安装的),在
`$DSH_HOME/profiles/web/cordis.patch.yml` 里加对应 `insert` 行即可:
```yaml
- insert:
- id: theme-cyberpunk
name: dsh-theme-cyberpunk
```
> 注意:`cordis.patch.yml` 顶层必须是一个 YAML 数组;空文件或纯注释会报错,想全部关掉就写 `[]`。
---
## 功能
- **RGB 氛围**:旋转 RGB 色轮 + 霓虹光斑 + 细密 CRT 扫描线 + 暗角。
- **背景图库**:内置暗色霓虹城市图,可添加本地图片并记住选择;新增图片进入图库,可随时切换 / 删除。
- **外观一键切换**:`赛博 / 默认` 按钮,在赛博朋克与默认 UI 间切换,偏好持久化。
- **本地音乐播放器**:添加本地音频组成歌单,支持播放 / 暂停、上一首 / 下一首、随机顺序、循环(关 / 列表 / 单曲)、进度拖动与音量;**歌单与播放状态(歌曲、进度、音量、随机、循环)都持久化**,刷新后回位但不自动播放。
---
## 使用
刷新后右上角出现胶囊 HUD:
- `⋮` 手柄:拖动 HUD(位置记住)。
- 「赛博 / 默认」:切换外观,绿点亮起表示赛博朋克开启。
- 音符图标:打开 / 收起音乐播放器。
- 图片图标:打开 / 收起背景图库。
- `»`:收起为单个音符按钮,点击再展开。
音乐播放器面板:
| 操作 | 说明 |
|---|---|
| `+ 添加本地音频` | 打开文件选择器,可多选(mp3 / flac / wav 等) |
| 点击歌单中的曲目 | 立即播放该曲 |
| `×`(曲目右侧) | 从歌单移除(同时从 IndexedDB 删除) |
| 交叉箭头 | 随机顺序开关(点亮为开启) |
| 上一首 / 下一首 | 切换曲目 |
| 中央圆形按钮 | 播放 / 暂停(渐变霓虹底) |
| 循环箭头 | 循环模式:关 → 列表 → 单曲(点亮为开启) |
| 进度条 / 音量条 | 拖动跳转 / 调音量 |
背景图库面板:
| 操作 | 说明 |
|---|---|
| 「默认背景」 | 切回内置霓虹城市图 |
| 点击缩略图 | 切换为对应背景(选中带青色描边) |
| `×`(缩略图右上) | 从图库删除(删除当前项会自动切回默认) |
| `+ 添加背景图` | 从本地选择图片(多选,加入图库并立即应用最后一张) |
---
## 自定义
所有颜色与特效集中在 [`lib/client.js`](./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` 整段 |
| 关闭动效 | 系统开启「减少动态效果」时自动禁用 |
---
## 目录结构
```
.
├── package.json # dsh.bundle(自动激活)+ dsh.client(浏览器半边)
├── cordis.patch.yml # 自插入 patch
├── lib/
│ ├── index.js # node 半边(空 apply)
│ └── client.js # 浏览器半边:token + RGB 特效 + 背景图 + HUD
├── README.md # 本文件(简体中文)
├── README.en.md # English
├── README.ja.md # 日本語
├── LICENSE # MIT
└── .gitignore
```
---
## 卸载
```sh
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 .` 安装后即自动激活,无需手改配置。
---
## 许可
[MIT](./LICENSE)
Install
dsh plugin --profile web add github:dlpufan/dsh-theme-cyberpunk#0bddb1507514e758f1f63668df2b0c90d8d20102
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-theme-cyberpunk from the hub