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