dsh-skin20260814
by manuspurs
dsh-skin 增强版:为 DeepSeek Harness 提供皮肤切换与自定义背景壁纸
安装
dsh plugin --profile web add github:manuspurs/dsh-skin20260814GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
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 <body> by ui-layout's ThemePresenter.
Skins
| id | scheme | vibe |
|---|---|---|
ocean |
dark | DeepSeek-blue deep sea |
graphite |
dark | neutral monochrome |
forest |
dark | green calm |
sunset |
dark | warm purple |
midnight |
dark | pure black OLED |
paper |
light | warm paper |
sakura |
light | pink accents |
Picking 默认 / Default reverts to the built-in appearance (follow system) and clears the stored skin.
Wallpaper
In Settings → General → 背景图片 / Wallpaper:
- 选择图片 / Choose image — pick a local image; the original file is stored as-is (IndexedDB, no recompression) and shown at full quality, kept in this browser only.
- 透明度 / Opacity and 模糊 / Blur sliders tune how the image sits behind the UI.
- 移除图片 / Remove clears it.
The wallpaper lives on a z-index: -1 fixed layer, so it is only visible
through the translucent main canvas and sidebar; message surfaces keep their
solid backgrounds for readability. It also follows your active skin's tint
(switching skins re-shades the translucent surfaces).
Persistence
The wallpaper picture is stored at original quality in IndexedDB (a raw
Blob — the browser's localStorage quota cannot hold a full-size image);
slider values and the skin choice stay in localStorage
(dsh-skin:skin, dsh-skin:wallpaper-opacity, dsh-skin:wallpaper-blur).
DSH's Host settings wire only exposes an allowlisted set of namespaces to
browser clients (WEB_SETTINGS_NAMESPACES in dsh-host-apiproxy), so a
third-party namespace would answer settings-not-exposed; the product itself
keeps remote browser preferences process-local, and localStorage matches that
boundary for a visual preference while surviving reloads on the same origin.
Install
From anywhere, add the package to the web profile:
dsh plugin --profile web add -w /path/to/dsh-skin
The
-wflag is required: every profile ships apnpm-workspace.yaml, so pnpm 9 treats the profile directory as a workspace root and refuses a bareaddwithERR_PNPM_ADDING_TO_ROOT.
This runs pnpm in ~/.dsh/profiles/web, installs the package, and appends it
to dsh.profile.bundles (its patch layer inserts the skin loader entry).
The running web server must be restarted to pick up the new bundle layer:
# stop the running instance, then:
dsh web
Open Settings → General to use both features.
Publishing (npm)
DSH (rc.6) has no separate plugin marketplace — the plugin distribution
channel is the npm registry. A package that declares dsh.bundle (host patch
layer) and dsh.client (browser bundle) is exactly what dsh plugin --profile <name> add <package> installs, so publishing this package to npm is
what "上架" means today:
- Pick a unique name (scoped names are safer, e.g.
@yourscope/dsh-skin) and fill inauthor,repository,keywords, and a CHANGELOG. - Make sure
filesshipslib/index.js,lib/client.js,lib/types,cordis.patch.yml(already configured). - Publish to the official npm registry (this machine's default registry is
a mirror — publishing to a mirror does not reach npmjs):
npm publish --registry https://registry.npmjs.org - Users install with:
then restartdsh plugin --profile web add -w @yourscope/dsh-skindsh web.
Known platform boundaries to document for users: browser-side preferences are
stored in localStorage (third-party settings namespaces are not exposed over
the wire yet), and the client bundle may only require module-table entities
(platform seeds + registered client bundles).
Development
The client bundle is written directly in the __ModuleLoader__ bundle format
(the same shape tsdown emits for the shipped ui-* packages), so no build step
is required. lib/client.js may require only module-table entities: platform
seed words (react, react/jsx-runtime, …) and registered client bundles
(@deepseek-ai/dsh-client-runtime/client, @deepseek-ai/dsh-client-ui-theme/client,
…). After editing, restart the web server (bundle content is re-hashed and
served with a new rev; loader entries are rescanned at boot).
原始 README: https://github.com/ManuSpurs/dsh-skin20260814/blob/main/README.md ↗
同类插件
查看全部 →
maid-atelier
DSH Web 鲸鱼娘皮肤系列(深海女仆工坊 maid-atelier)。

dsh-deep-whale
DSH Web 鲸鱼娘皮肤系列(深海女仆工坊 maid-atelier)。

dsh-wallpaper-engine
DSH 网页界面壁纸:把本机 Wallpaper Engine 的 Video/Web 壁纸实时播放到聊天界面后方,Scene 壁纸提取主纹理作为静态帧,支持内容分级/类型过滤、自定义壁纸上传与 iOS 液态玻璃设置窗口。

deepseek-harness-desktop
开源Windows桌面客户端和GUI——DeepSeek Harness——零配置安装器,包含Codex、插件、技能、SSH、移动远程访问和11种皮肤。

dsh-liang-skin
DeepSeek Harness 滑动变阻器皮肤

deepseek-harness
为 DSH Web 设置本地图片与 MP4 视频背景:侧栏「背景」面板、可保存主题(含内置「画窗」)、声音开关、恢复上次背景,以及 /bg、/bg-theme、/bg-clear 命令。