前言¶
DeepSeek Harness(dsh)的 Web 界面裏有多處 CSS 與 JS 動效,例如「深度求索中…」狀態行的漸變閃爍、命令行掃光、輪次標記等。當操作系統或瀏覽器上報 prefers-reduced-motion: reduce 時,dsh 會在樣式表與部分渲染邏輯裏尊重該無障礙偏好,動效會被關閉或走靜態分支,界面看起來像「光暈停住不動」。
若你本機因其它原因開啓了系統級「減少動態效果」,但仍希望在 dsh 工作站裏看到完整 UI 動畫,可以單獨用插件覆蓋這一偏好,而不必改 dsh 源碼或 node_modules。下面介紹社區插件 dsh-force-motion(維護者 maxesisnclaw,分類:趣味換裝)。
這是什麼¶
dsh-force-motion 是一個面向 dsh Web profile 的 Cordis 補丁插件:在服務端注入的 index 頁面裏運行一小段腳本,讓 prefers-reduced-motion 不再生效,從而恢復 dsh 自帶的界面動畫。它不修改 node_modules,也不依賴 dsh 內部 hashed 類名或 keyframe 名稱,README 說明其設計意圖是在 dsh 升級後仍能繼續工作。
dsh 爲何會關掉動效¶
README 歸納了兩處機制:
- CSS:多個帶動畫的選擇器帶有
@media (prefers-reduced-motion: reduce)守衛,在 reduce 模式下將animation設爲none等;涉及狀態 shimmer、命令行 sweep、turn mark、推理行 sweep 與 retry shimmer 等約七條規則。 - JS:部分 renderer 通過
matchMedia("(prefers-reduced-motion: reduce)").matches走靜態分支。
在上述環境下,即使 dsh 本身定義了動畫,用戶側也會看到靜態界面。
核心功能¶
插件注入腳本後主要做兩件事(均來自官方 README):
- 包裝
matchMedia:使(prefers-reduced-motion: reduce)查詢不再返回匹配。 - 清理同源樣式表中的 reduced-motion 規則:從每個同源 stylesheet 中刪除
prefers-reduced-motion相關規則;當頁面新增<style>/<link>節點時會重新執行,讓基礎動畫聲明重新生效。
結果是 dsh Web UI 中的動畫會照常播放。
安裝與啓用¶
插件以當前 dsh 進程權限運行;安裝前建議自行查看 GitHub 倉庫 源碼與 MIT 許可證。
官方命令安裝¶
針對 Web profile,使用資料中的安裝命令:
dsh plugin --profile web add github:maxesisnclaw/dsh-force-motion
手動安裝¶
將插件目錄複製到 <dsh-install>/plugins/,並在 $DSH_HOME/cordis.patch.yml 中追加:
- insert:
- id: force-motion
name: /absolute/path/to/dsh-force-motion/index.js
完成後重啓 dsh。
驗證與自測¶
README 給出的檢查方式:
- 模型思考時,狀態行應出現 shimmer,而不是靜止漸變。
- 瀏覽器控制台:
matchMedia('(prefers-reduced-motion: reduce)').matches應爲false;插件會輸出日誌dsh-force-motion: reduced-motion suppression neutralised。 - 在插件目錄執行單元測試:
npm test(對應node --test test/*.test.mjs)。
適用場景與注意¶
適合:工作站由本人使用,且明確希望保留 dsh 界面動效;系統或瀏覽器已開啓 reduced-motion,但原因與 dsh 使用無關。
權衡:插件刻意覆蓋無障礙相關的 reduced-motion 偏好。若需恢復 dsh 默認行爲,可卸載插件,或在應用啓動前設置 window.__dshForceMotion = false。
DeepSeek Harness 生態強調「一切皆插件」;插件目錄頁託管於社區站點 SkillHub,與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。
結尾¶
dsh-force-motion 通過前端層面的 matchMedia 包裝與同源樣式表規則清理,在不動 dsh 核心包的前提下,讓 Web UI 動畫在 reduced-motion 環境下繼續播放。需要時可從目錄頁瞭解分類與簡介,並從 GitHub 獲取安裝說明與源碼。
- 目錄頁:https://www.skillhub.cn/plugins/maxesisnclaw/dsh-force-motion
- GitHub:https://github.com/maxesisnclaw/dsh-force-motion