|
通信协议从官方 WebHID 网页驱动逐条移植。自动化测试会直接运行原版代码,与本项目逐字节对比发往鼠标的数据。 |
深色 / 浅色主题、5 种强调色、中英文双语。实时显示电量、当前 DPI 和回报率,插拔自动识别。 |
首次连接先从鼠标读取现有映射,你修改之前不写入任何数据。完全离线,不收集任何信息。 |
![]() 性能 · DPI 档位 / 回报率 / 传感器模式 / LOD |
![]() 高级 · 传感器算法 / 消抖 / 休眠 / 接收器灯效 |
![]() 宏 · 录制键鼠操作,精确编辑延迟 |
![]() 浅色主题 · 也可跟随系统自动切换 |
| 功能 | |
|---|---|
| 🖱️ 按键 | 6 个按键自定义:鼠标功能、DPI 循环 / ±、配置切换、禁用、16 种多媒体键、任意键盘键、组合键(Ctrl / Shift / Alt / Win)、火力键(间隔 + 连发次数)、宏 左右键一键互换,并保护"至少保留一个左键" |
| ⚡ 性能 | 1–6 档 DPI,步进 50,X / Y 轴可分离(PAW3395 最高 32000,PAW3950 最高 45000,范围与官方一致) 回报率 125 – 8000 Hz(2000 Hz 以上需要 8K 接收器)· 传感器模式(节能 / 标准 / 电竞)· LOD 静默高度 |
| 🔧 高级 | Motion Sync · 直线修正 · 波纹修正 · 按键消抖 0–30 ms · 休眠时间 · 8K 接收器灯效 · 恢复出厂设置 |
| ⏺️ 宏 | 录制键盘与鼠标按键及间隔,手动修改按键 / 按下抬起 / 延迟,三种循环方式,最多 71 个动作 |
| 💾 配置 | 4 个板载配置,兼容官方 .ict 配置文件与 .icm 宏文件的导入导出 |
| 🔌 设备 | 自动识别与热插拔,电量与充电状态,DPI / 回报率与鼠标实时同步 |
支持型号:G23 · G24 · G23V2 · 零29 · 零39 · Ghero · FM23(与官方网页驱动相同)
前往 Releases 页面 下载对应文件:
🍎 macOS:提示"已损坏"或"无法验证开发者"
应用没有 Apple 开发者证书(仅 ad-hoc 签名),把应用拖进"应用程序"后,在终端执行一次:
xattr -cr "/Applications/Incott Driver.app"🐧 Linux:设备权限(udev 规则)
普通用户访问 /dev/hidraw* 需要 udev 规则:
- deb / rpm / pacman:安装时自动放入
/usr/lib/udev/rules.d/70-incott-mouse.rules - AppImage / tar.gz:首次运行若权限不足,界面会出现「一键安装 udev 规则」按钮(通过
pkexec授权)
安装后重新插拔接收器即可。也可以手动安装:
sudo cp build/linux/70-incott-mouse.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger第一次打开,DPI 数值和我设置的不一样?
鼠标只能读回按键映射和 DPI 档位数,DPI 具体数值、消抖等参数读不出来,所以首次使用时先显示默认值。在你修改之前,软件不会向鼠标写入任何数据。
想完整沿用网页驱动里的设置:在网页驱动里导出 .ict 文件,再点本软件右上角的「导入」按钮。
板载配置是怎么工作的?
与官方逻辑一致:切换配置时,会把该配置的全部设置写入鼠标。按鼠标上的「配置切换」键时,需要软件正在运行才能同步。如果经常用这个键,可以在设置里开启「关闭窗口时最小化到托盘」。
提示「设备被占用」或连接不上?
同一时间只能有一个程序控制鼠标。请先关闭浏览器里的官方网页驱动,再重新插拔接收器后重试。
需要 Node.js 20+。
npm install
npm run dev # 开发模式(Vite 热更新 + Electron)
npm test # 协议差分测试
npm run web # 浏览器预览界面,打开 http://localhost:5178/?mock 使用模拟设备打包
npm run dist:linux # Linux x64 + arm64
npm run dist:win # Windows x64 + arm64
npm run dist:mac # macOS x64 + arm64(需在 macOS 上执行)发布新版本
推送 v* 标签即可触发 GitHub Actions:测试 → 6 个平台 / 架构并行打包 → 自动创建 Release,并附上全部安装包和 SHA256SUMS.txt。
npm version patch && git push --follow-tags项目结构
electron/ 主进程:窗口、WebHID 授权与设备选择、托盘、文件对话框、Linux udev
src/protocol/ 协议层(移植自原版 CBAccess / StProfile / STMacro)
device.js HID 收发、读取设备信息、apply() 写入流程
profile.js 板载配置(.ict 文本格式)
macro.js 宏(.icm 文本格式、320 字节硬件缓冲区)
constants.js 功能码、DPI 表、回报率等常量
src/store.js 业务逻辑(配置切换、按键校验、写入队列…)
src/pages/ 按键 / 性能 / 高级 / 宏 页面
tests/ 差分测试:沙箱运行原版代码,与移植版逐字节比对 HID 报文
original/ 官方网页驱动的原始 JS(仅作测试基准,不打包进应用)
协议说明
所有命令都是 Report ID 9 的 8 字节 Feature Report。读取时先发送命令,等待 25 ms 后调用 receiveFeatureReport,回包第 1 字节是命令回显。宏数据先发 Feature 头 [7, 10, i, 32, 按键号],再通过 Output Report 分 10 包、每包 32 字节下发。
| 写入 | 含义 | 读取 | 含义 |
|---|---|---|---|
1 |
回报率 | 143 |
型号 / 接收器 / 传感器 |
2 |
DPI 档位数值(X / Y) | 142 |
配对状态 |
3 |
DPI 档位数与当前档 | 137 |
设备信息 |
4, 1…5 |
LOD / 波纹 / 直线 / Motion Sync / 传感器模式 | 131 |
档位数与当前档 |
5, 1…3 |
消抖 / 火力键参数 / 休眠 | 134 |
按键映射(134, 9 为当前板载配置) |
6 |
按键映射(6, 9 切换板载配置) |
133 |
无线信号 |
7 |
宏数据头 | ||
8 |
接收器灯效 |
本项目自有代码以 MIT 协议 开源。以下第三方内容不适用 MIT 协议,版权归各自所有者(详见 NOTICE):
Note
本项目是非官方第三方工具,与 INCOTT(因科特)无关联。使用本软件修改鼠标设置的风险由使用者自行承担。






