前言¶
DeepSeek Harness (DSH) 的設計理念是“一切皆插件”。對於開發者或長期使用的用戶而言,純白的對話界面可能顯得單調。dsh-motion-background 插件通過引入動態背景,解決了界面視覺單一的問題。該插件將對話界面的底色替換爲實時演算的畫面或一段素材。
核心功能¶
該插件提供兩類動態背景方案:
- 着色器型(GLSL):利用 WebGL2 進行逐幀實時演算,畫面由代碼生成。
- 媒體型:使用 MP4、WebM、GIF、圖片等素材文件作爲背景,不依賴 WebGL2,在無 WebGL2 環境下也能運行。
插件內核不含任何第三方着色器代碼,通過函數名全詞匹配檢測。此外,插件支持視頻往返播放以避免循環接縫跳變,並根據窗口狀態動態調整幀率(前臺 30fps、失焦 15fps、後臺 0fps)以優化性能。
安裝與啓用¶
插件以文件夾形式掛載,無需通過命令行安裝。
- 在 DSH 插件目錄下創建一個文件夾。
- 在文件夾內放置
mod.json和fragment.glsl(僅着色器型需要)。 - 刷新 DSH 頁面,插件會自動掃描並加載新效果,無需重啓。
效果擴展點¶
着色器型¶
着色器型效果通過 GLSL 代碼實現。在 fragment.glsl 中必須聲明 GLSL 版本和輸出變量:
#version 300 es
out vec4 fragColor;
void main() {
// 你的代碼
}
着色器必須自己實現 hash 隨機數,且不得聲明採樣器。
在 mod.json 中:
* colors 字段必須是 "front" 或 "array",否則效果不可用。
* fragment.glsl 中使用的 uniform 類型必須與內核契約一致。
媒體型¶
媒體型效果通過聲明媒體字段實現。
在 mod.json 中:
* 必須聲明 media 字段。
* media.src 只能是本效果目錄下的文件名,不得包含路徑分隔符或 ..。
* 支持的素材擴展名包括 mp4、webm、gif、webp、png、jpg。
資源佔用與注意事項¶
- 幀率限制:爲了防止 GPU 佔用過高,內核對幀率進行了限制。前臺運行時上限爲 30fps,窗口失焦時降爲 15fps,標籤頁隱藏時停止渲染(0fps)。
- 往返播放:HTML 規範不支持
video playbackRate = -1,往返播放(倒放)需腳本逐幀驅動。在往返播放模式下,loop必須設爲false,否則ended事件無法觸發。 - 不猜測原則:內核不提供默認值,未在
mod.json中聲明的 uniform 不會自動創建。
許可與鏈接¶
- 許可證:MIT
- 倉庫:dsh-motion-background