DSH 的設計理念是「一切皆插件」。在使用 DSH Web 進行開發時,默認界面較爲素淨,缺乏區分度,開發者難以快速通過視覺識別不同的工作區。dsh-workspace-colors 插件通過給側邊欄工作區分配專屬顏色、疊加頁面背景色調,以及提供內存監控面板,解決了這一痛點,提升了界面的可讀性與開發體驗。
核心功能¶
這是一個零依賴的 DSH Web 外觀增強插件,主要包含以下三個能力:
- 側邊欄工作區專屬顏色:爲側邊欄的每個工作區分配固定顏色,包括文件夾圖標着色、標題行左側色條及分組背景,適配深淺主題。
- 頁面背景 tint:利用官方
ctx.theme.overrideTokens()token 覆蓋層,給整個界面疊加一層色調。支持明/暗主題,提供 6 個預設色(豆沙綠、暖米、天青、淡紫、櫻粉、墨藍)。 - 內存回收面板:宿主半註冊只讀接口,用於上報 DSH 後端進程的 RSS/CPU 佔用,以及 Chrome renderer 渲染進程的內存佔用合計。同時支持通過配置文件開關
auto-reclaim.sh守護進程。
安裝與啓用¶
使用官方安裝命令添加插件:
dsh plugin --profile web add github:MirrMeur/dsh-workspace-colors
安裝完成後,必須重啓 dsh web 進程才能生效(瀏覽器刷新無法觸發)。
使用配置¶
打開 設置 → 外觀增強,可以配置以下選項:
- 頁面背景:開啓開關,選擇預設色,並拖動強度滑桿(默認 45%)。配置保存在瀏覽器
localStorage中。 - 工作區顏色:開啓開關,點擊「重新分配」按鈕讓系統按順序爲工作區分配顏色。
- 內存回收:查看狀態面板,並開啓守護進程開關。
顏色規則與手動配置¶
插件基於 OKLCH 感知均勻色彩空間 構建。每個工作區顏色由一組固定的明度與彩度構成,只改變色相,確保所有工作區顏色質感一致。色相庫包含 10 個預設(紅、橙、金、綠、青、天、藍、紫、品紅、玫),按工作區首次出現的順序自動分配。如果啓用背景 tint 且工作區顏色與背景色相差異 ≤45°,系統會自動改派顏色以避免衝突。
如需手動指定工作區顏色,可修改 localStorage 中的配置:
const m = JSON.parse(localStorage.getItem('dsh-workspace-colors.map'));
m['日常工作'] = 215; // 0-360 任意色相
localStorage.setItem('dsh-workspace-colors.map', JSON.stringify(m));
技術細節¶
插件宿主半依賴 webServer 注入,客戶端半使用 slots/locale/theme 服務,不依賴 dsh-client-runtime。
關於內存回收接口的 POST restart 操作:該功能僅在 DSH 後端由 launchd 託管(ppid === 1)時有效。手工啓動的後端進程殺掉後不會自動重啓,此時接口會返回 409 not-launchd-managed 錯誤。
卸載¶
如需移除插件:
dsh plugin --profile web remove dsh-workspace-colors