参与贡献
如何获取源码、本地构建,以及通过测试或代码向 OpenLogi 贡献力量。
OpenLogi 仍处于实验阶段,测试方面的帮助尤为宝贵,支持范围受限于贡献者手头能测试的设备。设备反馈与代码同样有价值:仓库里备有对应的 issue 模板。
- 源码: github.com/AprilNEA/OpenLogi
- 从源码构建:
DEVELOPMENT.md——其中包含
openlogi-agent-mock,让你在没有硬件的情况下也能开发 GUI - 翻译: Crowdin
贡献设备夹具
OpenLogi v0.8.4 新增了引导式贡献流程,可生成经过脱敏的设备配置;对于 HID++ 设备,还会生成可重放的 读取用例。请在 OpenLogi 仓库的克隆中操作,并在采集前阅读完整的 录制流程。
请选择合成的样本 ID,绝不能使用序列号或其他硬件 ID;新输出目录的末级目录名必须与 --id 完全相同。
--name 是便于阅读的合成名称。--device 必须是忽略大小写后完全匹配的显示名称,或完全匹配的已渲染
设备路由;仅当候选设备只有一个时才可省略。存在歧义时命令会拒绝继续。
保持该设备对应的真实代理运行;如果使用非默认配置档,还要让 OPENLOGI_PROFILE 与代理一致。然后运行:
openlogi fixture contribute \
--id mx-master-3s-001 \
--name "MX Master 3S" \
--device "MX Master 3S" \
--output fixtures/devices/mx-master-3s-001第一阶段通过代理读取语义状态,不会回退为直接访问硬件。对于 HID++ 夹具,请按命令提示操作:停止同一个 代理以及 Options+、Solaar 等会访问硬件的其他客户端,然后使用同一台物理设备与同一路由原样重跑命令。 直接采集期间,CLI 会持有对应配置档的代理锁,并拒绝仍处于活动状态或异常的代理端点。不要删除锁,也不要 切换配置档来绕过检查。接收器发现过程可能会启用通知标志并请求设备到达报告,因此直接采集阶段并非完全 零写入;不过录制的八项操作不会更改设置或配对。
如果未获准让 CLI 直接访问硬件,请使用 --profile-only;原始 HID 独立设备也会自动采用该模式。最后进行
离线验证:
openlogi fixture verify fixtures/devices/mx-master-3s-001该命令会检查结构、隐私台账、文件关系与重放帧,但不会访问硬件,也不能证明采集到的语义值一定正确。
向导会在写入夹具文件前对身份信息进行脱敏,也不会上传任何内容。分享前请自行检查生成的 JSON。不要提交 原始流量或日志、原始序列号或接收器 ID、蓝牙地址、配对密钥、主机路径,或私有标识符的哈希。
使用模拟配置开发
openlogi-agent-mock 可载入夹具中的语义 profile.json,无需打开硬件即可提供正常的代理 IPC 接口:
cargo run -p openlogi-agent --bin openlogi-agent-mock -- \
--fixture fixtures/devices/mx-master-3s-001/profile.json夹具模式会冻结电池、摄像头、前台应用与配对状态,便于重复进行 UI 开发;不带 --fixture 时则使用内置的
动态演示。当前行为与启动示例见
openlogi-agent-mock 源码。
致谢
- Windows 移植 —— @davidbudnick:输入钩子、MSI 应用内更新、托盘与设置的对齐
- Linux 移植 —— @cserby:evdev/uinput 钩子、D-Bus
动作、
.deb/.rpm打包 hidpp—— @lus,以openlogi-hidpp的形式内置- Solaar —— @pwr:最完整的开源 HID++ 实现,也是 OpenLogi 的协议参考
- Mouser —— @TomBadash:本地、免账号 Options+ 替代品的先行者
许可
以 Apache-2.0 或 MIT 双许可发布,任选其一。内置的 openlogi-hidpp crate 为
0BSD。OpenLogi 的名称、标志与应用图标不在上述许可范围内,见
design/LICENSE。