dsh-wallpaper-skin:給 dsh Web 換一張圖片/視頻壁紙

前言

在 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜