前言¶
DSH 的理念是「一切皆插件」。dsh-mood-light 是面向 DSH Web 界面的客戶端插件,根據當前會話的運行狀態,在屏幕最外層顯示一圈氛圍光。它不介入操作,只是把會話狀態轉成顏色和節奏。
這是什麼¶
dsh-mood-light 會在 DSH Web 界面的屏幕最外層顯示不同顏色、不同轉速/閃動節奏的光。默認效果是柔光暈,也可以切換爲跑馬燈或線性漸變。
給定的倉庫安裝入口爲 lihang-lh/dsh-moon-light;下文安裝命令按該入口給出。
核心功能¶
- 根據 DSH 會話狀態顯示不同光效:運行中顯示綠色光帶流動 + 閃動;完成/空閒顯示粉色光帶;有待處理顯示黃色光帶;無會話/空白/已禁用時關閉。
- 默認柔光暈(散光),可選跑馬燈(旋轉光帶)與線性漸變(靜止)。
- 在設置面板註冊「氛圍燈」頁面,參數可可視化調節,並持久化到
localStorage。 - 可調節啓用開關、光圈寬度、不透明度、效果樣式、光帶樣式、跑馬燈轉速、擴散範圍、不規則強度、亮度閃動、狀態漸變色,並支持恢復默認。
- 光帶爲純裝飾,
pointer-events: none,不遮擋任何操作。 - 支持
prefers-reduced-motion時自動停止動畫。 - 支持本地
link:安裝、卸載,以及通過 profile 補丁覆蓋部署級默認。
安裝與啓用¶
先使用給定的 GitHub 安裝入口:
dsh plugin --profile web add "github:lihang-lh/dsh-moon-light"
裝完重啓 dsh web,然後刷新頁面即可看到效果。客戶端插件名錄在啓動時組合,因此安裝後需要重啓。
開發期可以用本地路徑安裝:
dsh plugin --profile web add "link:/你的本地路徑/dsh-moon-light"
卸載:
dsh plugin --profile web remove dsh-moon-light
設置與持久化¶
打開 DSH Web 的設置面板,進入「氛圍燈」頁面。頁面裏的參數可可視化調節,並保存到 localStorage。配置優先級爲:
localStorage > 插件行 config > 內置默認
第三方插件的命名空間不在宿主 settings wire 的暴露白名單內,所以用戶配置保存在 localStorage。
覆蓋部署級默認¶
通過 ~/.dsh/profiles/web/cordis.patch.yml 中 id: mood-light 的 config 覆蓋部署級默認。可以寫成一個 profile 補丁:
# ~/.dsh/profiles/web/cordis.patch.yml
- id: mood-light
config:
# 在此覆蓋部署級默認
這種方式不修改插件本體,適合部署時統一調整默認值。
本地開發與預覽¶
對 bundle 做語法檢查:
node --check client.js
運行狀態映射、配置合併、持久化、柔光暈渲染測試:
node scripts/test.cjs
不安裝插件時,可以用瀏覽器打開 docs/preview.html 預覽效果。
適用場景與注意¶
適合需要在 DSH Web 界面快速感知會話狀態的用戶:運行中看到綠色光帶流動 + 閃動,有待處理看到黃色光帶,完成/空閒看到粉色光帶。
插件以當前 dsh 進程權限運行。安裝前應檢查源碼與許可證。該插件許可證爲 MIT。
鏈接¶
GitHub 倉庫:https://github.com/lihang-lh/dsh-moon-light
插件線索中給出的目錄頁:https://www.skillhub.cn/plugins/lihang-lh/dsh-moon-light