SpookyyQ/IPI-Stay-Fly-Driver
GitHub: SpookyyQ/IPI-Stay-Fly-Driver
一款使用 Tauri、React 和 Rust 开发的开源桌面驱动,旨在替代 IPI FLY PRO 无线游戏鼠标的官方网页驱动,提供完整的本地化配置功能。
Stars: 2 | Forks: 0
# IPI STAY FLY 驱动程序

专为 **IPI FLY PRO** 无线游戏鼠标打造的开源桌面驱动。
该应用使用 Tauri、React 和 Rust 构建为快速的原生 Windows 应用,它替代了封闭的网页驱动,提供了一个用于配置 DPI、延迟、无线行为和高级传感器选项的本地工具。
## 为什么开发此项目
创建这个项目是因为官方的网页驱动很难找到,仅提供中文版本,而且显然没有为中国大陆以外的用户考虑。我们的目标是通过一个开放、本地化且易于理解的桌面应用,让中国大陆以外的用户也能更轻松地配置 IPI 鼠标。
对更多设备的支持需要社区的帮助。如果您拥有相关型号的鼠标(例如 **IPI FLOAT 88**、**QI Pro** 或其他兼容 IPI 的型号),非常欢迎您提供协议抓包、USB/HID 标识符以及测试反馈。
[](#requirements)
[](https://tauri.app)
[](https://react.dev)
[](LICENSE)
## 核心特性
- 适用于 IPI FLY PRO 的原生 Windows 应用
- 具备连接状态概览的设备检测功能
- 支持从 50 到 42,000 DPI 的四级 DPI 设置
- 回报率从 125 Hz 到 8000 Hz
- 支持休眠定时器、消抖、抬升距离和工作模式控制
- 高级无线和传感器行为,包括接收器 LED、全功率模式、远距离模式和 20K FPS 采样率
- 包含虚拟鼠标的无硬件 Demo 模式,方便探索 UI
- 简单易用的颜色主题选择
- 支持德语、英语、西班牙语、墨西哥西班牙语、法语、意大利语、波兰语、葡萄牙语和简体中文的多语言界面
- 无需账号,无云端依赖,无遥测数据
## 界面
### Demo 模式
顶部栏包含一个 **Demo** 按钮。启用后,应用会生成一个虚拟的 IPI FLY PRO,这样即使用户没有或未连接实体鼠标,也可以打开设备卡片、浏览每个配置选项卡并体验整个操作界面。
Demo 模式会在应用内通过横幅和徽章进行清晰标记。在此模式激活期间,硬件轮询和所有 HID 读写调用都会被禁用,因此更改设置仅影响本地 Demo 状态,绝不会向真实设备发送任何指令。

### 主题
应用在顶部栏内置了一个小型主题选择器。主题目前会更改强调色、选中的导航状态、标题、控件高亮显示以及其他 UI 装饰元素。可用的主题包括 **Stay Fly Gold**、**Cyber Mint**、**Ice Blue**、**Crimson Pro**、**Violet Pulse** 和 **Monochrome**。
### 语言
语言选择器位于侧边栏中,并使用下拉菜单,以便后续添加更多翻译。当前支持的语言包括:
| 语言 | 区域设置 |
| --- | --- |
| 德语 | `de` |
| 英语 | `en` |
| 西班牙语 | `es` |
| 墨西哥西班牙语 | `es-MX` |
| 法语 | `fr` |
| 意大利语 | `it` |
| 波兰语 | `pl` |
| 葡萄牙语 | `pt` |
| 简体中文 | `zh` |
## 截图
### 传感器微调
配置四级 DPI,并支持以精确的 50 DPI 步长对每个阶段进行微调。

### 延迟控制
在一个聚焦的界面中调整性能配置文件、回报率、消抖时间、抬升距离和运动选项。

### 设备行为
控制接收器 LED 行为、高功率模式、远距离模式、角度捕捉以及 20K FPS 传感器扫描模式。

## 支持的硬件
| 字段 | 值 |
| --- | --- |
| 鼠标 | IPI FLY PRO |
| 厂商 ID | `0x3554` |
| 产品 ID | `0xF517` |
| 传感器 | PixArt PAW3950 |
| DPI 范围 | 50 - 42,000 DPI |
| 回报率 | 125 / 250 / 500 / 1000 / 2000 / 4000 / 8000 Hz |
| 微动开关 | Omron 机械 |
| 重量 | 48 g +/- 2 g |
| 连接方式 | 2.4 GHz 无线、蓝牙、USB 有线 |
| 电池 | 300 mAh |
| 芯片 | Nordic 54L15 |
## 技术栈
| 层级 | 技术 |
| --- | --- |
| 桌面外壳 | [Tauri 1.5](https://tauri.app) |
| 前端 | [React 18](https://react.dev)、TypeScript、Vite |
| 样式 | [Tailwind CSS](https://tailwindcss.com) |
| 原生后端 | Rust |
| HID 访问 | [`hidapi`](https://crates.io/crates/hidapi) |
| 本地化 | [`i18next`](https://www.i18next.com) |
## 环境要求
- Windows 10 或 Windows 11
- WebView2 运行时
- [Node.js 20+](https://nodejs.org)
- [Rust](https://rustup.rs)
- Visual Studio Build Tools 2022(需包含 **使用 C++ 的桌面开发** 工作负载)
Windows 11 通常已预装 WebView2。在 Windows 10 上,如果应用无法启动,请从 Microsoft 安装该组件。
## 快速开始
```
git clone https://github.com/SpookyyQ/IPI-Stay-Fly-Driver.git
cd IPI-Stay-Fly-Driver
npm install
npm run tauri dev
```
## 构建说明
```
npm run tauri build
```
生成的安装程序和发布文件将写入以下目录:
```
src-tauri/target/release/bundle/
```
## 协议说明
该应用通过逆向工程的 HID 帧与鼠标进行通信。
- 帧大小:16 字节
- Report ID:`8`
- 全局校验和:
```
byte[0] = (0x4D - sum(byte[2..=15])) & 0xFF
```
已实现的指令和抓取的协议测试位于 [`src-tauri/src/protocol.rs`](src-tauri/src/protocol.rs) 中。
## 测试
```
cd src-tauri
cargo test
```
## 开发者面板
在应用运行时按下 **Ctrl+Shift+D** 可打开原始 HID 帧面板。这对于协议探索和调试设备通信非常有用。
## 路线图
- 按键重映射
- 更多灯光选项
- 为未经验证的设备功能提供更多已抓取的协议帧
- 打包公开发布
## 贡献
欢迎提交 Pull request 和协议抓包。如果您拥有 IPI FLY PRO 并且能够验证尚未实现的设置,请尽可能附上设备详细信息、应用版本以及抓取的 USB/HID 行为,并提交一个 Issue。
## 许可证
本项目基于 [MIT 许可证](LICENSE) 授权。
标签:React, Rust, Syscalls, Tauri, 可视化界面, 外设配置, 桌面应用, 硬件驱动, 网络流量审计, 自动化攻击, 跨平台