前言¶
DeepSeek Harness(DSH)側欄裏的終端面板,默認跟着應用的全局主題走。全局切淺色、深色時,終端背景與 ANSI 色也會一起變。若你希望在對話區、設置頁仍用 DSH 主題 token,而終端單獨用 Dracula、Nord 或自建配色,就需要把樣式限定在終端 DOM 子樹內,而不是改全局 CSS 變量。
dsh-terminal-theme 由維護者 wnanbei 發佈,分類爲趣味換裝。它通過可導入的 JSON 色板,爲終端面板提供獨立配色;側邊欄、會話與 Settings 仍讀取 DSH 原有主題。插件當前在 GitHub 上星標爲 0,許可證爲 MIT,package.json 中版本爲 1.0.0。
這是什麼¶
一句話:dsh-terminal-theme 是 DSH 的 bundle 插件,在瀏覽器端爲 [data-sidebar-terminal] 作用域注入配色表,不替換、不包裹終端組件,也不讀寫終端私有狀態。
社區目錄頁:https://www.skillhub.cn/plugins/wnanbei/dsh-terminal-theme
源碼與說明:https://github.com/wnanbei/dsh-terminal-theme
DSH 生態強調「一切皆插件」;SkillHub 等目錄爲社區站點,與 DeepSeek、幻方無官方從屬關係。安裝前請自行閱讀源碼與許可證,插件隨當前 DSH 進程在本地運行。
核心功能¶
下面介紹 README 中已寫明的能力。
僅終端生效。 規則只作用於終端面板;取消主題時僅移除注入的 stylesheet,全局 DSH 主題 token 不變。
與淺色/深色模式解耦。 選定終端主題後,應用切換 light/dark 時,終端仍保持該套顏色。
內置與自定義。 內置包括 Dracula、Nord、Solarized Dark / Light、Gruvbox Dark、One Dark、Tokyo Night、Catppuccin Mocha、GitHub Light。另可在設置頁粘貼 JSON 或從 .json 文件導入;導入時會校驗、規範化並寫入瀏覽器存儲。
可完全還原。 選擇 Follow app theme 後,終端恢復 DSH 默認外觀(含隨應用明暗切換的行爲)。
主題存儲位置。 自定義主題保存在瀏覽器 localStorage,不在 profile 配置裏,DSH 升級一般不會清掉;其他瀏覽器 profile 彼此不共享。
安裝與啓用¶
在 DSH 原生 Plugins 頁:Add plugin → 粘貼安裝 spec → Install。README 給出三種 spec:
| Spec | 適用情況 |
|---|---|
dsh-terminal-theme |
包已發佈到 npm 時使用 |
https://github.com/wnanbei/dsh-terminal-theme |
直接從 GitHub 安裝;pnpm 會克隆倉庫,無構建步驟 |
本地目錄路徑(示例:/Users/wnanbei/code/dsh-terminal-theme) |
本地持續改代碼時用 link: 依賴 |
對話框還支持 tarball、git+https://… 地址,以及指定 registry 的單次安裝。若包未聲明 bundle patch,安裝會被拒絕;倉庫根目錄須爲完整 npm 包。
本地目錄安裝會把文件夾 link 到當前 profile 的 node_modules/dsh-terminal-theme,改代碼後刷新頁面即可生效。GitHub 安裝則是拷貝進 profile,更新需先移除 bundle 再重裝。已存在同包安裝時會提示已安裝;換來源前需先移除原 bundle。
智能體側等價操作爲 plugin_manager 的 install_bundle,參數爲上述 spec 之一。
Release tarball 也可作爲 pinned spec,例如:
https://github.com/wnanbei/dsh-terminal-theme/releases/download/v1.2.0/dsh-terminal-theme-1.2.0.tgz
(示例 URL 來自 README;實際安裝時請與 release 頁上的文件名、版本一致。)
典型用法¶
- 打開右側邊欄的終端面板,進入 Settings → Terminal colors。
- 在 Color themes 下點選一張卡片,終端會立即重繪。
- 選 Follow app theme 恢復默認。
導入主題:
- 在 Import a theme 粘貼 JSON,點 Import and apply;或 Import from file 加載
.json。 - Fill template 會寫入一份可直接改動的完整示例。
- Copy current theme 導出當前色板,改名後再導入可得到變體。
- 自定義主題卡片上的
×可刪除該主題。
主題 JSON 最小結構如下(字段含義以 README 表格爲準):
{
"name": "My Theme",
"background": "#101216",
"foreground": "#d5dae2",
"cursor": "#7aa2f7",
"selection": "#26303f",
"ansi": [
"#101216", "#e05f65", "#78bb7b", "#f1cf8a",
"#70a5eb", "#c68aee", "#74e0c8", "#d5dae2",
"#5b6270", "#ff8a8f", "#9be59d", "#ffe0a3",
"#9ac2ff", "#e0aaff", "#9ff3e0", "#ffffff"
]
}
必填:name(1–60 字符)、background、foreground、ansi(16 色標準序,或 8 色由插件複用到高亮 8 色)。可選:cursor(默認 foreground)、selection(默認 foreground 30% 透明度)、extended(索引 16–255,最多 240 色)。顏色須爲 #rgb 或 #rrggbb 十六進制,導入失敗時頁面會顯示原因。
實現要點與適用場景¶
實現上,插件在終端子樹內重綁 --dsw-alias-bg-base、--dsw-alias-label-primary,並覆蓋 xterm DOM 渲染器的 .xterm-fg-N / .xterm-bg-N。終端原有的 OSC 配色、對比度與光標可見性邏輯保持不變。新增內置主題需在 client.js 的 BUILTINS 增加條目;其餘配色可走 Settings 導入。
適合:長時間在 DSH 內置終端裏跑命令、希望 ANSI 輸出可讀性穩定,又不想動全局 UI 主題的開發者。注意自定義主題只存在當前瀏覽器;換機或清站點數據需重新導入。安裝 GitHub 源前請覈對 cordis.patch.yml 與 client.js 行爲是否符合你的安全預期。
結尾¶
dsh-terminal-theme 把終端配色從 DSH 全局主題裏拆出來:內置多套常見配色,支持 JSON 導入與一鍵跟隨應用主題。目錄與文檔:
- https://www.skillhub.cn/plugins/wnanbei/dsh-terminal-theme
- https://github.com/wnanbei/dsh-terminal-theme