EAC-skin-loader: DSH UI 皮肤加载器

DSH 的理念是「一切皆插件」。在开发或使用 DSH 时,调整界面观感是常见需求。传统的换肤方式往往需要直接修改源码或手动管理样式文件,容易引入副作用且难以维护。EAC-skin-loader 提供了一个标准化的加载器,内置 13 款皮肤,支持公约化迁移,旨在让换肤过程更加可控和可恢复。

插件定位

EAC-skin-loader 是 DSH-EAC 维护的 UI 皮肤加载器。它遵循弱约束公约 dsh.ecosystem.ui-skin-loader/v1,作为参考实现。插件包含一个加载器核心和 13 款皮肤制品:2 款内置示例(本仓原创)和 11 款公约化迁移皮肤。

其核心价值在于零副作用的加载机制。在未激活状态下,插件仅登记元数据,不产生任何视觉或行为上的副作用。只有在用户手动激活后,才会切换观感;停用时则会彻底关闭,确保与未安装时保持一致。

核心功能

加载器提供以下功能:

  • 皮肤发现与登记:自动扫描并登记已安装的皮肤。
  • 全局互斥切换:同一时刻仅允许一款皮肤生效。
  • 持久化与跨重启恢复:支持设置跨重启自动恢复当前选中的皮肤。
  • 故障隔离:激活失败时自动回滚,关闭超时则如实标记疑似残留。
  • 跨标签页同步:确保在多标签页环境中观感的一致性。
  • 设置页控制台:在 DSH 设置中提供可视化的换肤控制台(支持亮暗双案自适应)。

兼容性与要求

  • 适配宿主:@deepseek-ai/dsh 0.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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜