爱弥斯主题 · 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)读的是
desktopprofile,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 是构建产物,别手改。
换立绘
- 新的背景图存成
assets/aemath-bg.jpg(建议 1600px 宽、JPEG 质量 80 上下, 主题会把它压到--aemath-art-opacity的透明度当水印用) - 新的 Q 版小图存成
assets/aemath-chibi.jpg(正方形,会被裁成圆形) 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。主题是非官方同人作品,与《鸣潮》/ 库洛游戏无关。
还没有评论,来写第一条。