@skzhang/dsh-appearance:DSH Web 界面外觀管理插件

前言

DeepSeek Harness (DSH) 生態強調插件化與模塊化。對於習慣定製開發環境的用戶而言,分散在多個插件中的主題切換、字體配置以及視覺特效往往顯得繁瑣。@skzhang/dsh-appearance 插件將界面外觀的配置收斂到一個統一的入口,提供主題管理、字體排版調整以及液態玻璃效果支持,旨在讓 Web 端的視覺定製更加集中和高效。

功能說明

主題管理

插件提供 DSH 自帶的淺色、深色和跟隨系統三種模式,並與 DSH 自身的 ui-theme.preference 雙向同步。除此之外,還支持多種預設主題(如 Catppuccin、Dracula、GitHub、Ayu 等)。

預設主題並非簡單的背景色替換,而是通過算法從種子色推導出 90 餘個 DSH token。這些 token 覆蓋了背景層級、分割線、輸入框、菜單、選中態、滾動條、代碼塊、提示框及側邊欄等所有視覺元素。推導過程使用 color-mix 處理透明度與混色,確保在淺色和深色預設之間切換時保持良好的可讀性。顏色值直接取自官方調色板,寫入位置與官方主題一致(body 層),避免自定義樣式被覆蓋。

字體與排版

支持自定義 UI 字體和代碼字體,輸入框會自動掃描系統字體目錄供選擇。字號範圍在 10-24px 之間。

插件支持字體平滑(通過 -webkit-font-smoothing 實現),但該效果僅作用於網頁 CSS 文本,不影響系統級原生控件。在排版方面,可調整會話流密度(控制消息條目間的間距,0 爲最緊湊),以及工具調用的行間距(通過 padding-block 實現,不參與窗口測量邏輯)。

液態玻璃效果

該功能僅作用於頁面中真實存在的浮層,包括菜單(role="menu")和對話框(role="dialog"[aria-modal=true])。用戶可調節模糊、透光程度及浮層範圍。

爲了保證可用性,透光效果設有下限,無論滑桿如何調整,菜單始終保持可讀。關閉該功能時,插件會主動清除 dsh-desktop-assist 插件可能遺留的玻璃樣式,防止半透明層疊加導致的視覺混亂。

持久化存儲

外觀設置通過 DSH 的 settings seam 寫入宿主的 settings.yaml。插件具備智能同步邏輯:
1. 若宿主分區已有用戶層配置,啓動時直接採用。
2. 若宿主從未接受過寫入,保留本地選擇並補寫到宿主,防止默認值覆蓋。
3. 寫入失敗時採用指數退避重試機制,直到分區內容與本地一致。在 memory 模式下,僅依賴 localStorage。

安裝與啓用

通過 DSH 插件命令安裝:

dsh plugin --profile web add @skzhang/dsh-appearance

安裝完成後,重啓 dsh web 或重新打開 Desktop 應用即可生效。在界面的「設置 → 外觀」中即可看到全部設置項,無需額外配置。

開發與許可

該插件使用 MIT 許可證開源。源碼結構清晰,src/client.js 爲瀏覽器端實現,scripts/build.mjs 負責打包。項目支持 node:test,無需額外配置即可運行。

項目地址:https://github.com/shkzhang/dsh-appearance

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

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

小夜