Shelter(dsh-theme-shelter):爲 DSH 界面疊加沉浸式天氣氛圍

前言

在 DeepSeek Harness(DSH)里長時間對話或寫代碼時,界面往往是靜態的淺色或深色主題。若你希望在不改動 DSH 業務邏輯的前提下,給 Web GUI 增加一點「坐在檐下聽雨、看雪或烤火」的氛圍,社區裏有一款歸類爲「趣味換裝」的插件可以做這件事。下面介紹 Shelter(npm 包名 dsh-theme-shelter,倉庫 ifer47/dsh-theme-shelter),維護者爲 ifer47,許可證 MIT,當前 package.json 版本爲 0.3.1。

這是什麼

Shelter 是在 DSH Web GUI 上疊的一層天氣視覺效果:雨會在「玻璃」上留下水痕與濺水,雪在窗外緩慢飄落並堆積,爐火在輸入區下方脈動。它不改變 DSH 的工作方式,只改變你工作時所處的視覺與聽覺環境。入口是右下角 28 px 的小按鈕;其餘時間動畫在後臺安靜運行。

插件通過 Cordis patch 注入客戶端,依賴 @deepseek-ai/dsh-client-ui-theme,面向 Web 平臺(README 標明支持 Web + Desktop)。

三種場景與界面配色

README 用表格歸納了三種場景,語義色(錯誤紅、成功綠、警告琥珀)在各場景中均不改動:

場景 視覺效果 配色傾向
Rain(雨) 每條雨滴獨立速度、隨風傾斜、落地濺水 冷藍灰、深藍陰影
Snow(雪) 兩種晶型在同一風場中飄落,雪岸隨降雪變厚 更冷更白、冰藍點綴
Fire(爐火) 自下方暖色脈動、餘燼、火星、慢煙 暖中性色、琥珀點綴

還可開啓 Night(夜間):深色配色加月光洗照。

安裝與啓用

前置條件:已安裝 DeepSeek Harness(桌面版或 Web 版)。

本地路徑安裝(README 示例)

在 Windows PowerShell 中進入桌面 profile 目錄,用本地路徑添加包(將路徑換成你本機解壓或拷貝後的目錄):

cd "$env:USERPROFILE\.dsh\profiles\desktop"
pnpm add "C:\path\to\dsh-theme-shelter"

隨後在對應 profile 的 package.json 裏,把 dsh-theme-shelter 追加到 dsh.profile.bundles,再 重載窗口(Ctrl+R) 或重啓 DSH。

npm 與市場

同一包發佈在 npm:dsh-theme-shelter,執行 npm i dsh-theme-shelter 可安裝相同 bundle;插件市場也會從 npm 拉取。

README 說明:在 npm 12+ 上,默認可能拒絕遠程 tarball 或 git URL 依賴;若需遠程 tarball 可加 --allow-remote,git 依賴加 --allow-git。本包無 install scripts。

手動 patch(替代方式)

可向 ~/.dsh/profiles/desktop/cordis.patch.yml 追加:

- insert:
    - id: theme-shelter
      name: dsh-theme-shelter

完成任一方式後,同樣需要按 DSH 慣例重載或重啓使 bundle 生效。

典型用法

右下角控制面板

點擊右下角小按鈕可切換:

控制項 作用
Scene rain / snow / fire / off
Intensity light / medium / heavy
Palette 是否套用主題色(動畫開不開都可)
Lightning 僅雨:閃電、閃光、雷聲的間隔與遠近感
Sound 雨、火爲錄音;雪爲程序生成的風噪
Night 深色配色 + 月光

音效: 瀏覽器要求頁面在用戶點擊或按鍵後才允許播放音頻,因此第一次有聲需在交互之後。

首次安裝: 按鈕上方會出現氣泡提示「點這裏切換天氣」;任意點擊或按鍵、或 12 秒 後會消失。按鈕圖標隨場景顯示雲、傘、雪花或火焰。

設置持久化

選項保存在瀏覽器 localStorage["dsh-theme-shelter/v2"],刷新後保留。

控制台 API

在開發者工具中可調用:

__dshWeather.setScene("fire")     // rain · snow · fire · none
__dshWeather.setIntensity(2)      // 1 light / 2 medium / 3 heavy
__dshWeather.setPalette(false)    // 僅動畫,默認界面色
__dshWeather.setSound(true)
__dshWeather.setNight(false)
__dshWeather.reset()

音頻與實現要點(摘要)

  • 雨、火: 約 6.7 MB 實錄;宿主只讀提供 /dsh-theme-shelter/audio/*,支持 Range、HEAD 等;跨域 Origin 返回 403。
  • 雪: 無錄音,用 Web Audio 棕噪低通循環模擬風聲,可在資源加載前啓動。
  • 性能: 粒子數隨視口面積縮放並有上限(雨 520、雪 340、火 64);DPR 上限 2;窗口隱藏時暫停繪製;prefers-reduced-motion 時只畫一幀靜態圖。

配色通過 ctx.theme.overrideTokens() 覆蓋 47 個 --dsw-alias-* token,按鈕填充、品牌色、鏈接與焦點環有意保留原樣。

適用場景與注意

適合誰: 在 DSH 裏希望長時間使用時增加氛圍、又不需要改工作流的開發者;歸類上屬於社區目錄中的「趣味換裝」類插件,與 DeepSeek / 幻方無官方從屬關係,SkillHub 等目錄爲獨立社區站點。

安全與權限: 插件隨當前 DSH 進程與 profile 加載,具備與宿主相同的訪問邊界。安裝前應閱讀倉庫源碼與 MIT 許可證,確認 bundle 與 cordis.patch.yml 符合你的環境策略。README 禁止 將本文中的本地路徑示例當作唯一方式時,勿憑包名自行拼接未在文檔出現的 dsh plugin add 命令。

開發預覽: 倉庫內 preview/preview.html 可單獨打開預覽三場景、夜間模式與面板;profile 用 link: 鏈到本包時,改 client/client.js 後重啓 DSH 即可。

結尾

Shelter 把雨、雪、爐火和可選錄音疊在 DSH Web GUI 上,用右下角按鈕或 __dshWeather 即可切換,不改變對話與工具鏈本身。更多信息見社區目錄頁 ifer47/dsh-theme-shelter 與 GitHub github.com/ifer47/dsh-theme-shelter。

羽毛球分组比赛记分
小程序二维码

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

小夜