dsh-theme-orbital:把 DSH 桌面端打進一片深藍(qujinting/dsh-theme-blue)

前言

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 列出了它改動的幾個層面:

  1. Design tokens:覆蓋兩套 scheme 的全部 --dsw-alias-* 令牌,外加 --dsw-specific-* 表面,顏色、邊框、狀態色、代碼塊、菜單與滾動條都跟隨 DeepSeek Blue。
  2. Geometry:調整圓角階、過渡時長與陰影層級,形成柔和玻璃面、低抬升與冷色調邊框。
  3. Ambience:深藍徑向輝光;掃描線紋理默認關閉,避免在會話上方出現成片橫線。
  4. Structure:框架欄、輸入框、會話區、啓動畫面與滾動條。
  5. Composer:輸入卡片邊緣有一圈緩慢漂移的色帶,光溢出到壁紙上(用 ::before 畫環、box-shadow 投光,不改盒子尺寸、不加 DOM)。
  6. Motion:啓動時播放 4K 入場片,隨後 900 ms 交叉淡入再揭示界面;片源缺失時回退到內置 HUD 自檢動畫。
  7. Window chrome:僅 Windows 桌面端生效,驅動窗口標題欄配色,避免放映時出現白色按鈕塊。
  8. Wallpaper:循環人物壁紙,模糊後沉到會話內容下方,新會話與有對話輪次的會話都會顯示。
  9. 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

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

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

小夜