dsh-theme-firefly:爲 DSH Web UI 換上流螢螢火主題

前言

DeepSeek Harness(DSH)的 Web 界面默認走功能向設計,配色與氛圍感有限。若你長期在瀏覽器裏跑 dsh web,界面觀感會直接影響專注度與使用意願。社區裏已有若干主題插件,通過覆蓋設計令牌和注入客戶端樣式來改變外觀。dsh-theme-firefly 走另一條路:以《崩壞:星穹鐵道》角色流螢爲靈感,把壁紙、配色、開屏動畫、粒子、背景音樂和打字音效打包成一套可開關的皮膚,裝完重啓即可用。下面介紹它的定位、能力與安裝方式。

這是什麼

dsh-theme-firefly 是 DSH 的 Web UI 主題插件,由 Liu-ZA-81 維護,當前 npm 版本爲 0.1.2。它通過 dsh.client 聲明注入 @deepseek-ai/dsh-client-ui-theme 槽位,在瀏覽器端註冊 cordis 主題模塊,覆蓋 100+ 個 --dsw-* 設計令牌,併疊加壁紙、粒子、音頻等身份層效果。

倉庫地址:https://github.com/Liu-ZA-81/dsh-theme-firefly。社區目錄頁:https://www.skillhub.cn/plugins/Liu-ZA-81/dsh-theme-firefly

核心功能

流螢配色

主題採用深空海軍藍黑、螢火蟲青綠(#00ff87 / #7dff9e)與瑩白文字的組合。ctx.theme.register 註冊令牌後即時生效,覆蓋 DSH Web UI 的配色體系。

壁紙系統

壁紙以全屏 cover 鋪底,界面容器半透明,左側暗、右側亮的漸變遮罩保證聊天區可讀。

通過界面「景」按鈕打開常駐設置面板,支持:

  • 動態(mp4)與靜態(圖片)兩種類型,各自獨立記憶當前壁紙
  • 縮略圖網格選擇、多選移除、隨機輪換池與自定義間隔(默認 5 分鐘)
  • 從本機一次多選導入圖片或視頻,同名同大小自動去重,寫入 IndexedDB 持久化
  • 首次安裝無歷史記錄時,優先展示內置 assets/Default_wallpaper.png

開屏變身動畫

每次頁面刷新播放內嵌 GIF 開屏動畫,帶綠色輝光邊框與「流螢 // FIREFLY」標題。點擊任意處或「點擊跳過」可跳過;系統 prefers-reduced-motion 爲真時自動跳過。

螢火氛圍粒子

「螢」按鈕分四檔:關、星點(12)、曳光(28)、流螢(80)。切換帶 0.9s 淡入淡出,無需刷新頁面。

背景音樂與打字音效

「樂」按鈕控制背景音樂開關,彈出迷你播放卡片,支持上一首、播放暫停、下一首與循環模式(單曲循環 → 列表循環 → 隨機播放),曲目與模式持久化。默認曲庫含 HOYO-MiX 出品的《使一顆心免於哀傷》等曲目。

聊天輸入框打字時,Web Audio 即時合成「咔噠 + 低頻咚」按鍵音;「聲」按鈕可開關。空格與回車音色更低,不依賴外部音頻文件。

彩蛋

  • 在輸入框發送精確匹配 SAM 可重播開屏變身動畫
  • 對話內容觸發右下角表情包 GIF(每回合最多一個),按關鍵詞匹配開心、得意、變身、沒錯、期待、疑惑等情緒

界面操作

四個控制按鈕收在可拖動的毛玻璃長條面板中,自右向左爲「聲」「螢」「景」「樂」。按住面板任意位置可拖動,位置重啓 dsh web 後仍記憶。音樂卡片、壁紙設置與壁紙選擇器相對面板水平居中,並自動保持在屏幕內。按 ESC 可關閉所有浮層。

安裝與啓用

推薦通過 npm 一條命令安裝,npm 包已內置乾淨版 lib/client.js,無需 git clone 或本地構建:

dsh plugin --profile web add dsh-theme-firefly

裝完後重啓 dsh web 即生效。

若需修改內置素材,可從 GitHub 以 link 方式安裝:

git clone https://github.com/Liu-ZA-81/dsh-theme-firefly.git
dsh plugin --profile web add "link:<本目錄絕對路徑>"

改完 assets/ 等目錄後,運行 node build.cjs --clean 重新構建,再重啓 dsh web

卸載:

dsh plugin --profile web remove dsh-theme-firefly

重啓 dsh web 後移除生效。

典型用法

運行時添加壁紙:點「景」→「+ 添加壁紙」,從本機多選圖片或視頻,立即生效並持久化。適合不想改倉庫、只想用自己的背景圖。

調整粒子與音效:拖動面板到合適位置後,用「螢」選粒子檔位、「聲」開關打字音,設置隨會話保留。

打包自定義素材:把壁紙放入 assets/,音樂放入 music/,開屏動圖放入 GIF/,然後執行:

node build.cjs --clean

--clean 只打包 build.include.txt 清單內的官方素材,適合提交或分發;完整構建用 node build.cjs(含第三方素材,僅供本地使用)。

技術實現要點

插件通過 window.__ModuleLoader__.load() 註冊 DSH 客戶端模塊,導出 cordis 插件 { isPlugin, inject: ["theme"], apply }apply(ctx) 中調用 ctx.theme.register 註冊令牌並 setTheme 激活;壁紙、粒子、開屏動畫等通過注入 <style> 與 DOM 實現。動態壁紙用 <video muted loop autoplay>,靜態壁紙用 CSS 背景層,音樂用 <audio>,素材以 base64 data-URI 內嵌進 lib/client.js。架構參考了 dsh-theme-cyberpunk2077 的「令牌層 + 身份層」思路。

適用場景與注意

適合長期在瀏覽器中使用 DSH、希望界面有統一視覺主題的用戶。插件以當前 dsh 進程權限在本地 Web UI 中運行,安裝前建議瀏覽倉庫源碼與 LICENSE,確認素材版權範圍。

主題互斥:多個主題插件都會調用 ctx.theme.setTheme 並注入 !important 令牌樣式,後加載的會覆蓋先加載的。建議同時只啓用一個主題。

素材體積:素材 base64 內嵌進 JS,建議 mp3 ≤128kbps、圖片 ≤500KB、視頻 ≤1080p,避免頁面加載變慢。

版權:代碼採用 MIT 協議。倉庫隨帶的官方角色壁紙、音樂、GIF 等素材版權歸屬米哈遊 / HoYoverse / HOYO-MiX;第三方壁紙請勿隨倉庫公開分發,可通過運行時導入使用。本項目爲粉絲同人作品,與米哈遊、HoYoverse、DeepSeek 無官方關聯。

結尾

dsh-theme-firefly 把流螢的螢火綠配色、壁紙、開屏動畫、粒子、音樂與打字音效整合進 DSH Web UI,一條 dsh plugin 命令即可啓用。若你想給日常智能體工作臺換一套完整皮膚,可以從社區目錄或 GitHub 倉庫入手:

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

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

小夜