dsh-skin-manager:DSH Web GUI 皮肤管理器

前言

在 DSH 的插件化扩展方式下,Web GUI 的外观切换不只是换一个 CSS 文件。它会涉及多个皮肤包如何被发现、设置页入口在哪里、多个皮肤之间如何互斥、切换后的配置如何持久化,以及页面刷新后是否能正常生效。

dsh-skin-manager 是面向 DeepSeek Harness web GUI 的轻量皮肤管理器。它把已安装皮肤集中展示在设置页中,并提供一键应用、默认外观恢复和与 dsh-market 的联动处理。

这是什么

dsh-skin-managerxiaoyangcheng84-svg 维护,许可证为 MIT。它不是一个独立换肤工具,而是挂载到 DSH web profile 的插件:发现已安装皮肤、提供 Settings → Skins 页面、切换活动皮肤,并在已安装 dsh-market 时同步相关状态。

它解决的问题可以概括为三件:

  • 不需要逐个手动维护皮肤包的启用状态。
  • 不需要反复重启 dsh web 来确认皮肤是否生效。
  • 多个皮肤包并存时,需要明确哪些是活动状态、哪些是禁用状态。

核心功能

动态发现已安装皮肤

它会发现已安装的皮肤,包括带 skin.json 的皮肤包,以及不带 skin.json 的市场主题。

已核实资料中给出的识别前提是:皮肤包需要满足文档中的 skin.json 或市场主题条件,并提供预构建的 client bundle。新安装的皮肤不需要额外注册或修改插件代码。

独立设置页

插件在设置侧栏中加入 Settings → Skins 页面。该页面会展示 Default 以及所有已安装皮肤。

一键应用与热更新

在设置页中对某个皮肤点击 Apply 后,插件会重写 profile 中受管理的配置部分。DSH 的配置监听会在数秒内热加载变更;随后按提示点击 Refresh,皮肤即可生效。

互斥启用

同一时间只启用一个皮肤。选择某个皮肤后,其他皮肤处于非活动状态。

恢复默认外观

页面提供 Default 选项。对 Default 点击 Apply,可以恢复 DeepSeek Harness 的默认外观。

与 dsh-market 联动

当环境中已安装 dsh-market 时,从 dsh-skin-manager 应用一个皮肤,还会执行以下操作:

  • 更新 .dsh-market/state.json,避免启动时再次禁用刚选择的皮肤;
  • 卸载可能与新皮肤重叠的过期 dsh-market hot mounts;
  • 在重写 patch 前同步 dsh-market 的内存 disabled 状态。

API 路由

插件提供以下路由:

/api/skin-manager/list
/api/skin-manager/apply
/api/skin-manager/bundle

这些路由分别用于获取皮肤列表、应用指定皮肤、提供皮肤的 client bundle。

安装与启用

使用 github: 源安装时需要机器上可用 git

dsh plugin --profile web add github:xiaoyangcheng84-svg/dsh-skin-manager

如果使用本地检出目录,可以用 link: 方式安装:

dsh plugin --profile web add link:<path>

安装后,可以重启 dsh web,也可以依赖 dsh-market 的 hot install 机制。之后刷新页面,打开 Settings → Skins

典型用法

1、打开 Settings → Skins

2、页面中会看到 Default 以及已安装皮肤列表。

3、对目标皮肤点击 Apply

4、出现提示时点击 Refresh,皮肤生效。

5、如果希望恢复默认外观,对 Default 点击 Apply

适用场景与注意

这个插件适合在 DSH web GUI 中安装多个皮肤包、需要在设置页中集中切换外观,或希望与 dsh-market 保持状态一致的场景。

使用前需要注意:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 许可证为 MIT。
  • 依赖方面,peerDependencies 包含 react ^18.2.0 以及多个 @deepseek-ai 包。
  • 皮肤包识别依赖文档中的 skin.json 或市场主题条件,并且需要提供预构建 client bundle。
  • 切换操作会重写 profile 的 cordis.patch.yml 中由插件管理的部分;非皮肤的用户 patch 行会保持不变。

结尾

dsh-skin-manager 的价值在于把 DSH web GUI 的皮肤发现、启用、互斥和默认恢复收进同一个设置页,并在已有 dsh-market 时处理状态同步。

相关链接:

  • GitHub:https://github.com/xiaoyangcheng84-svg/dsh-skin-manager
  • 插件目录线索:https://www.skillhub.cn/plugins/xiaoyangcheng84-svg/dsh-skin-manager
羽毛球分组比赛记分
小程序二维码

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

小夜