M
aemeath-theme-plugin
malyjacob/aemeath-theme-plugin
Aemeath theme for the dsh web GUI — sakura pink × icy cyan × pearl white × deep navy, dual light/dark, animated pulsing composer border, and wallpaper backdrops
安装
dsh plugin --profile web add github:malyjacob/aemeath-theme-pluginREADME
Aemeath Theme Plugin · 爱弥斯主题插件
dsh web GUI 的主题皮肤插件(独立可分发 bundle)。基于爱弥斯主题配色方案 (樱粉 × 冰青 × 珍珠白 × 深潮蓝),提供:
- 浅色 / 深色双主题(顶部栏右侧胶囊切换,持久化到 localStorage)
- 深色壁纸
Aemeath-Sky-Mechanical-Wings-Mecha.png(机械翼天空)/ 浅色壁纸Aemeath-Window-Light.jpg(窗景)——固定底层 + 半透明蒙层 - 用户输入框脉冲流光边框(标志渐变
#EAA1B8 → #F2C5D1 → #65E4E8 → #D982A5旋转流动 + 亮度呼吸,仅限边框、框内不变) - 樱花渐变按钮、冰青/星砂金点缀(状态点、时间戳、commit 徽章边框等)
预览
| 浅色模式 | 深色模式 |
|---|---|
![]() | ![]() |
点击可查看完整大图。
色板
| 角色 | 浅色 | 深色 |
|---|---|---|
| 主背景 | #FAF0F4 雾樱粉白 | #182231 夜航墨蓝 |
| 面板/气泡 | #FFFFFF 珍珠白 | #243657 深潮蓝 |
| 悬浮/激活 | #FBE3EC 雾樱粉 | #2A4066 深潮蓝提亮 |
| 主强调(粉) | #D982A5 樱粉深 | #EAA1B8 星樱粉 |
| 次强调 | #65E4E8 共鸣冰青 | #65E4E8 共鸣冰青 |
| 点缀 | #B9A46B 星砂金 | #B9A46B 星砂金 |
| 标志渐变 | #EAA1B8 → #F2C5D1 → #65E4E8 | 同 |
结构
aemeath-theme-plugin/
├── package.json # dsh.bundle + dsh.client manifest(官方 bundle 形态)
├── cordis.patch.yml # bundle patch:插入插件行 id: aemeath-theme
├── lib/
│ ├── index.js # host 半:/aemeath-theme/wallpaper 静态路由(serve 壁纸)
│ └── client.js # 浏览器工厂:主题 CSS + 切换按钮 + 流光边框 + 壁纸层
├── assets/
│ ├── dark-wallpaper.png # 深色壁纸(1920×1080)
│ └── light-wallpaper.jpg # 浅色壁纸(4096×2304)
├── skin.json # 皮肤市场元数据
└── README.md
安装
本包已发布到 npm(无构建步骤,lib/ 为手写 ES module),可直接安装。
方式一:从 npm 安装(推荐)
dsh plugin --profile web add aemeath-theme-plugin
自动安装预构建包 → 加入 dsh.profile.bundles 并挂载。也可以指定版本:
dsh plugin --profile web add aemeath-theme-plugin@0.1.1
方式二:从 GitHub 安装
dsh plugin --profile web add github:malyjacob/aemeath-theme-plugin
自动拉取源码 → link 进 profile 的 node_modules → 加入 dsh.profile.bundles 并挂载。
pnpm ≥10 默认拒绝 git 依赖的
prepare构建;本包无构建脚本,首次安装若被 供应链策略拦截,在 profile 的pnpm-workspace.yaml加:allowBuilds: aemeath-theme-plugin: true
方式三:本地路径安装(开发测试)
dsh plugin --profile web add /path/to/aemeath-theme-plugin
方式四:tarball 安装(离线分发)
cd /path/to/aemeath-theme-plugin
npm pack # 生成 aemeath-theme-plugin-0.1.1.tgz
dsh plugin --profile web add ./aemeath-theme-plugin-0.1.1.tgz
方式五:手动 patch(不改 profile)
在 cordis.patch.yml 中插入(或作为 --patch overlay 传入):
- insert:
- id: aemeath-theme
name: 'aemeath-theme-plugin'
若 name 无法由 profile 的 node_modules 解析,先确保该包已安装到 profile 依赖。
机制概要
- 加载:
client-modules扫描dsh.client声明,将lib/client.js作为 factory-CJS 提供给浏览器(window.__ModuleLoader__.load)。 - 主题:
body[data-ds-aemeath]作用域 +--dsw-alias-*token 重映射; 亮度由data-ds-aemeath-mode与原生data-ds-dark-theme共同决定。 - 切换按钮:注册进
conversation.session.header.actions(顶部栏右侧), React 实现,点击切换并持久化,与原生主题亮度同步。 - 壁纸:host 半注册
/aemeath-theme/wallpaper/dark|light路由 (ctx.webServer.register,防路径穿越);client 半创建position:fixed; z-index:-1的壁纸层,同时把--dsw-alias-bg-base等设为半透明让壁纸透出。 - 流光边框:
uV2eYG_card:not(.uV2eYG_cardWorkspaceTrigger)的::before画 conic-gradient 旋转环 +::after不透明遮罩(inset 2px)只露边框。 - 所有 DOM 写入由
ctx.effectdisposer 收回(卸载无残留)。
限知说明
- 壁纸版权归原作者;分发前请确认使用许可。
uV2eYG_card等 CSS Modules 哈希类名随 DSH 构建版本变化; 若未来失效,需按新哈希类名更新lib/client.js的选择器。- 本插件为演示型皮肤:副作用仅限 DOM 层,不请求模型。

