dsh-reduce-effects:按分類關閉 DSH Web 前端特效

前言

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 地址;裝上後重啓應用並刷新窗口。

典型用法

  1. 按上一節命令安裝並重啓 Web 或桌面客戶端。
  2. 打開 插件,進入 dsh-reduce-effects 配置卡片。
  3. 按需關閉分類開關,或先關「全部特效」再逐項微調(總閘關閉時分項不可點,打開總閘後分項恢復關閉前的值)。
  4. 點擊 保存,配置寫入當前 profile 並立即生效。

若關閉了「JS 動效」,已渲染的界面有時需要再刷新一次才能完全對齊。

適用場景與注意

適合誰

  • 希望在低配機器或遠程桌面裏減輕 DSH Web 合成開銷的開發者。
  • 需要比系統「減少動態效果」更細粒度控制(例如保留加載動畫、關掉毛玻璃)的用戶。

已知限制

  • 與系統「減少動態效果」是疊加關係,插件不修改系統設置。
  • 只覆蓋 Web 客戶端;桌面端窗口材質(macOS vibrancy、Windows acrylic)由系統與 Electron 負責。
  • 關閉「JS 動效」會影響所有讀取 prefers-reduced-motion 的代碼,包括其他插件。
  • DSH 前端樣式隨版本變化,新出現的特效類別需在本插件中補充規則。

插件當前 npm 版本爲 0.2.0(以倉庫 package.json 爲準)。

鏈接

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

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

小夜