DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。對於習慣於高度自定義界面與交互的開發者而言,普通的點擊反饋往往缺乏辨識度。dsh-bafx 旨在解決這一問題,它爲 DSH 提供了一套《蔚藍檔案》風格的鼠標交互特效,通過側欄入口和彈窗設置,在不干擾主工作區的前提下調整視覺反饋。
插件簡介¶
dsh-bafx 是一個由 AzusaKe 維護的社區插件,歸類於趣味換裝類別。它通過 sidebar.panellist 註冊入口,提供了一套完整的點擊特效與光標拖尾方案。該插件不依賴構建工具,運行時依賴爲零,且在 Web 與桌面端共享同一套實現邏輯。
核心功能¶
該插件主要包含以下功能點:
- 豎排側欄入口:註冊在
sidebar.panellist,與官方 Plugins 入口並列。展開態顯示圖標與文案,窄欄僅顯示圖標。 - 彈窗式設置:點擊入口後,主區保持/回到對話,屏幕中央彈出居中對話框(遮罩 + 卡片)。關閉對話框不會將工作區切換走。
- 十項實時設置:
- 啓用特效 / 點擊特效 / 拖尾 / 拖尾常顯(無需按住)
- 點擊大小(0.50 – 2.00×)
- 拖尾長度(50 – 2000 ms)
- 縮放(0.50 – 2.00×)
- 不透明度(0.00 – 1.00)
- 混合模式(screen / plus-lighter / scene)
- 主題色(取色器)
- 一鍵重置:提供「重置爲默認配置」按鈕,恢復全部默認值並立即生效。
- 零構建與零依賴:上游
ba-click-fx的 25 個 ES 模塊以原始形態隨包分發,由 Host 直接以 ESM 提供。不打包 React,運行時依賴由 DSH 客戶端模塊加載器提供。
安裝與啓用¶
dsh-bafx 已發佈至 npm,可通過 DSH 插件命令行安裝。
Web profile(Node 版)¶
dsh plugin --profile web add dsh-bafx
桌面端(desktop profile)¶
桌面端的 desktop 檔案由客戶端獨佔管理,Node 版 CLI 會拒絕操作。請使用桌面端自帶的 CLI:
& "<DeepSeek Harness 安裝目錄>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add dsh-bafx
其他方式¶
# 從 GitHub 安裝最新代碼
dsh plugin --profile web add github:AzusaKe/dsh-bafx
# 從本地目錄安裝(開發態)
git clone https://github.com/AzusaKe/dsh-bafx.git
dsh plugin --profile web add ./dsh-bafx
注意:客戶端模塊的掃描與 index 注入表在宿主啓動時完成,安裝後必須重啓客戶端才能生效。
典型用法¶
- 打開入口:安裝並重啓後,左側邊欄會出現豎排入口 ✦ 點擊特效(位於官方 Plugins 入口之後)。
- 進入設置:點擊該入口,屏幕中央彈出設置對話框。
- 調整參數:在對話框中調整任意控制項,設置即時生效並寫入
localStorage(鍵名爲dsh-bafx-settings)。 - 關閉對話框:點擊右上角 ✕、點擊遮罩層或按 Esc 鍵均可關閉,此時主區會回到對話界面。
控制項說明¶
| 控制項 | 範圍 | 默認值 |
|---|---|---|
| 啓用特效 | 開 / 關 | 開 |
| 點擊特效 | 開 / 關 | 開 |
| 拖尾 | 開 / 關 | 開 |
| 拖尾常顯(無需按住) | 開 / 關 | 開 |
| 點擊大小 | 0.50 – 2.00× |
1.00× |
| 拖尾長度 | 50 – 2000 ms |
300 ms |
| 縮放 | 0.50 – 2.00× |
1.00× |
| 不透明度 | 0.00 – 1.00 |
1.00 |
| 混合模式 | screen / plus-lighter / scene |
screen |
| 主題色 | 取色器 | #4ca7ff |
| 重置爲默認配置 | 按鈕 | — |
混合模式說明:
screen(默認)在明暗背景上都安全;plus-lighter在暗色背景更亮;scene是嚴格的場景加色語義。
工作原理¶
該插件採用 Bundle 插件架構:
- Host 半區 (
lib/index.js):僅提供路由功能,將/dsh-bafx/src/<name>.js映射到ba-click-fx的 25 個 ESM 源模塊副本。 - Client 半區 (
client/client.js):- 導入特效庫並渲染全屏覆蓋層(
pointer-events:none,不影響交互)。 - 在
sidebar.panellist#bafx註冊入口。 - 在
main#bafx渲染設置對話框,選中時調用layout.selectPanel(null)退回對話。 - 在
shell.overlay#bafx-dialog渲染遮罩與卡片。
- 導入特效庫並渲染全屏覆蓋層(
設計決策:
1. 客戶端模塊而非注入腳本:桌面殼的 index.html 靜態輸出,不支持 webServer.tapIndex() 等函數變換。使用客戶端模塊可保證 Web 與桌面端行爲一致。
2. 側欄入口位置:選擇 sidebar.panellist(豎排全局面板)而非 sidebar.footer.action(橫向底部條),以避免多滿寬入口擠佔,並利用其語義(選中即佔主區)實現無干擾的彈窗體驗。
注意事項¶
- 環境要求:Node.js 版本需 >= 18。
- 免責聲明:本項目爲非官方社區插件,與 NEXON Games、Yostar 及《蔚藍檔案》官方無任何關聯。特效庫基於上游 MIT 許可分發,代碼本身可自由使用。
總結¶
dsh-bafx 通過將複雜的特效庫封裝爲無依賴、零構建的插件,爲 DSH 用戶提供了《蔚藍檔案》風格的視覺體驗。其豎排側欄入口和彈窗設置的設計,兼顧了易用性與界面整潔度。
- 項目目錄:SkillHub 目錄頁
- 源碼倉庫:GitHub - AzusaKe/dsh-bafx