插件目录 / UI & Skins / dsh-ui-skins
dsh-ui-skins
未验证 edwardyang0011
功能简介
dsh-ui-skins — DSH 插件(界面)
未验证 — 尚未实测
dsh-ui-skins — DSH 插件(界面) 尚未验证——请自行安装测试。
「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
@deepseek-ai/dsh-client-ui-skins
English | 中文
换肤插件(Skin plugin): registers preset color skins as alias-token themes on the ui-theme service, owns the durable ui-skins.skin preference, and registers a Skin row into the settings General section (next to the Appearance row).
Each preset skin is a ThemeDefinition ({ id, colorScheme, tokens }) registered through ctx.theme.register — the theme registry's sanctioned third-party extension point. The theme presenter applies the composed tokens as inline CSS variables on body, so the skins reuse the entire --dsw-* machinery (palette switching, theme/change snapshots, meta theme-color) without touching any stylesheet.
The built-in Appearance row stays the preference authority. The plugin mirrors theme/change and keeps the durable skin id in agreement with whatever preference is live:
- picking a preset skin switches the preference to that skin id and persists it under
ui-skins.skin; - the Default choice restores the built-in preference captured when the skin was picked (or
systemwhen none was); - touching the Appearance row (a built-in preference wins) clears the persisted skin, so the two rows cannot drift — the last write wins.
Durable schema (ui-skins): skin ∈ default | custom | ocean | sakura | forest | midnight (default default), plus the optional custom colors section (scheme, accent, bgBase).
Presets:
| id | scheme | palette |
|---|---|---|
ocean |
light | 蓝绿海洋:海面蓝白底、深青色主色 |
sakura |
light | 樱花粉:樱粉白底、玫红主色 |
forest |
dark | 松林绿:墨绿黑底、翠绿主色 |
midnight |
dark | 深空紫:紫黑底、淡紫主色 |
Swatch chrome colors live in SkinRow.module.css; the token maps in src/skins.ts are the theme values.
Custom colors: the 自定义 (Custom) swatch opens an editor (base palette, accent, background) that derives the full token set from two colors via buildCustomTokenPairs and stacks it as an overrideTokens layer over a registered custom theme — editing colors only replaces the layer, switching the palette re-registers the theme. Colors persist under ui-skins.custom and re-apply on boot; an Appearance-row write clears the custom skin like any other.
Install
Install this package from the repository (the prebuilt lib/ is committed):
pnpm add github:edwardyang0011/dsh-ui-skins
Then register the row in your DSH profile patch — cordis.patch.yml under $DSH_HOME/profiles/...:
- id: ui-skins
name: '@deepseek-ai/dsh-client-ui-skins'
Restart dsh web and pick a skin under Settings → General. The peer dependencies match the published 0.1.0-rc.5 dsh family.
Host prerequisite: persistence needs the ui-skins namespace on the Host API-proxy's Web settings allowlist (WEB_SETTINGS_NAMESPACES in dsh-host-apiproxy). Official builds that ship the skin plugin include it; a stock build without it rejects the browser's settings writes with settings-not-exposed and every choice resets on refresh.
Model Experience
None, as skins are a browser-side preference.
KV Cache effect
None; this package neither assembles nor sends a provider request.
Known Limitations and Deferred Work
- Skins are theme overrides, not full themes — each skin overrides a curated alias-token set; values absent from the override keep the base palette, so a skin does not re-author every surface.
- One scheme per skin — the theme registry pins a
colorSchemeper registered theme, so a skin is either light or dark rather than scheme-aware.
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-ui-skins」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:edwardyang0011/dsh-ui-skins Headless(CLI)profile:
dsh plugin --profile headless add github:edwardyang0011/dsh-ui-skins 实测报告
尚未 L3 验证——若已跑过,见下方失败备注。
备注:验证: install-fail (0.1.0-rc.6) 浏览全部待验证失败 →
使用场景
改变 dsh 的外观或交互方式——一套主题、皮肤或新面板,重塑工作区。
适合谁
在 web UI 里一待几小时、想让它按自己的习惯好看又好用的人。
二次开发建议
皮肤、面板和主题 token 是扩展点——写新皮肤、加面板,或与上游配色同步 token。