罗技官方驱动 Logitech Options+ 长期被用户抱怨三点:必须登录账号、后台常驻云同步与遥测、安装包与运行时资源占用偏重。GitHub 上一个 Rust 项目给出了另一条路:OpenLogi,通过 HID++ 协议直连设备,把按键重映射、DPI、SmartShift 滚轮等配置全部放在本地一个 TOML 文件里完成,无账号、无遥测、无云依赖。

OpenLogi 由开发者 AprilNEA 于 2026 年 5 月创建,截至 8 月中旬已积累约 1.14 万 star,当前版本 v0.7.1(2026 年 8 月 15 日发布)单版本下载量超过 2.1 万次,其中 Windows x86_64 安装包 6654 次、macOS arm64 镜像 4034 次。项目采用 Apache-2.0 与 MIT 双许可证,主体代码 642 次提交来自 AprilNEA 本人,Windows 支持、摄像头控制与国际化由 davidbudnick 贡献(51 次提交),Linux 移植由 cserby 完成(25 次提交)。
HID++ 直连:绕开官方驱动的技术基础
罗技鼠标、键盘与 Logi Bolt、Unifying 接收器之间使用私有的 HID++ 协议通信。OpenLogi 内置了一个完整的 HID++ 实现(crates/openlogi-hidpp,基于 lus 的 hidpp crate 的 vendored fork,0BSD 许可),直接对设备读写特征报告,不经过官方驱动。
具体到功能层面,每个能力对应一个 HID++ feature ID:
| 功能 | Feature ID | 说明 |
|---|---|---|
| DPI 控制 | 0x2201 | 预设切换、循环切换动作 |
| SmartShift 滚轮 | 0x2111 | 模式切换、灵敏度、永久棘轮 |
| 滚动方向反转 | 0x2121 | 按设备原生设置 |
| 键盘 RGB 灯光 | 0x8070 / 0x8080 | 静态灯光,受支持设备 |
| 电池电量 | 0x1001 | 经 BatteryVoltage 读取 |
设备连接方式覆盖 Logi Bolt 接收器、Unifying 接收器、蓝牙和有线四种,界面内实时显示电池百分比与充电状态。摄像头走另一条路线:任何罗技 UVC 摄像头(Brio、StreamCam、C920 系列等)即插即用,变焦、对焦、曝光、白平衡等参数直接写入 UVC 硬件,对所有使用该摄像头的应用(Meet、Zoom、OBS)生效。
按键捕获这块,OpenLogi 使用操作系统级输入钩子而非驱动层拦截,因此中键、模式切换键、拇指滚轮的重映射在全平台可用,其余按键取决于设备自身能力。这带来一个实际限制:OpenLogi 与官方 Options+ 不能共存,两者会争夺 HID++ 访问权,同一接收器同时只能由一方持有。
功能矩阵:鼠标、键盘、补光灯、摄像头
鼠标侧的能力包括:任意物理按键承担手势角色(也可彻底关闭手势)、按方向的手势绑定、DPI 预设与循环动作、SmartShift 滚轮调节。比较有特色的是 Actions Ring:以光标为中心的八槽位动作环,每个槽位可以放一个动作加图标或文字标签,并且支持按应用定制不同布局。
键盘侧支持 F 键全局重映射,与鼠标共用同一动作目录,额外提供文本输入、组合键、多步工作流等动作类型。官方宣传图中标注了 37 个内置动作,从 Copy、BrowserBack、PlayPause 到 CycleDpiPresets、ShowActionsRing,动作名即 Rust 枚举的序列化名。
按应用的配置叠加层是另一个实用设计:应用获得焦点时自动切换按键方案,键的维度支持 macOS bundle id、Linux application id、Windows 可执行文件精确路径或 exe:<filename>.exe 模式。Linux 上该功能仅限 X11 与 XWayland。
此外还有 Litra 补光灯控制(开关、亮度、色温,可跟随摄像头活动自动开关)和摄像头一键配置档(内置默认、直播、视频通话三档,设置按摄像头持久化)。
TOML 配置:纯文本、原子写入、严格 schema
所有配置集中在一个文件:macOS 与 Linux 为 ~/.config/openlogi/config.toml,Windows 为 %USERPROFILE%\.config\openlogi\config.toml。GUI 与后台 agent 读取同一份文件,可以直接用任何同步方案在多台机器之间复制。
配置系统有几个工程上讲究的细节。写入是原子操作,并保留 config.toml.backup.1 到 backup.5 共五份历史备份;GUI 更新已知字段时保留已有注释和格式。schema 是严格的:拼错、过时或超范围的字段会阻止配置加载,GUI 进入只读模式并显示确切的 TOML 错误,而非静默回落到默认值。如果文件在编辑器中被外部修改,GUI 的下一次保存会被拒绝而不是覆盖外部编辑。当前 schema_version 为 4,旧版本绑定表会在加载时自动迁移。
动作绑定的写法示例:
[devices."receiver:12345678:slot:1"]
enabled = true
dpi = 1600
[devices."receiver:12345678:slot:1".bindings]
Back = { CustomShortcut = "Cmd+Shift+P" }
MiddleClick = { OpenApplication = { path = "~/Downloads", display_name = "Downloads" } }
[keyboard.bindings]
f1 = "PlayPause"
shift+command+f5 = { CustomShortcut = "Cmd+Shift+P" }设备键使用物理键(如 receiver:<receiver-id>:slot:<number>)而非型号 ID,这样两台同型号设备可以各自持有独立配置。
CLI 与脚本化
GUI 之外提供完整的命令行工具:
openlogi list # 已配对设备:槽位、代号、类型、在线状态、电量
openlogi assets sync # 从最快镜像预取设备渲染图
openlogi diag features # 导出设备报告的全部 HID++ feature
openlogi diag controls # 导出可重编程控件与能力标志
openlogi diag dpi # 读→写→读回→还原 DPI 冒烟测试
openlogi diag smartshift # 切换 SmartShift 并还原
openlogi diag lighting ff0000 # 有线 RGB 键盘纯色点亮diag 系列用来排查设备兼容性问题:先看设备报告了哪些 feature,再逐项做读写冒烟测试。资产同步会并发探测 assets.openlogi.org、Cloudflare Pages 版本化别名和 jsDelivr npm 发布三个镜像,取第一个返回有效目录的源。
三平台安装
macOS(13 及以上)推荐 Homebrew:
brew install --cask openlogi也可从 GitHub release 下载已签名、已公证的 dmg。Linux 提供 deb、rpm、Arch 包,双架构(x86_64 与 arm64):
sudo dpkg -i openlogi_*.deb
systemctl --user enable --now openlogi-agent.service安装包会写入 udev 规则,普通用户无需 sudo 即可访问 /dev/hidraw* 与 /dev/uinput。Windows 提供签名的 msi 安装器与便携 zip,架构分为 GUI(OpenLogi.exe)与持有全部设备 I/O 的后台 agent(openlogi-agent.exe)两个进程,关闭主窗口后 agent 以托盘图标继续运行。安装前需要先退出 Logitech Options+。
与 Solaar、Mouser 的关系
OpenLogi 的致谢名单里列了两个前辈:Solaar 是 Linux 上老牌的开源 HID++ 管理工具(Python 实现),Mouser 是本地无账号的 Options+ 替代品。OpenLogi 在两者基础上把目标扩到三平台,并用 Rust 与 GPUI(Zed 编辑器团队开源的 GUI 框架)重写了界面层,换来原生级的包体积与内存占用。Linux 在项目中被列为一等公民,Windows 支持已在 Windows 11 实机上完成端到端验证。
成熟度与边界
README 顶部有明确的警告:项目仍在积极开发中,尚未稳定,功能与配置可能继续变动。202 个 open issue 也如实反映了快速迭代期的状态。品牌资产(Logo 与 design 目录)由 AprilNEA 保留所有权利,fork 代码不授予名称与图标使用权,商用分发时需要注意这一点。对 Linux 用户和不想装 Options+ 的 macOS 用户,当前版本已经覆盖日常使用的核心场景;追求绝对稳定的用户可以再等一两个版本周期。