前言¶
DSH Web 界面裏,動畫、毛玻璃、陰影和漸變分散在 CSS 與 JS 各處。系統自帶的「減少動態效果」只能走一條總路徑,沒法單獨保留進度條動畫、又關掉側欄標題 hover 滾動這類細粒度需求。長時間開着 Web 客戶端時,這些特效也會持續佔用瀏覽器合成與繪製資源。
下面介紹社區插件 dsh-reduce-effects(維護者 azazo1):在插件頁提供配置卡片,按分類開關特效,默認與原生 DSH 一致,關掉哪一項就停哪一項,另有一個總閘可一次關閉全部。
這是什麼¶
dsh-reduce-effects 是 DeepSeek Harness(DSH)的 客戶端(Web) 插件:給 DSH Web 前端增加插件頁配置卡片,用來關閉動畫、毛玻璃、陰影、漸變等特效,降低瀏覽器渲染負擔。
前端特效在 DSH 裏大致分三類:CSS 動畫與過渡、菜單與浮層的毛玻璃、以及 DSH 自帶的 JS 動效(平滑翻頁、跟隨滾動等;僅在系統開啓「減少動態效果」時走即時路徑)。本插件把這些拆成多個分類,每個分類一個開關;web 與 desktop 兩個 profile 跑同一套 Web 應用,同一份包在兩邊通用。
插件以當前 DSH 進程權限運行;安裝前建議在 GitHub 查看源碼與 MIT 許可證。社區目錄 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係。
核心功能¶
配置卡片與總閘¶
打開 插件 > dsh-reduce-effects 卡片。卡片內有一個總閘和一組分類開關;草稿只留在卡片裏,點擊「保存」才寫入當前 profile 的 patch 層並立即生效。所有開關默認打開,界面與未裝插件時一致。
總閘只決定各分類是否生效,不改寫各分類自己的值:關閉總閘時,分類開關變灰並保留原值;重新打開總閘後,分類立刻回到原來的狀態。
分類開關(關閉後會失去的效果)¶
| 開關 | 關掉之後 | 代價 |
|---|---|---|
| 全部特效 | 一次停掉下面每個分類 | 分項開關保留各自的值,但重新打開總閘前不可點 |
| 動畫與過渡 | 裝飾性動畫停掉,過渡壓縮到 1 毫秒 | 入場動畫直接落到終態 |
| 加載與進度動畫 | 進度條與加載指示器的旋轉、脈衝 | 界面看起來像卡住,看不出是否仍在運行 |
| 文字流光 | 運行中節點文字掃動高光,以及思考行與技能行整行掃光 | 運行中節點只剩靜止文字;關「漸變背景」或「動畫與過渡」也會順帶收掉這兩道光 |
| 毛玻璃與背景模糊 | 菜單、浮層的 backdrop blur | 半透明面板後直接露出背後內容 |
| 平滑滾動 | 滾動與跳轉的緩動 | 長列表跳轉更生硬 |
| 標題 hover 滾動 | 側欄會話標題懸停時的逐幀橫向拖動 | 被省略的標題只能靠懸停卡片或改名看全 |
| 陰影與超橢圓圓角 | 面板陰影、文字陰影、超橢圓圓角 | 面板 0.5px 描邊由陰影繪製,邊界會變淡 |
| 漸變背景 | 漸變底紋 | 與圖片共用的 background-image 裝飾也會消失;漸變文字退回當前文字色;會話底部漸隱底板退回純主題底色 |
| JS 動效 | DSH 自帶 JS 動效的即時路徑 | 影響所有讀取 prefers-reduced-motion 的代碼(含其他插件) |
想單獨保留進度條動畫時,只要不關「加載與進度動畫」即可。
實現要點(便於理解行爲)¶
- 樣式覆蓋:組件類名是構建期哈希的,覆蓋規則用通用選擇器加
!important,注入帶data-plugin-css的<style>,卸載時移除。 - 過渡:時長壓到 1 毫秒而非刪除,仍觸發
transitionend,依賴它收尾的邏輯不受影響。 - 動畫:部分場景用
document.getAnimations()與animationstart按關鍵幀名篩選;加載類與裝飾類可分開控制。 - JS 動效:關閉時覆蓋
window.matchMedia,讓prefers-reduced-motion查詢返回 reduce;打開或卸載時恢復。
配置爲 volatile 的插件 Config,entry id 爲 dsh-reduce-effects,落在 profile 的 patch 層。
安裝與啓用¶
引擎要求 @deepseek-ai/dsh-* 不低於 0.2.0-rc.1,且仍在 0.2.x(peerDependencies:>=0.2.0-rc.1 <0.3.0)。更早的引擎線裝不上當前版本。
Web 端(web profile)¶
任選一種安裝方式:
dsh plugin --profile web add azazo1/dsh-reduce-effects
npm 包名:
dsh plugin --profile web add dsh-reduce-effects
固定版本(README 示例):
dsh plugin --profile web add azazo1/dsh-reduce-effects#v0.1.1
GitHub Release 預構建包(安裝時跳過 allowBuilds):
dsh plugin --profile web add https://github.com/azazo1/dsh-reduce-effects/releases/latest/download/dsh-reduce-effects.tgz
本地目錄:
dsh plugin --profile web add ./dsh-reduce-effects
裝完後重啓 dsh web,瀏覽器刷新一次頁面。
桌面端(desktop profile)¶
Electron 應用獨佔管理 desktop profile,dsh plugin 會拒絕 --profile desktop。在應用內插件管理器的安裝入口填寫上面對應的包名或 tarball 地址;裝上後重啓應用並刷新窗口。
典型用法¶
- 按上一節命令安裝並重啓 Web 或桌面客戶端。
- 打開 插件,進入 dsh-reduce-effects 配置卡片。
- 按需關閉分類開關,或先關「全部特效」再逐項微調(總閘關閉時分項不可點,打開總閘後分項恢復關閉前的值)。
- 點擊 保存,配置寫入當前 profile 並立即生效。
若關閉了「JS 動效」,已渲染的界面有時需要再刷新一次才能完全對齊。
適用場景與注意¶
適合誰
- 希望在低配機器或遠程桌面裏減輕 DSH Web 合成開銷的開發者。
- 需要比系統「減少動態效果」更細粒度控制(例如保留加載動畫、關掉毛玻璃)的用戶。
已知限制
- 與系統「減少動態效果」是疊加關係,插件不修改系統設置。
- 只覆蓋 Web 客戶端;桌面端窗口材質(macOS vibrancy、Windows acrylic)由系統與 Electron 負責。
- 關閉「JS 動效」會影響所有讀取
prefers-reduced-motion的代碼,包括其他插件。 - DSH 前端樣式隨版本變化,新出現的特效類別需在本插件中補充規則。
插件當前 npm 版本爲 0.2.0(以倉庫 package.json 爲準)。