DSH 的理念是「一切皆插件」。在开发或使用 DSH 时,调整界面观感是常见需求。传统的换肤方式往往需要直接修改源码或手动管理样式文件,容易引入副作用且难以维护。EAC-skin-loader 提供了一个标准化的加载器,内置 13 款皮肤,支持公约化迁移,旨在让换肤过程更加可控和可恢复。
插件定位¶
EAC-skin-loader 是 DSH-EAC 维护的 UI 皮肤加载器。它遵循弱约束公约 dsh.ecosystem.ui-skin-loader/v1,作为参考实现。插件包含一个加载器核心和 13 款皮肤制品:2 款内置示例(本仓原创)和 11 款公约化迁移皮肤。
其核心价值在于零副作用的加载机制。在未激活状态下,插件仅登记元数据,不产生任何视觉或行为上的副作用。只有在用户手动激活后,才会切换观感;停用时则会彻底关闭,确保与未安装时保持一致。
核心功能¶
加载器提供以下功能:
- 皮肤发现与登记:自动扫描并登记已安装的皮肤。
- 全局互斥切换:同一时刻仅允许一款皮肤生效。
- 持久化与跨重启恢复:支持设置跨重启自动恢复当前选中的皮肤。
- 故障隔离:激活失败时自动回滚,关闭超时则如实标记疑似残留。
- 跨标签页同步:确保在多标签页环境中观感的一致性。
- 设置页控制台:在 DSH 设置中提供可视化的换肤控制台(支持亮暗双案自适应)。
兼容性与要求¶
- 适配宿主:
@deepseek-ai/dsh0.1.7-rc.2或0.2.0-rc.2。 - 运行时:Node.js >= 24。
- 当前版本:1.2.0。
安装与启用¶
推荐方式:Git 安装¶
这是最高效的安装方式,加载器会随仓内嵌制品安装,无需本地构建。
1、 执行安装命令:
dsh plugin --profile web add github:DSH-EAC/EAC-skin-loader
2、 安装后加载器自动启动。它会根据 packages/loader/skin-manifest.json 检查并补齐缺失的皮肤。该过程不会覆盖你当前正在使用的皮肤,也不会切换观感。
3、 打开 设置 → 皮肤,在底部的「皮肤自动补齐」分区可以查看各包的安装状态(已就绪 / 安装中 / 失败 / 已有其他版本 / 不再自动补回)。
构建安装包¶
如果你需要离线安装或控制构建流程:
1、 克隆仓库并安装依赖:
pnpm install
pnpm build
2、 在仓库根目录执行打包命令:
mkdir -p dist
npm pack --pack-destination dist
3、 在 packages/skins 下对每款皮肤目录执行 npm pack,将产物移动到 dist 目录。
4、 使用 dsh plugin add 逐个安装产物(先加载器,后皮肤):
dsh plugin --profile web add <dist>/dsh-eac-ui-skin-loader-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-aurora-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-inkwash-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-trading-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-dragon-heir-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-whale-song-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-blue-fantasy-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-maid-atelier-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-miku-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-minecraft-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-qq98-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-ths-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-xp-1.2.0.tgz
使用方法¶
安装完成后,重启 DSH:
1、 打开 设置 → 皮肤,进入换肤控制台。
2、 点击卡片上的 激活 按钮。此时系统会应用该皮肤,并确保全局互斥(即旧皮肤会被移除)。
3、 在控制台中选择 跨重启自动恢复,下次启动 DSH 时将保持当前观感。
4、 若激活过程中发生错误,卡片内会显示错误原文;若停用时检测到异常,会如实标记为「疑似残留」。
5、 带自定义设置的皮肤(如「极光之夜」)激活后,可在 设置 → 极光之夜 中进入其专属设置分区。
皮肤清单¶
插件内置 13 款皮肤,包含 2 款内置示例和 11 款公约化迁移皮肤。许可边界为:工程骨架为 MIT,观感内容按其上游许可分发。
| 皮肤 | 包 | 皮肤 id | 许可 | 来源 |
|---|---|---|---|---|
| 极光之夜 | @dsh-eac/skin-aurora |
dsh-eac.skin.aurora |
MIT | 内置示例(本仓原创,带自定义设置面) |
| 水墨青烟 | @dsh-eac/skin-inkwash |
dsh-eac.skin.inkwash |
MIT | 内置示例(本仓原创,无设置面) |
| 交易终端 | @dsh-eac/skin-trading |
dsh-eac.skin.trading |
MIT AND BSD-3-Clause | dsh-web-ui |
| 龙的传人 | @dsh-eac/skin-dragon-heir |
dsh-eac.skin.dragon-heir |
MIT AND BSD-3-Clause | dsh-web-ui |
| 鲸吟 | @dsh-eac/skin-whale-song |
dsh-eac.skin.whale-song |
MIT AND BSD-3-Clause | dsh-web-ui |
| 蓝色幻想 | @dsh-eac/skin-blue-fantasy |
dsh-eac.skin.blue-fantasy |
MIT AND BSD-3-Clause | dsh-web-ui |
| 深海女仆工坊 | @dsh-eac/skin-maid-atelier |
dsh-eac.skin.maid-atelier |
MIT AND CC-BY-NC-SA-4.0 | dsh-external |
| 初音未来 · 电子歌姬 | @dsh-eac/skin-miku |
dsh-eac.skin.miku |
MIT AND BSD-3-Clause | dsh-web-ui |
| Minecraft 方块世界 | @dsh-eac/skin-minecraft |
dsh-eac.skin.minecraft |
MIT AND BSD-3-Clause | dsh-web-ui |
| QQ2008 怀旧版 | @dsh-eac/skin-qq98 |
dsh-eac.skin.qq98 |
MIT AND BSD-3-Clause | dsh-web-ui |
| 同花顺风格 | @dsh-eac/skin-ths |
dsh-eac.skin.ths |
MIT AND BSD-3-Clause | dsh-web-ui |
| Windows XP (Luna) | @dsh-eac/skin-xp |
dsh-eac.skin.xp |
MIT AND BSD-3-Clause | dsh-web-ui |
| 鲸鱼娘昼夜工坊 | @dsh-eac/skin-deep-whale-day-night |
dsh-eac.skin.deep-whale-day-night |
MIT AND CC-BY-NC-SA-4.0 | GGBond2424648901 |
注意事项¶
- 依赖关系:皮肤制品清单指向 GitHub Release 资产。如果在 Release 发布前安装,补齐状态会如实显示失败原因(网络/404),但加载器本体不受影响。
- 许可检查:插件骨架为 MIT,皮肤内容按上游许可。使用前请检查源码与许可证。
- 未纳入项:部分功能插件(如音频通知、诊断落盘)不属于纯皮肤迁移,暂未纳入本次发布。
通过 EAC-skin-loader,开发者可以在 DSH 中通过标准化的方式管理 UI 皮肤,享受公约带来的便利与零副作用的安全体验。项目地址:GitHub。