前言¶
DSH 桌面端要換首屏,問題不在畫不畫得出來,而在入口受限制:dsh plugin --profile desktop add 會被拒絕,因爲桌面端的 profile 由 Electron 獨佔管理。想改配色、背景圖、工作區卡片和常用入口,通常得去動 DSH 本體,裝卸都不方便。
dsh-my-newhome 把這個需求做成一個插件:不動 DSH 本體,裝上就換首屏,卸載時刪掉掛載點再重啓即可。下面介紹它的功能、裝法和注意事項。
這是什麼¶
dsh-my-newhome 是 DeepSeek Harness 桌面端的自定義主頁插件,維護者是 Semonxue,許可證爲 MIT,當前 package.json 裏版本是 0.2.0。它解決的問題是:在不改 DSH 本體的前提下,替換首屏的配色、背景、Logo、工作區卡片、常用入口,並提供一個 API 用量組件。
插件的展示元數據按官方插件顯示約定放在 locale/en.json、locale/zh.json 和 icon.svg,在 Plugins 頁顯示爲「Custom homepage / 自定義主頁」。
核心功能¶
首屏分主題層和卡片層兩塊。主題層包括配色 token、固定背景層、hero 和側欄品牌位的自定義 Logo。卡片層在輸入框上方,寬度跟隨輸入框實測寬度,窗口變化時也跟着走。
| 功能 | 位置 / 說明 |
|---|---|
| 配色 / 背景圖 / 自定義 Logo | 主題 token、固定背景層、hero + 側欄品牌位 |
| 最近工作區(3×2) | 輸入框上方,半衰期加權活躍度排序,可切最近使用 / 會話數 |
| 常用入口(3×2) | 同上,自動抓本機 Chrome 常訪問站點 + 自定義 JSON 入口 |
| 自定義組件(最多 4 個) | 同上,標題行帶 ↻,點卡片本身也會刷新整行 |
| 設置面板 | 卡片下方 ⚙ 自定義主頁,所有選項都在裏面 |
卡片只在首頁(新會話)出現,打開歷史對話時自動隱藏,避免和既有界面搶位置。
安裝與啓用¶
桌面端 profile 由 Electron 獨佔管理,命令行安裝會被拒絕。README 給了兩種裝法。
先做插件管理器,這是推薦路徑:設置 → 插件 → 選本地目錄。
手動掛載則要改三處文件。第一步,在 ~/.dsh/profiles/desktop/package.json 的 dependencies 里加一條本地 link:
{
"dependencies": {
"dsh-my-newhome": "link:<倉庫路徑>"
}
}
第二步,在 dsh.profile.bundles 末尾追加插件名。第三步,建軟鏈:
ln -sfn <倉庫路徑> ~/.dsh/profiles/desktop/node_modules/dsh-my-newhome
經過上面的步驟,裝完需要重啓 DeepSeek Harness 纔會生效。卸載時把這三處刪掉,再重啓。
典型用法與配置¶
插件數據落在 $DSH_HOME/dsh-my-newhome/ 目錄下:
$DSH_HOME/dsh-my-newhome/
config.json # 配色、透明度、排序策略、入口與組件列表
background.<ext> # 背景原圖
logo.<ext> # 自定義 Logo
圖片不走默認資源方式,而走插件自己的路由 /dsh-my-newhome/asset,帶 ETag,只監聽迴環 + 同源校驗,也不寫進 cordis.patch.yml。
常用入口支持自動抓本機 Chrome 常訪問站點,再加自定義 JSON 入口。API 用量組件默認 5 分鐘輪詢(1–60 可調),數據 60 秒緩存;取數失敗時顯示 — 和原因,不影響其他卡片。
| 供應商 | 顯示 | 來源 |
|---|---|---|
| DeepSeek | 餘額 | 官方餘額接口 |
| MiniMax | 本週剩餘 %,本週不限顯示 ∞ |
coding-plan 配額接口 |
| Cline Pass | 最滿窗口的已用 %(≥80% 轉黃) | 訂閱額度接口,5 小時 / 周 / 月三個窗口,懸停看全部 |
| 其它 | 本機 token 累計 | session_projcache 投影統計 |
key 從 $DSH_HOME/.credentials.yaml 讀取,永遠不會下發到瀏覽器。要加供應商,在 lib/index.js 的 PROVIDER_DEFS 加一條,再在 lib/client.js 的 WIDGET_PROVIDERS 加下拉項即可。
適用場景與注意¶
適合想在 DSH 桌面端自定義首屏、又不想改 DSH 本體的用戶。插件展示元數據放在 locale/ 和 icon.svg,第三方來源下載前應先檢查源碼與許可證(MIT)。插件以當前 dsh 進程權限運行,安裝前同樣應覈對源碼。
有幾點邊界需要寫清楚。Safari 歷史受 macOS TCC 保護,需要授予「完全磁盤訪問」,Chrome 可直接讀。側欄 Logo 槽位需要 0.2.1+ 桌面運行時,舊版只替換首屏 Logo。DSH 內部槽位沒有版本兼容承諾,接口缺失時靜默降級。運行環境要求 Node ^22.19.0 || >=24.0.0,dsh >=0.2.1-rc.1 <0.3.0-0。
開發側,node test/host.test.mjs 跑宿主半邊 55 條斷言;preview.html 是靜態預覽頁,可在裝進桌面端前先看效果。
結尾¶
dsh-my-newhome 的價值在於把首屏定製收斂到一個可裝卸的插件裏,配置集中在 config.json,圖片走插件自有路由,卸載只清三處掛載。目錄頁在 https://www.skillhub.cn/plugins/Semonxue/dsh-my-newhome ,源碼在 https://github.com/Semonxue/dsh-my-newhome 。