前言¶
DeepSeek Harness(DSH)在 0.2.x 裏移除了舊版「設置 → 通用 → 背景圖」。如果你習慣用一張本地圖鋪滿界面、又讓側邊欄和會話區保持半透明以便讀正文,就需要自己補這一層能力。社區插件 dsh-background(維護者 waterc07,SkillHub 分類「趣味換裝」)把該功能以 bundle 形式接回 DSH:選圖、恢復默認、關閉背景都在右下角面板完成,狀態寫在 $DSH_HOME/dsh-background/,不依賴瀏覽器存儲,也不受 Desktop 每次啓動隨機 loopback 端口的影響。
下面介紹插件定位、能力、安裝步驟與日常使用;事實均來自項目 README 與 package.json(版本 1.0.0,MIT 許可)。
這是什麼¶
dsh-background 是面向 DSH Web / Desktop web 客戶端的背景圖插件:任意 JPEG / PNG / WebP 可鋪滿整窗並固定不隨內容滾動;左側欄、會話列、內容列等大塊表面會按淺色 / 深色主題自動半透明,正文對比度仍由罩層保證。插件只在本機 loopback 同源頁面上通過 HTTP 路由讀寫本地文件,不發起外部網絡請求,運行時無額外 npm 依賴。
核心功能¶
整窗背景與半透明¶
- 背景由 CSS 變量
--dsh-wallpaper-image驅動,cover+background-attachment: fixed鋪滿窗口。 - 淺色主題下罩層約 74% 主題底色,深色主題(
data-ds-dark-theme)下約 55%;client 還會掃描列內大面積純色塊並按主題 token 做color-mix(),卸載或「移除」時可還原。
右下角三步操作¶
點擊右下角圓形按鈕打開面板(再點、Esc 或點面板外關閉):
- 選擇圖片:從本地選圖;瀏覽器端最長邊縮至 2560px 並編碼爲 JPEG(質量從 0.9 逐步降到 0.58,直至不超過大小上限)。
- 恢復默認:刪除自定義文件,回到隨包分發的
assets/default.jpg。 - 移除:關閉背景,半透明表面恢復原樣;已保存的
background.bin仍保留在磁盤上。
面板內可預覽當前背景,操作中有文字提示。
持久化與默認圖¶
數據目錄(未設置 DSH_HOME 時:Windows 爲 %USERPROFILE%\.dsh\dsh-background\,macOS / Linux 爲 ~/.dsh/dsh-background/):
$DSH_HOME/dsh-background/
├─ state.json # {"mode":"default"|"custom"|"off","rev":<毫秒時間戳>}
└─ background.bin # 自定義背景的原始字節
無自定義圖時使用內置默認圖;host 不可用時 client 回退到 bundle 內聯的同一張默認圖。
圖片限制(README 表格)¶
| 項目 | 限制 |
|---|---|
| 原始文件 | ≤ 40 MB,且爲 image/* |
| 縮放 | 最長邊 ≤ 2560px |
| 保存格式 | JPEG(透明通道不保留) |
| 存儲 | 編碼後 data URL ≤ 2,000,000 字符(約 1.5 MB,超出需換圖) |
插件沒有用戶可配置項;配置按 $DSH_HOME 共享,不區分 profile,也不支持輪播或多套主題。
安裝與啓用¶
環境要求:DSH 0.2.x(README 寫明在 0.2.1-rc.3 驗證);Web 或 Desktop 界面。TUI / headless 不加載 web client bundle,插件無效。本地改源碼構建需 Node.js 18+;僅在 DSH 裏運行插件不需要系統 Node。
官方 README 給出的安裝流程如下(PowerShell 示例;路徑隨 DSH_HOME 或默認 %USERPROFILE%\.dsh 變化)。
1、放入插件目錄¶
$dshHome = if ($env:DSH_HOME) { $env:DSH_HOME } else { Join-Path $env:USERPROFILE '.dsh' }
$pluginDir = Join-Path $dshHome 'plugins\dsh-background'
New-Item -ItemType Directory -Force (Split-Path $pluginDir) | Out-Null
git clone https://github.com/waterc07/dsh-background.git $pluginDir
2、鏈接到 profile¶
將 $profileName 設爲 desktop 或 web:
$profileName = 'desktop'
$profileDir = Join-Path $dshHome "profiles\$profileName"
New-Item -ItemType Junction -Path (Join-Path $profileDir 'node_modules\dsh-background') -Target $pluginDir
也可用 DSH 插件命令(內部通過 pnpm 建鏈):
dsh plugin --profile $profileName add $pluginDir
3、註冊 bundle¶
編輯 $dshHome\profiles\<profile>\package.json:在 dependencies 中加入 dsh-background,並把 dsh-background 追加到 dsh.profile.bundles 列表末尾(順序即層疊順序):
{
"dependencies": {
"dsh-background": "link:../../plugins/dsh-background"
},
"dsh": {
"profile": {
"bundles": [
"...",
"dsh-background"
]
}
}
}
通常無需再改 profile 的 cordis.patch.yml。
4、重啓 DSH¶
完全退出並重新啓動 DeepSeek Harness(或重新執行 dsh --profile desktop)。右下角出現背景按鈕即表示加載成功。首次安裝須完整重啓;僅刷新頁面不足以註冊 host 路由。
卸載:刪除 profile 下 node_modules\dsh-background 鏈接,並從 dependencies 與 bundles 中移除 dsh-background 後重啓;確認不需要時可手動刪除 $DSH_HOME/dsh-background/。
典型用法¶
經過上面的步驟啓用後,日常只需操作右下角面板:
- 需要個性化:點「選擇圖片」,選本地圖,等待縮放與保存完成。
- 想回到插件自帶默認機甲賽事演示圖(
assets/default.jpg):點「恢復默認」。 - 暫時不要任何背景、恢復不透明 UI:點「移除」。
若把 DSH Web 暴露到局域網或公網,背景相關 API 僅允許 loopback 同源訪問,遠程 origin 會收到 403,這是 README 中的已知限制。
Host 側路由示例(僅供理解數據流,正常使用不必手調):
| 方法 | 路徑 | 說明 |
|---|---|---|
| GET | /api/dsh-background/state |
當前 mode 與 rev |
| GET | /api/dsh-background/image |
返回 JPEG 字節;off 時 404 |
| POST | /api/dsh-background/set |
body 爲 dataUrl 設自定義圖 |
| POST | /api/dsh-background/reset |
恢復默認 |
| POST | /api/dsh-background/remove |
關閉背景 |
適用場景與注意¶
適合誰:在 DSH 0.2.x 的 Web / Desktop 裏希望恢復「整窗壁紙 + 半透明殼層」、且願意把圖片只存在本機 $DSH_HOME 的用戶。
實現依賴:半透明邏輯綁定 DSH 內部類名(如 _frame、_sidebarCol)與主題變量;DSH 大版本若改樣式結構,背景可能仍在但半透明需插件跟進。不提供裁剪、模糊、亮度調節;PNG / WebP 統一轉 JPEG。
安全與信任:插件以當前 DSH 進程權限讀寫 $DSH_HOME/dsh-background/ 並通過 loopback HTTP 服務圖片;安裝前請自行審閱 源碼與 MIT 許可證。SkillHub 目錄頁(waterc07/dsh-background)是社區插件索引,與 DeepSeek / 幻方無官方從屬關係;DSH 生態本身是「一切皆插件」,本插件是其中一條可選擴展。
README 另說明:assets/default.jpg 爲演示用照片,版權歸原權利人,不在 MIT 範圍內;公開分發前請確認授權或替換後執行 node scripts/build.mjs 重建 lib/。
結尾¶
dsh-background 用 host + client 兩半 bundle 把 0.2.x 去掉的背景圖能力補回來:右下角面板完成選圖 / 默認 / 移除,數據落在 $DSH_HOME/dsh-background/,零運行時依賴、無外網請求。需要詳情、截圖與開發構建說明時,見 GitHub 倉庫 waterc07/dsh-background 與 SkillHub 條目 https://www.skillhub.cn/plugins/waterc07/dsh-background。