lyq326/dsh-ink-green:一套純 token 覆蓋的 DSH 墨綠配色

前言

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
羽毛球分组比赛记分
小程序二维码

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

小夜