ManuSpurs/dsh-skin20260814 ↗★ 1
dsh-skin
Skin switcher + custom wallpaper for DeepSeek Harness: curated --dsw-alias-* palettes, translucent wallpaper with opacity/blur controls, and durable per-user persistence (like Codex themes)
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ManuSpurs/dsh-skin20260814说明文档
阅读完整 README ↗dsh-skin
Skin switcher + custom wallpaper for DeepSeek Harness — a "change the skin" feature in the spirit of Codex themes. It registers a curated catalog of palettes into DSH's built-in theme runtime and adds two rows to Settings → General (below the built-in Appearance row):
- 皮肤 / Skins — pick one of 7 curated palettes (or 默认 / Default to follow the built-in appearance).
- 背景图片 / Wallpaper — set your own background image with opacity and blur controls.
Both choices persist across reloads (localStorage).
How it works
DSH's theme system is token-based: the web shell ships --dsw-* design tokens,
and ThemeRuntime lets third-party plugins register themes that override the
alias layer (--dsw-alias-*) per color scheme. This package is a regular
dual-face plugin:
- Host half (
lib/index.js) — adsh.bundlepatch layer that inserts one loader entry (skin); a no-opapply, exactly like the shipped ui-* packages. - Browser half (
lib/client.js) — adsh.clientbundle (served at/plugins/dsh-skin/client.js) that:- registers 7 curated skins via
ctx.theme.register(...); - restores the saved skin id and applies it with
ctx.theme.setTheme(...); - renders the wallpaper as a fixed backdrop layer (
z-index: -1) and stacks a token override (ctx.theme.overrideTokens) that makes the main canvas (--dsw-alias-bg-base) and sidebar (--dsw-specific-sidebar-fill) translucent, so the image shows through while inner surfaces (cards, inputs, bubbles) stay opaque and readable; - keeps the slot stores in sync with
theme/change(and re-shades the wallpaper when the active skin or light/dark scheme changes); - mounts both rows into
settings.general.item.
- registers 7 curated skins via
Each skin sets its colorScheme (light/dark), which drives
body[data-ds-dark-theme], plus alias-token overrides applied as inline custom
properties on `` by ui-layout's ThemePresenter.
Skins
| id | scheme | vibe |
|---|---|---|
ocean | dark |