前言¶
DSH(DeepSeek Harness)的界面主題同樣走插件化這條路。想給 Web 端換一套配色,常見做法是直接改宿主文件或者寫一堆覆蓋用的 CSS 選擇器;前者會污染源碼,後者容易顧此失彼、碰到寫死的顏色就失效。
下面介紹的 lyq326/dsh-ink-green 是另一種思路:它只做 token 層的覆蓋,把背景、文字、邊框、強調色統一換成低飽和的墨綠灰,界面上真正跳出來的只有一個高飽和亮綠。整份插件沒有佈局改動,也沒有 !important。
這是什麼¶
lyq326/dsh-ink-green 由 lyq326 維護,是面向 DSH Web 端(--profile web)的自建墨綠配色插件。它在社區目錄裏的分類是「趣味換裝」,解決的問題很簡單:讓你在不掉進改樣式泥潭的前提下,把 Web 界面的整體色調交給一套受控的色值。
它的實現方式是純 token 覆蓋:宿主定義的 --dsw-alias-* 與 --dsw-specific-* 全部覆蓋,另有 --shiki-* 與 --dsw-static-* 兜底,合計 146 個 token。插件本身零依賴,不引入佈局層,也不改宿主文件。
配色思路¶
配色的核心約束是色相統一。所有綠色落在 140–150°,飽和度壓在 8–12%,只留一個高飽和亮綠作爲強調色(--dsw-alias-brand-primary,唯一跳到 55% 的角色)。因此界面觀感是「墨綠灰的底」,綠色只出現在按鈕、選中態和焦點環上。
亮/暗雙色的完整角色對照如下:
| 角色 | DSH token | 亮色 | 暗色 |
|---|---|---|---|
| 背景 | --dsw-alias-bg-base |
#EFF5F1 |
#222A26 |
| 卡片 / 浮層 | --dsw-alias-bg-layer-1/2 |
#FCFDFC |
#2A322E / #303A34 |
| 正文 | --dsw-alias-label-primary |
#17261F |
#D1DBD5 |
| 次要文字 | --dsw-alias-label-secondary |
#576B61 |
#99A89E |
| 次級背景 | --dsw-alias-markdown-code-block |
#E0EBE4 |
#343D38 |
| 邊框 | --dsw-alias-border-l* |
rgba(23,38,31,.10–.28) |
rgba(209,219,213,.08–.24) |
| 強調色 | --dsw-alias-brand-primary |
#22774D |
#41C885 |
| 強調色上的字 | --dsw-alias-label-primary-foreground |
#F8FBF9 |
#17261F |
| 側欄 | --dsw-specific-sidebar-fill |
#E8F1EC |
#1F2823 |
對比度方面,亮色正文/背景約 14:1,暗色約 10.4:1。作者在 README 裏說明暗色刻意沒拉滿,是爲了長時間使用時不累眼。
安裝與啓用¶
安裝命令取自插件 README。先添加插件,再重啓 DSH 進程:
dsh plugin --profile web add github:lyq326/dsh-ink-green
systemctl --user restart dsh
如果不方便走 GitHub,也可以用本地打包產物:
npm pack
dsh plugin --profile web add ./dsh-ink-green-1.0.0.tgz
對應的卸載命令是:
dsh plugin --profile web remove dsh-ink-green
目標機前置條件:Node ≥ 20、dsh 0.2.x、pnpm 在 PATH 裏。插件自身零依賴,npm pack 後安裝的是副本,刪掉源目錄不影響已安裝的實例。
改顏色¶
需要調整色值時,不要直接改 lib/client.js——它是構建產物。正確路徑是改生成它的常量定義,再重新生成:
$EDITOR tools/build.py # 修改 LIGHT / DARK 兩組,或 TOKENS 表
python3 tools/build.py # 重新生成 lib/client.js
改完後刷新 DSH 頁面即可,bundle 的 rev 會隨內容變化,無需重啓宿主。
換一臺機器¶
分發到其他機器有三種方式:
- GitHub:
dsh plugin --profile web add github:lyq326/dsh-ink-green - tarball:先
npm pack,把.tgz拷到目標機,再dsh plugin add <路徑>,裝的是副本 - 目錄同步:先
rsync到目標機,再dsh plugin add ./dsh-ink-green,裝的是link:,該目錄不能刪
如果改了顏色,記得先 npm version patch 再發布,否則 pnpm 可能判斷沒有變化。
已知邊界¶
插件 README 明確列出了幾條限制,使用前應瞭解:
- 沒有首屏預着色:首幀仍用宿主原生色,腳本加載後才換成墨綠,深色下可能閃一幀黑灰。
- 只覆蓋 token:組件裏寫死的顏色不會被改動。
- 不碰佈局:沒有 DOM 覆蓋、沒有
!important、未改宿主文件。 - 僅在 Web profile 實測;桌面端是內嵌 Web UI,理論上可用但未驗證。
適用場景與注意¶
適合想把 DSH Web 界面整體調成墨綠風格、又不想改宿主源碼的人。如果你的需求是精細調整某個組件的寫死顏色或佈局行爲,這套插件覆蓋不到。
需要說明的是,插件以當前 dsh 進程的權限運行。安裝前建議先覈對源碼內容,確認你接受項目的授權方式;該項目使用 MIT 許可證,內容爲純色值加一層 token,README 說明不含第三方素材。
結尾¶
dsh-ink-green 的價值在於邊界清晰:它只做 token 覆蓋,把一套受控的墨綠色值交給 DSH Web 界面,改色有明確的生成流程,也如實列出了未覆蓋的區域。
- 目錄頁:https://www.skillhub.cn/plugins/lyq326/dsh-ink-green
- GitHub:https://github.com/lyq326/dsh-ink-green