前言¶
DSH(DeepSeek Harness)讲究「一切皆插件」,但桌面端改外观往往只能靠手写自定义 CSS 覆盖 --dsw-alias-* 变量,改一次颜色就要重查 token 名,退出或升级后还得自己还原。下面介绍的 qujinting/dsh-theme-blue(包名 dsh-theme-orbital)把整套深蓝配色、入场动画和会话壁纸做成了一个可插拔主题,装完即用,卸载即还原。
它由 qujinting 维护,分类为「趣味换装」,在社区目录页标注 1 stars。源码遵循 MIT 协议。它解决的问题是:让 DSH 桌面端的 Web GUI 呈现统一的深海蓝观感,而不需要用户自己去改安装目录里的文件。
这是什么¶
一句话定位:一个 DSH 桌面端主题插件,把 Web GUI 变成单一品牌蓝、按明度分层的深空界面,并附带启动时的 4K 入场动画与会话壁纸。
它属于社区目录站点上的第三方插件,与 DeepSeek 官方无官方从属关系。
核心功能¶
插件通过覆盖 DSH 的设计令牌(design tokens)实现换装,README 列出了它改动的几个层面:
- Design tokens:覆盖两套 scheme 的全部
--dsw-alias-*令牌,外加--dsw-specific-*表面,颜色、边框、状态色、代码块、菜单与滚动条都跟随 DeepSeek Blue。 - Geometry:调整圆角阶、过渡时长与阴影层级,形成柔和玻璃面、低抬升与冷色调边框。
- Ambience:深蓝径向辉光;扫描线纹理默认关闭,避免在会话上方出现成片横线。
- Structure:框架栏、输入框、会话区、启动画面与滚动条。
- Composer:输入卡片边缘有一圈缓慢漂移的色带,光溢出到壁纸上(用
::before画环、box-shadow投光,不改盒子尺寸、不加 DOM)。 - Motion:启动时播放 4K 入场片,随后 900 ms 交叉淡入再揭示界面;片源缺失时回退到内置 HUD 自检动画。
- Window chrome:仅 Windows 桌面端生效,驱动窗口标题栏配色,避免放映时出现白色按钮块。
- Wallpaper:循环人物壁纸,模糊后沉到会话内容下方,新会话与有对话轮次的会话都会显示。
- Controls:侧栏底部提供切换(
≈ 深潜主题)与重播(▷),可随时切回原生界面而无需重装。
配色取自 README:BASE #050A14、PANEL #070F1C、SURFACE #0B1626、GLASS #1B1E25,品牌色 #4D6BFE,beam #8AA2FF,ink #E6EDFB,muted #55688A,所有发丝线为品牌色 14%。
需要注意:这是「锁定深色」的单一方案,不跟随 DSH 的外观偏好设置;即使应用里设成浅色,呈现的仍是深蓝投影。想用原生浅色界面,请在侧栏控件切回经典 UI。
安装与启用¶
README 的安装命令如下(注意其中 link: 指向作者本机路径,使用前需替换为本地插件目录):
# 1) Fully quit the DSH desktop app (the desktop profile refuses package changes while it runs)
# 2) Install (link to this directory)
dsh plugin --profile desktop add "link:D:/project/qujinting/dsh-plugin/theme"
# 3) Start DSH again
等价做法是把 dsh-theme-orbital 加入 dependencies(同样用 link: 指向该目录),并写入 $DSH_HOME/profiles/desktop/package.json 的 dsh.profile.bundles,然后在该 profile 下执行 pnpm install。
卸载命令:
dsh plugin --profile desktop remove dsh-theme-orbital
安装前必须先完全退出 DSH 桌面端,因为桌面 profile 在运行时拒绝包变更。
典型用法¶
插件默认配置写在 cordis.patch.yml 中,用户可以在自己的 profile patch 里针对 id: theme-orbital 覆盖。常用项:
enabled:总开关,设为false时不做任何注入。animation:hud|fade|none。introVideo/backgroundVideo:影片路径相对包根目录;设为空字符串则分别回退到 CSS HUD 幕布、或关闭壁纸。backgroundScope:always让壁纸也留在进行中的会话背后,empty则只在无对话轮次时显示。backgroundOpacity/backgroundBlur与backgroundOpacityConversation/backgroundBlurConversation:分别控制空会话与进行中会话下的不透明度和模糊值。playOn:always或cold(每个窗口会话只播一次)。durationMs/holdMs/introTailMs:幕布最短时长、影片真正结束时的冻结时长、以及影片结束前多久就开始交叉淡入。titleBar:Windows 原生标题栏在放映期间的处理,hide|blend|off。scanlines/grid/glow:扫描线纹理(默认关)、中栏辉光、以及辉光强度档位(同时缩放 composer 色带)。
introTailMs 是连续观感的关键:随附影片结尾有约 1.5 s 近乎静止的画面,控制器会在影片结束前 introTailMs 就开始 900 ms 淡入,避免停在最后一帧再硬切。若更在意影片最后几帧,可降低该值;设为 0 则恢复「等影片真正结束 → holdMs → 淡入」。
自带影片方面,videos/ 下提供两段入场导出(120 帧与 60 帧 4K)和两段循环背景,也支持自备 mp4/webm;插件只伺服视频扩展名,且只从包内提供。
实现方式¶
DSH Web 端没有一等公民的「主题插件」概念,插件借用四条接缝:index 注入(webserver/index-inject + webServer.collectIndexInjections())、token 层(用 !important 压过 <body> 上的内联样式)、表面覆盖与几何层。README 还注明它只贡献一行 Loader 与 index 注入,不写入 DSH 安装目录、不动 Electron 外壳、不碰会话数据。
适用场景与注意¶
适合想要统一深蓝观感、又不想手改 CSS 的 DSH 桌面端用户。安装它会切换界面主题,且不跟随系统外观;若同时使用其他依赖 --dsw-alias-* 的插件,需自行确认样式优先级。
插件以当前 DSH 进程权限运行。安装前请检查源码与 MIT 许可证,并留意它引用的影片文件位于包内、仅在本机被伺服。目录站是独立社区站点,不是 DeepSeek 官方应用商店。
结尾¶
dsh-theme-orbital 把换装这件事收敛为一条安装命令加一组配置项,卸载后界面干净还原,适合想换口味又怕留下残留的桌面端用户。
目录页:https://www.skillhub.cn/plugins/qujinting/dsh-theme-blue
GitHub:https://github.com/qujinting/dsh-theme-blue