Zum Hauptinhalt springen
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

Installation

dsh plugin --profile web add github:malyjacob/aemeath-theme-plugin

README

Aemeath Theme Plugin · 爱弥斯主题插件

GitHub

dsh web GUI 的主题皮肤插件(独立可分发 bundle)。基于爱弥斯主题配色方案 (樱粉 × 冰青 × 珍珠白 × 深潮蓝),提供:

  • 浅色 / 深色双主题(顶部栏右侧胶囊切换,持久化到 localStorage)
  • 深色壁纸 Aemeath-Sky-Mechanical-Wings-Mecha.png(机械翼天空)/ 浅色壁纸 Aemeath-Window-Light.jpg(窗景)——固定底层 + 半透明蒙层
  • 用户输入框脉冲流光边框(标志渐变 #EAA1B8 → #F2C5D1 → #65E4E8 → #D982A5 旋转流动 + 亮度呼吸,仅限边框、框内不变)
  • 樱花渐变按钮、冰青/星砂金点缀(状态点、时间戳、commit 徽章边框等)

预览

浅色模式深色模式
LightDark

点击可查看完整大图。

色板

角色浅色深色
主背景#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.effect disposer 收回(卸载无残留)。

限知说明

  • 壁纸版权归原作者;分发前请确认使用许可。
  • uV2eYG_card 等 CSS Modules 哈希类名随 DSH 构建版本变化; 若未来失效,需按新哈希类名更新 lib/client.js 的选择器。
  • 本插件为演示型皮肤:副作用仅限 DOM 层,不请求模型。

Ähnliche Plugins