前言¶
在 dsh Web 界面里長期使用,背景樣式通常比較固定。如果你想把自己的圖片、視頻放到 dsh 應用背景上,並且不希望面板大面積遮住背景,dsh-wallpaper-skin 提供一個插件入口:把應用背景換成一張靜態圖片或一段靜音循環視頻,同時把面板做半透明,減少遮擋。
它不是臨時樣式腳本,而是持久化插件,包含真實 Cordis 插件和 webserver 路由,安裝一次後持續生效。
插件定位¶
dsh-wallpaper-skin 是 ddbj-hub 維護的 dsh 壁紙皮膚插件。它的目標很具體:給 DeepSeek Harness(dsh)Web 界面增加壁紙背景,並保留界面可用性。
插件支持靜態圖片和靜音循環視頻兩種背景,右下角提供懸浮面板,可在設置頁直接修改壁紙路徑。它使用 MIT 許可證,倉庫裏不包含壁紙素材,需要你自己提供圖片或視頻文件。
核心功能¶
下面介紹已覈實的能力:
- 靜態壁紙:支持
jpg/png/webp。 - 視頻壁紙:支持
mp4/webm,靜音循環播放,作爲裝飾層,不佔音頻。 - 右下角懸浮面板:可打開/關閉壁紙、預覽並選擇當前配置的壁紙。
- 路徑可配置:在
Settings → Plugins → dsh-wallpaper-skin中修改路徑,改完即生效。 - 兼容深色/淺色模式,面板半透明化。
- 持久化插件:真實 Cordis 插件 + webserver 路由,安裝一次後持續有效。
安裝與啓用¶
方式一:使用 dsh plugin 命令¶
推薦先用 dsh 的插件命令安裝:
dsh plugin --profile web add github:ddbj-hub/dsh-wallpaper-skin
這一步會把插件加入當前 web profile。安裝後,profile 的 cordis.patch.yml 裏會出現插件行。隨後重啓 dsh web,插件生效。
方式二:手動 patch¶
如果沒有 git 環境,也可以在 <profile>/cordis.patch.yml 的插件列表裏手動加入:
- insert:
- id: dsh-wallpaper-skin
name: dsh-wallpaper-skin
config:
path: /absolute/path/to/your/wallpaper.mp4
這裏的 path 指向本機壁紙文件的絕對路徑,圖片或視頻均可,支持正斜槓或反斜槓。留空則使用默認背景。
方式三:本地開發 / 內網分發¶
本地開發或內網分發時,可以先把倉庫克隆到本地:
git clone https://github.com/ddbj-hub/dsh-wallpaper-skin.git <本地目錄>
然後在 profile 的 package.json 的 dependencies 里加入:
"dsh-wallpaper-skin": "file:<本地目錄>"
並執行:
corepack pnpm --dir <profile> install
這裏有一個注意事項:file: 依賴有內容緩存,改源碼後需要執行 pnpm remove + pnpm add 刷新,--force 無效。
典型用法¶
安裝並重啓 dsh web 後,可以按下面的方式使用:
1、右下角出現懸浮面板。點擊後可以打開/關閉壁紙、預覽並選擇當前配置的壁紙,也可以跳轉 Settings → Plugins 修改路徑。
2、如果你只想配置路徑,可以直接進入:
Settings → Plugins → dsh-wallpaper-skin
在配置項裏填入壁紙文件路徑。改完即生效,不需要每次重啓。
壁紙文件建議¶
倉庫不包含壁紙素材,請使用自己的圖片或視頻文件。README 給出的建議是:
- 圖片:推薦 1080p 以上,文件儘量小於 10MB。
- 視頻:推薦
mp4 (H.264)或webm,靜音,建議小於 50MB;過長請自行裁剪。 path必須是本機壁紙文件的絕對路徑,支持正斜槓或反斜槓;留空則使用默認背景。
實現與配置細節¶
從已抓取資料看,這個插件的包結構比較直接:
dsh-wallpaper-skin/
├── package.json # 插件聲明:exports ./client + dsh.client { platform: web, immediately }
├── lib/
│ ├── index.js # Host:webserver 路由(info/media/config)+ settings 命名空間
│ └── client.js # Client:右下角懸浮面板,輪詢 info 刷新
package.json 中暴露了 ./client 入口,並且聲明瞭 dsh.client:
"dsh": {
"client": {
"platform": "web",
"immediately": true
},
"bundle": {
"patch": "./cordis.patch.yml"
}
}
客戶端加載方式是通過:
window.__ModuleLoader__.load({ id, factory: (require) => {...} })
其中可以 require("react")。bundle 通過 exports["./client"] 暴露,由 webserver 在:
/plugins/<包名>/client.js
提供。
主題實現上,壁紙作爲裝飾層掛在主框架 .pI_x6G_frame 上,並使用 !important 蓋過主題 presenter 的內聯 token;面板半透明由 CSS 變量控制。
配置讀取有一個容易踩的點:在 Cordis 4 裏讀配置,應使用:
apply(ctx, config = {})
的第二個參數,不要讀 ctx.config。否則可能報:
cannot get property "config" without inject
適用場景與注意¶
這個插件適合想把 dsh Web 界面背景換成自己壁紙的開發者。它比較適合本地環境、內網環境,或者希望在演示時讓界面看起來不那麼默認的場合。
使用前需要明確一點:插件會以當前 dsh 進程權限運行。安裝前建議檢查源碼、依賴和許可證,確認自己可接受其行爲邊界。
另外注意:
- 許可證爲 MIT。
- 倉庫不含壁紙素材,請自備圖片或視頻。
path配置指向本機絕對路徑,留空則使用默認背景。- 本地
file:依賴有內容緩存,改源碼後需要用pnpm remove+pnpm add刷新,--force無效。 - Cordis 4 中讀取插件配置時,使用
apply(ctx, config = {})的第二個參數,不要讀ctx.config。
結尾¶
dsh-wallpaper-skin 解決的是一個很小但具體的問題:讓 dsh Web 界面可以換成你自己的靜態圖片或靜音循環視頻,同時保持面板半透明、路徑可改、面板可預覽。
相關鏈接:
- GitHub:https://github.com/ddbj-hub/dsh-wallpaper-skin
- 社區目錄頁:https://www.skillhub.cn/plugins/ddbj-hub/dsh-wallpaper-skin