dsh-client-ui-skin-saber:DSH 昼夜双壁纸 UI 皮肤

前言

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

典型用法与迭代

日常使用

  1. 在 DSH 外观设置中选择亮色、暗色或跟随系统。
  2. 打开长会话或插件页,确认阅读列、侧栏与壁纸的层次是否符合预期。
  3. 若使用 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 迭代视觉。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜