DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

yll86 /

yll86/dsh-theme-aemath

Verified

AEMEATH Theme - sakura violet-rose theme plugin for the DeepSeek Harness Web GUI

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

爱弥斯主题 · AEMEATH Theme

English | 中文

渐湖边暮色里的樱花瓣,带一点虚质空间的幽光——为 DeepSeek Harness Web 做的紫罗兰玫粉主题。

主题效果

  • 全局换装:浅色「樱花晨光」/ 深色「樱夜」两套配色,覆盖整套 --dsw-* 设计令牌,不是只换一个主色
  • 主题色:紫罗兰玫粉 #963f86(浅色)/ #c96f9e(深色),按钮、链接、选中态、滚动条、代码块全部联动
  • 对话背景立绘:立绘处理成淡彩后作为对话区背景层(全屏固定层 + 左侧遮罩淡出,不依赖任何带构建 hash 的组件类名)
  • Q 版徽章:左下角圆形小头像,白圈 + 紫粉描边 + 柔光
  • favicon 与标题:飞行雪绒·像素海豹 favicon,页面标题改为 DeepSeek Harness - AEMEATH Theme
  • 零请求:样式表、立绘、favicon 全部内联在插件里,不向外要任何资源

安装

主题是一个客户端插件(client plugin),装完刷新页面即可见效。

方式一:从插件市场

设置 → 插件市场 → 搜索 aemath(或「爱弥斯」)→ 一键安装 → 刷新页面。

方式二:命令行(dsh web 的 web profile)

dsh plugin --profile web add dsh-theme-aemath

装完 重启 dsh web。

方式三:手动启用(装的是本地目录 / 压缩包时)

包已经在 profile 里、只是还没被加载时,往 profile 的 cordis.patch.yml (~\.dsh\profiles\web\cordis.patch.yml)加一条 insert:

- insert:
    - id: ui-theme-aemath
      name: 'dsh-theme-aemath'

然后重启 dsh web。

桌面客户端(Electron)读的是 desktop profile,dsh plugin 按设计不碰它。 在桌面端要让 DSH 自己装:直接在会话里说「装一下 dsh-theme-aemath」。

关掉主题

三种都行,选一个:

# ~\.dsh\profiles\web\cordis.patch.yml
- id: ui-theme-aemath
  disabled: true

或者把上面那条 insert 注释掉,或者在设置 → 插件里热禁用。重启 / 热重载后 主题消失,界面回到出厂配色——插件不会残留任何注入。

生效范围

主题覆盖的是 配色令牌 + 两个装饰层,不动任何组件结构:

覆盖的东西 怎么实现的
全部 --dsw-* 令牌 html body 下重定义,浅深两套靠 [data-ds-dark-theme] 切换
对话区背景立绘 html body::before,z-index: 50(在内容层之上、弹层之下),pointer-events: none
左下角 Q 版徽章 html body::after,z-index: 999,pointer-events: none
favicon / 页面标题 客户端插件在 ctx.effect 里换,卸载即还原

因为它只用到 body 上的伪元素和 CSS 变量,前端升级换了构建 hash 也不会失效—— 这是刻意的:主题以前把图放进 dist,dsh 一升级就被还原,踩过一次。

微调

想改的话,直接改 src/aemath-theme.css 顶部的几个变量:

--aemath-art-opacity: 0.42;   /* 背景立绘强度:越高越明显,也越"蒙" */
--aemath-chibi-size: 96px;    /* Q 版徽章尺寸 */
--aemath-chibi-left: 92px;    /* 徽章水平位置(侧边栏宽 - 尺寸)/ 2 */
--aemath-chibi-bottom: 170px; /* 徽章离底距离 */

改完重建:

node scripts/build-client.mjs

重建是幂等的、可复现的:背景图按内容哈希 stamp 缓存标记,Q 版内联为 data URI, favicon 内联为 SVG data URI。lib/client.js 是构建产物,别手改。

换立绘

  1. 新的背景图存成 assets/aemath-bg.jpg(建议 1600px 宽、JPEG 质量 80 上下, 主题会把它压到 --aemath-art-opacity 的透明度当水印用)
  2. 新的 Q 版小图存成 assets/aemath-chibi.jpg(正方形,会被裁成圆形)
  3. node scripts/build-client.mjs

本仓库内置的立绘为作者自有素材。替换/二次分发前请确认你拥有所用图片的权利。

项目结构

dsh-theme-aemath/
├── package.json            # dsh.client.platform = web
├── lib/                    # 发布产物(构建 + 手写)
│   ├── client.js           #   浏览器半边:内联整份样式表(构建产物)
│   └── index.js            #   host 半边:提供 /aemath-assets/* 素材路由
├── src/
│   ├── aemath-theme.css    # 主题源头:两套配色 + 背景层 + Q 版
│   └── client.template.js  # client 半边模板(__CSS__ / __SVG__ 占位)
├── scripts/
│   ├── build-client.mjs    # 零依赖构建脚本
│   ├── self-check.mjs      # 上架前自检(63 项)
│   └── make-poster.py      # 生成 assets/aemath-poster.jpg(需 Pillow)
├── assets/
│   ├── aemath-poster.jpg   # 市场/README 预览海报(合成图,非界面截图)
│   ├── aemath-bg.jpg       # 对话背景立绘(经淡彩处理)
│   ├── aemath-chibi.jpg    # Q 版徽章(构建期内联)
│   └── aemath-favicon.svg  # 像素海豹 favicon(构建期内联)
├── screenshots.json        # 市场截图清单
└── PUBLISHING.md           # 上架插件市场的完整步骤(不进 npm 包)

自检

改完东西、发布之前跑一次:

node scripts/self-check.mjs

63 项检查:包清单(name / version / exports / dsh.client.platform / files 白名单)、 素材是不是真的 JPEG、lib/client.js 能不能被客户端加载器上下文执行、apply() 有没有 真的把样式表挂进 document.head、favicon 有没有换成功、host 路由对目录穿越和非法 方法返回什么、产物里有没有残留本机绝对路径。

上架

插件市场的条目来自 awesome-dsh-plugin 精选列表(市场本身不维护清单)。从这台机器到上架要走的三步——npm 发布、 GitHub 仓库、提 PR——都写在 PUBLISHING.md 里,包含命令和坑。

素材路由

host 半边只做一件事:开一条 /aemath-assets/*。

  • 只提供 assets/ 里 aemath- 前缀的文件,目录成分一律丢掉——..、绝对路径、编码穿越都进不来
  • 只接受 GET / HEAD
  • 素材目录相对模块自身解析,不写死绝对路径,所以 node_modules 安装和 link:. 开发安装都能找到图
  • 带 ?v=<内容哈希>,换图立刻生效

许可

MIT。主题是非官方同人作品,与《鸣潮》/ 库洛游戏无关。

—/ 5

No ratings yet

Verified DSH bundle

Commit f3c04ade4977

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