前言¶
DeepSeek Harness(DSH)的界面默认以功能性配色为主。若希望在长会话里保留壁纸里人物的辨识度,同时又让正文、侧栏和弹窗读得清楚,单纯把整窗铺一层半透明底色往往会出现两个副作用:人物被整块蒙住,或文字仍压在图上发虚。dsh-client-ui-skin-saber 是维护者 IanGely 发布的客户端 UI 皮肤插件,在 SkillHub 分类为「趣味换装」;它用分层薄纱、磨砂和语义 token 覆盖,实现亮/暗两套壁纸并跟随 DSH 外观设置,无需前端构建步骤。
这是什么¶
dsh-client-ui-skin-saber(npm 包名 dsh-client-ui-skin-saber,当前资料中版本为 0.1.0,MIT 许可证)面向 DSH Web 端与桌面端。亮色主题使用白天插画壁纸,暗色使用夜景插画;外观为「亮色 / 暗色 / 跟随系统」时,皮肤随 body[data-ds-dark-theme] 自动切换。
实现上不是把图片 base64 塞进 bundle,而是宿主注册 /skin-saber/* 静态路由、客户端在窗口内挂 theme.css,必要时再给 HTTP 场景的 index 注入同一张样式表链接,因此客户端 bundle 体积很小,换图只需替换 assets/ 下 PNG。
核心功能¶
下面按界面区域说明已文档化的行为(均来自项目 README)。
昼夜壁纸与跟随外观 — assets/light.png、assets/dark.png 作为全屏背景画在 body 上,薄纱透明度在亮/暗两套取值中区分,人物区域尽量保持清晰。
长会话阅读区 — 正文落在左侧约 820px 宽的阅读底板上(底色约 55% 不透明度),列左对齐,右侧留白给壁纸人物;输入卡片宽度与阅读列对齐。
插件页等非会话整页 — 无会话阅读列的整页内容铺薄纱,避免文字直接压在壁纸上。
侧栏与右栏 — 左侧栏铺单层半透明并带磨砂;右侧栏默认保持透视,仅在启动卡等区域提高不透明度以便阅读。
设置弹窗与其它面板 — 对话框读 --dsw-alias-bg-layer-2 等 token,本皮肤提高不透明度并对 [role="dialog"] 加磨砂,减轻壁纸透底导致的叠字。
与第三方布局共存 — 对 dsh-better-sidebar 等带 *_editor 后缀的编辑器、以及文件/代码/文档预览面板,在打开时使用近实色底,文件树/终端等未打开预览时仍可透视。
改样式无需重启 DSH — 修改 assets/theme.css 或替换壁纸后,重开窗口或刷新页面即可;插件表变更才需要重启 Harness。
安装与启用¶
资料中的示例针对 macOS 桌面 profile,且使用本机插件目录路径,而非 github:owner/repo 形式的远程一键安装。先把仓库放到可写路径(例如本机 .../dsh-client-ui-skin-saber),再执行 plugin add。
若系统 PATH 中没有 dsh,可使用应用内置 CLI(README 原文):
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop add /Users/angl/Documents/dsh/dsh-client-ui-skin-saber
已安装 dsh 命令时,等价写法为:
dsh plugin --profile desktop add /Users/angl/Documents/dsh/dsh-client-ui-skin-saber
将路径换成你本机存放插件的根目录。写入目标为 ~/.dsh/profiles/desktop,需对该目录有写权限。
安装后重启 DeepSeek Harness,插件表变更在重启后生效。可用下面命令确认条目是否写入 profile:
grep -n "dsh-client-ui-skin-saber" ~/.dsh/profiles/desktop/package.json ~/.dsh/profiles/desktop/cordis.patch.yml
卸载(同样需重启):
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop remove dsh-client-ui-skin-saber
典型用法与迭代¶
日常使用¶
- 在 DSH 外观设置中选择亮色、暗色或跟随系统。
- 打开长会话或插件页,确认阅读列、侧栏与壁纸的层次是否符合预期。
- 若使用
dsh-better-sidebar等扩展,在打开编辑器或右栏预览时检查近实色底是否生效。
自定义壁纸与配色¶
| 改动目标 | 操作 | 是否重启 DSH |
|---|---|---|
assets/theme.css(配色、薄纱、磨砂、壁纸位置) |
保存后重开窗口或刷新页面 | 否 |
assets/light.png / assets/dark.png |
替换文件后刷新;必要时硬刷新以绕过图片缓存 | 否 |
| 安装/卸载插件、改 cordis 补丁 | 按安装流程执行并重启 Harness | 是 |
行宽与阅读区可通过 theme.css 中的 --dsh-chat-user-width(默认 820px)、--skin-read-width 等变量调整,具体选择器与分层表见仓库 README 第 3 节。
目录结构(便于排错)¶
dsh-client-ui-skin-saber/
├── package.json
├── cordis.patch.yml # 插件 id:ui-skin-saber
├── lib/index.js # 宿主:/skin-saber 路由 + HTTP index 注入
├── lib/client.js # 客户端:挂 theme.css
├── assets/
│ ├── light.png
│ ├── dark.png
│ └── theme.css # 皮肤主体
└── test/self-check.mjs
包内提供无依赖自检脚本 test/self-check.mjs,用于核对 bundle、路由与 index 注入等行为。
适用场景与注意¶
适合谁 — 经常在 DSH 桌面端或浏览器直连 dsh web 里长时间对话、又希望界面有明确壁纸主题的开发者;愿意通过编辑 theme.css 微调透明度与行宽的用户。
运行环境与权限 — 插件以当前 DSH 进程权限运行,会向 profile 写入补丁并对外提供本地静态路由。安装前应阅读 lib/index.js、lib/client.js 与 assets/theme.css,并确认 MIT 许可证是否符合你的环境要求。
桌面端与 Web 端差异 — 桌面 Electron 窗口的 index.html 不经过 tapIndex,因此必须依赖客户端 bundle 注入样式;仅装宿主半在桌面端不会生效。README 中对照了 dsh-app:// 转发与社区其它主题插件的注入方式。
版本与 token — 资料注明皮肤覆盖的是 ui-theme 在 0.1.0-rc.5 与 0.2.0-rc.2 间共存的 token;升级 DSH 后若布局 token 更名,可能需要对照上游调整 theme.css。
生态说明 — DSH 奉行「一切皆插件」;SkillHub 目录页由社区维护,与 DeepSeek / 幻方无官方从属关系。本插件 GitHub 星标数为 0(以目录线索为准),不代表功能完整度,但以 README 与源码为准核对行为即可。
结尾¶
dsh-client-ui-skin-saber 把「壁纸 + 分层半透明 + 磨砂」收成一份可热更新的 theme.css,并用宿主/客户端双半注入适配 Web 与桌面两种取页方式。若你要在 Harness 里做昼夜双壁纸且控制阅读区与人物留白,可按上文路径安装到 desktop profile,再从 assets/theme.css 迭代视觉。