kinmat-A/dsh-theme-switch
一款轻量级的 DSH 主题外观切换插件:自动检测已装皮肤,一键互斥切换,全部停用时回退官方外观,即时生效、重启保留。
Bundle 已验证
BSD-3-Clause
TypeScript
未知
Bundle 已验证
已收录
1
Market
Bundle 已验证
★ 1
在 GitHub 查看
预览
功能介绍
DSH 主题切换:自动检测已安装的皮肤/主题,在设置页一键互斥切换,全部停用时回退官方默认外观,切换即时生效并跨重启保留。
适合
- 安装了多个 DSH 主题、希望集中切换的用户。
- 希望同一时间只启用一个第三方皮肤,并可回退官方主题的管理员。
- 希望主题启用状态在 DSH 重启后仍保留的用户。
不适合
- 没有安装第三方主题的环境,此时切换器相较官方外观价值有限。
- 无法通过包名、皮肤元数据或 bundle patch 启发式识别,且又未手动配置的主题包。
- 希望设计或编辑主题的用户;该插件负责启用状态管理,而不是创建配色。
README
@dsh-external/dsh-theme-switch
DSH 主题切换:自动检测已安装的主题/皮肤插件,在 设置 → 插件 → 皮肤 里提供官方风格的一键开关。
安装
dsh plugin --profile web add github:kinmat-A/dsh-theme-switch
装完重启 dsh web(或由 dsh-market 插件市场安装并热激活),打开 设置 → 插件 → 皮肤。
使用
在 设置 → 插件 → 皮肤 点击按钮即可切换皮肤;切换后刷新一下浏览器页面(Ctrl+F5),新皮肤才会显示。
截图
「皮肤」标签页(设置 → 插件 → 皮肤),深色主题:

注:图片中出现的主题外观仅为展示用。
特性
-
自动检测:扫描 profile 的 dependencies + bundles,按包名 /
skin.json/ bundle patch 行启发式识别皮肤(可用config.themes手动补充)。 - 互斥切换:点击某套皮肤的按钮即启用它并自动停用其余所有皮肤;再点一次则停用它。
- 官方回退:所有皮肤都停用时自动回到官方默认外观(面板里的「官方 DSH 皮肤」行有对应按钮)。
-
即时生效 + 跨重启保留:开关状态写入 home 层补丁
~/.dsh/cordis.patch.yml,由 dsh 启动流程实时监听并每次启动重放;修改后无需重启。
开发
pnpm install # 首次(需网络)
pnpm run build:client # 编译 client(tsdown)
结构
-
lib/index.js— host 入口(纯 ESM,零依赖):皮肤检测、home 补丁读写、HTTP API。 -
src/client/index.tsx→lib/client.js— 官方风格设置标签页(--dsw-alias-*token + primitives)。 - API:
GET /@dsh-external/dsh-theme-switch/api/themes、POST …/api/toggle {id}(id为__official__时停用全部皮肤)。
License: BSD-3-Clause
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:kinmat-A/dsh-theme-switch。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。