dsh-boot-anim:DSH 桌面版 SteamOS 風格啓動動畫

前言

DeepSeek Harness(DSH)採用“一切皆插件”的架構。桌面版在運行時主要加載 app.asar,直接修改該文件存在每次更新覆蓋、重打包損壞安裝或難以回滾的問題。dsh-boot-anim 插件通過宿主側插件契約,利用 webserver/index-inject 機制實現注入,在不觸碰原始源碼的前提下提供啓動體驗的定製化。

這是什麼

dsh-boot-anim 是一個爲 DSH 桌面版設計的啓動動畫插件。
* 維護者:gxpppp
* 分類:趣味換裝
* 許可:MIT
* 核心價值:提供 SteamOS 風格的七段分鏡啓動動畫,以及 UI 由外向內、環環平移的入場過渡效果。

核心功能

  • SteamOS 風格七段分鏡:包含黑屏、鯨魚浮現、雙線內合、輪廓勾勒、中線展開、落白、UI 環環入場等階段。
  • UI 入場過渡:採用由外向內、環環平移的分層入場方式,分爲外層三列、列內主塊、主塊內內容塊三個波次。
  • 宿主側注入:插件通過 webserver/index-inject 注入,屬於宿主側插件,不修改源碼。
  • 零依賴:不依賴額外的第三方庫。
  • 官方素材:使用 @deepseek-ai/dsh-client-ui-primitives 中的鯨魚和品牌字標矢量數據。
  • 安全網:支持 prefers-reduced-motion、按鍵跳過、異常捕獲與降級。

安裝與啓用

  1. 安裝插件
    使用一條命令將插件添加到桌面版 profile:
    dsh plugin --profile desktop add github:gxpppp/dsh-boot-anim
注意:此命令只寫入依賴,不會自動修改 `bundles` 配置。
  1. 配置 bundles
    插件生效必須出現在 dsh.profile.bundles 中。在配置文件中添加包名:
    "dsh": { "profile": { "bundles": [ /* ... */ , "dsh-boot-anim" ] } }
  1. 重啓
    重啓 DeepSeek Harness 桌面版即可生效。

本地開發與調試

如果需要修改動畫或快速驗證代碼,建議從本地安裝:

git clone https://github.com/gxpppp/dsh-boot-anim.git
cd dsh-boot-anim
powershell -ExecutionPolicy Bypass -File install.ps1

此腳本會創建 junction 到 node_modules,修改 lib/ 下的文件後刷新頁面即可看到效果。

技術細節

  • 定位機制:由於 DSH 前端使用 CSS Modules,沒有穩定類名,本插件通過 [data-shell-overlay] 語義錨點定位 UI 分區,並利用 getBoundingClientRect().left 對列進行排序。
  • 鯨魚繪製:直接複用官方組件的矢量路徑,使用 SVG 的 vector-effect: non-scaling-stroke 解決壓扁描邊變細的問題。
  • 過渡邏輯:所有動效集中在 boot-anim.js 的 T 表中,通過 Web Animations API 實現。

注意事項

  • 包名一致性:插件包名必須與倉庫名一致(dsh-boot-anim),否則加載器會靜默跳過該 bundle。
  • 權限運行:插件在當前 DSH 進程權限下運行,安裝前應檢查源碼與許可證。
  • 依賴關係:依賴官方組件 dsh-client-ui-primitives。

結尾

dsh-boot-anim 提供了一種無需重打包即可深度定製 DSH 桌面啓動體驗的方案。通過宿主側注入和矢量動效,實現了接近 SteamOS 原生的視覺體驗。更多細節可查閱 GitHub 倉庫。

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

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

小夜