GitHub 趋势 · 第 37 期
2 万 star 的 Rust 版 Logitech 驱动:装它之前,得先把官方 App 卸干净
#桌面工具#本地优先#Rust
先把判断放在前面:OpenLogi 不是给 Logi Options+ 打补丁的插件,它是一个替代品——用 Rust 重写、配置落成一个 TOML 文件、还配了真正的命令行。但上手前你得先接受两件事:第一,它和官方 App 抢同一个接收器,两个只能活一个;第二,README 第一行就挂着警告,说功能与配置都还可能变。另外一组数字比功能清单更值得读:20,539 个 star,对应 84 个 watcher 和 508 个 open issue。本篇所有命令、功能描述与许可条款均取自仓库 README 与 docs/ 原文,未做推测。
你那个「必须一直开着」的官方驱动
买一只 MX Master 或者一把 Logi 键盘,硬件本身没得挑,但你为了改一个侧键,得装一个常驻后台的官方套件:登录账号、开着遥测、占一份内存、偶尔在更新后把你的 DPI 和手势设置重置一遍。想让它跑在 Linux 上?没有这条路。想把手势绑到第三个按键上?得看官方在那个型号上放不放这个开关。最别扭的一点是:这些设置明明只是你鼠标里的几个寄存器,却要经过一个你不想要的账号体系。
OpenLogi 的 README 用一句话概括了它的出发点:「Fed up with Options+? Try OpenLogi.」它列出的五条差异,正好就是上面这些不满的逐条回应。
项目是什么
仓库名 AprilNEA/OpenLogi(https://github.com/AprilNEA/OpenLogi),官网 openlogi.org,作者 AprilNEA。自述定位是「⚡️ A native, local-first alternative to Logitech Options+, written in Rust 🦀」,并且明确写了要解锁的是「Logitech mice, keyboards, and webcams over HID++ and UVC」——鼠标键盘走 HID++ 协议,摄像头走 UVC,两个都是硬件层协议,不经过任何云服务。
数据实测(GitHub API):20,539 star / 640 fork / 84 watcher,508 个 open issue,语言 Rust,默认分支 master,仓库体积约 14.5 MB;2026-05-24 创建,最近一次推送 2026-09-10,未归档。GitHub 月度趋势榜上新增 12,225,是本月所有「还没写过的新项目」里动量最高的一个。最新正式版为 v0.8.3(2026-08-30)。
许可为双许可:Apache-2.0 或 MIT,任选其一(仓库里 LICENSE-APACHE 与 LICENSE-MIT 两个文件并存)。这个组合比上期那个项目宽松得多,商业使用基本没有额外约束,只有一处例外,后面单独说。
平台覆盖是它最想强调的部分,README 直接写成一句「Runs on macOS, Linux, and Windows.」,并且专门点出「Linux is a first-class platform in OpenLogi」——Linux 是一等平台,不是顺手兼容。在官方驱动完全不支持 Linux 的背景下,这句话的分量比功能清单里任何一条都重。
它到底能改哪些东西
README 的 Features 一节按设备类型分了三块,我把原文压缩成一张表(括号里的十六进制是 README 里写明的 HID++ 功能码,方便你自己去查设备支持情况):
| 设备 | README 列出的能力 |
|---|---|
| 连接与电量 | Logi Bolt 接收器 / Unifying 接收器 / 蓝牙 / 有线四种连接方式,可读电池百分比与充电状态;Litra 补光灯可调开关、亮度与色温,支持跟随摄像头活动自动开关 |
| 鼠标 | 中键 / 模式切换键 / 拇指轮按键可捕获并重映射;任意可承载按键上的分方向手势绑定(带实时捕获);Actions Ring(以光标为中心的八格动作环,可按应用切换布局);DPI 预设与 Cycle / Set-preset 动作(0x2201);SmartShift 滚轮的模式切换、灵敏度与永久棘轮面板(0x2111);部分设备支持原生滚动方向反转(0x2121) |
| 键盘 | 全局 F 键重映射,动作目录与鼠标共用,另加「输入文本、组合键、多步工作流」这类进阶动作(macOS + Windows);部分设备支持静态 RGB 灯效(0x8070 / 0x8080);兼容键盘另有 host 切换与 Fn 锁 |
| 摄像头 | 支持任意 Logitech UVC 摄像头(Brio、StreamCam、C920 系列等)免配置即用;图像参数直接写进 UVC 硬件——变焦、对焦、曝光、亮度、对比度、饱和度、锐度、白平衡、色调、抗闪烁、低光补偿,并带自动模式开关,所以改动在 Meet / Zoom / OBS 里同样生效;内置 Default / Streaming / Video call 三套一键参数,也能存自定义快照,按摄像头分别持久化 |
两个细节值得单独拎出来。一是按键绑定支持「短按 / 长按」两个独立动作,判定线是 500 毫秒:松开早于 500 毫秒触发 short,按住到 500 毫秒触发一次 long,之后的松开不会再补触发 short;如果捕获被打断、绑定被改或 agent 退出,两个都不触发。它还有专门的 HoldShortcut:组合键一直按住,直到你松开物理按键为止 —— README 直接把它指向「push-to-talk」这类需要按住说话的场景。二是摄像头预览只在你看的时候打开:关闭预览就彻底释放摄像头,指示灯随之熄灭。在一个「摄像头被谁打开」都能上新闻的年代,这个设计比多几个滤镜有意义。
README 的「Beyond Options+」一节只列了五条,但每条都很具体:够轻(Native Rust + GPUI)、能跑 Linux(一等平台)、手势能给任何一个按键(或者干脆全关掉)、配置是纯文本(一个 TOML 文件,想怎么在机器之间同步随你)、可脚本化(GUI 之外还有一个真正的 CLI)。这五条里,后两条是官方套件结构上做不到的 —— 不是功能没做,而是它的产品形态不允许。
上手:先关官方 App,再装
README 的 Install 一节第一句就是一个 IMPORTANT 提示,原文是:先退出 Logi Options+,两个应用会争抢 HID++ 访问,同一个接收器同一时间只能有一个程序持有。这句话基本定义了 OpenLogi 的性质:切换,而不是共存。
macOS 要求 13 或更新版本,README 说官方 Homebrew cask 是默认安装路径(原文命令):
brew install --cask openlogi
想直接跟作者的 tap 走最新 release(README 注明它可能比官方 cask 的自动 bump 更早更新):
brew tap aprilnea/tap brew install --cask aprilnea/tap/openlogi@latest
Linux 侧提供 amd64 与 arm64 两种架构的安装包,预编译包要求 GLIBC 2.35 或更新(Ubuntu 22.04 为基线)。包在安装时会一并写好 udev 规则,让你免 sudo 访问 /dev/hidraw*、/dev/uinput 和鼠标的 /dev/input/event* 节点(原文命令):
sudo dpkg -i openlogi-*.deb # Debian / Ubuntu sudo rpm -i openlogi-*.rpm # Fedora / RHEL sudo pacman -U openlogi-*.pkg.tar.zst # Arch Linux systemctl --user enable --now openlogi-agent.service
Windows 侧是签名的便携 zip 与按用户安装的 msi(x86_64 / arm64 都有),GUI(OpenLogi.exe)与后台 agent(openlogi-agent.exe)必须放在同一目录,否则 GUI 没东西可连。管理员权限这块,README 只说 Windows 支持已在 Windows 11 上跑通「安装、原地升级、卸载」全流程,并坦承它比 macOS 那一版更新,踩到坑就去提 issue。
CLI 是它和官方套件最不一样的地方。README 指向 docs/USAGE.md,里面的子命令原文如下 —— 第一个特别值得先跑,它能告诉你手上这只设备到底支持哪些功能:
openlogi list # paired devices: slot, codename, kind, online, battery openlogi assets sync # pre-fetch device renders from the fastest available mirror openlogi diag features # dump every HID++ feature the active device reports openlogi diag controls # dump reprogrammable controls and capability flags openlogi diag dpi # read -> write -> read-back -> restore DPI (smoke test) openlogi diag smartshift # toggle SmartShift and restore (smoke test) openlogi diag lighting ff0000 # solid colour for a wired RGB keyboard (any RRGGBB hex)
不带子命令直接跑 openlogi 就等于 list;设 OPENLOGI_LOG=debug 可以打开详细日志。配置是一个 TOML 文件:macOS 与 Linux 在 $XDG_CONFIG_HOME/openlogi/config.toml(通常就是 ~/.config/openlogi/config.toml),Windows 在 %USERPROFILE%\.config\openlogi\config.toml。它的动作写法很有辨识度(取自 docs/CONFIGURATION.md 原文):
Back = { CustomShortcut = "Cmd+Shift+P" }
Forward = { HoldShortcut = "Ctrl+Space" }
MiddleClick = { OpenApplication = { path = "~/Downloads", display_name = "Downloads" } }
DpiToggle = { short = "ShowDesktop", long = "MissionControl" }
Top = { action = { CustomShortcut = "Cmd+Shift+P" }, icon = "Keyboard", label = "Command Palette" }
这套配置的设计思路值得说一句:schema 是严格的。漏写、拼错、写过时的字段不会静默回退成默认值,而是整份配置不加载,GUI 转为只读并直接把 TOML 报错显示给你;如果文件在编辑器里被外部改动过,GUI 的下一次保存会被拒绝而不是覆盖你的改动。改配置文件的人会明白这两条有多难得。
我的判断
适合谁:手里有 Logitech 鼠标键盘、但受不了官方套件的人;需要把按键配置放进 Git 或点文件仓库、跟着机器一起同步的人(纯 TOML,天然可版本化);用 Linux 的人 —— 这是官方永远不会给的那条路;以及要用 Logitech 摄像头但只想调一次参数、不想让它在后台常驻的人。
不适合谁:指望它和官方 App 并存的(做不到,二者互斥);需要绝对稳定生产环境的人(作者自己标了未稳定,版本号还在 0.8);只用罗技官方没有开放 HID++ 能力的低端型号的人 —— 表里很多功能都带着「supported devices」的前缀,先跑 diag features 确认自己的设备支持什么,再决定值不值得切换。
- ▪README 第一行就是警告:还没稳定。原文写的是「OpenLogi is under active development and not yet stable — features and config may still change」,后面还带了一句让用户先 Star 和 Watch、等新 release 的通知。0.8.x 的版本号也在说同一件事。功能面已经铺得比版本号大得多,做好配置被改动的心理准备。
- ▪和官方 App 天然互斥,切换要清干净。两个程序会争抢同一个接收器,谁先拿到谁独占。这意味着不能「试试看」,只能二选一 —— 建议先在官方 App 里截图记下你现在的按键配置和 DPI 档位,再彻底退出官方套件。想回头也有成本。
- ▪最有用的那几个功能,平台之间有落差。按应用自动切换配置只覆盖 macOS + Windows,Linux 只到 X11 / XWayland,原生 Wayland 不在列表里;键盘那套「输入文本 / 组合键 / 多步工作流」的进阶动作同样只写了 macOS + Windows。CLI 脚注里还有一句:少数 macOS 专属动作在 Linux 上是空操作。Linux 用户别照着功能表全盘对号入座。
- ▪功能跟随硬件能力,不是跟随软件版本。滚动反转(0x2121)、RGB 灯效(0x8070 / 0x8080)、拇指轮按键、模式切换键这些,README 都标了「supported devices」——能不能用取决于你手上那只设备固件报不报这个 HID++ 特性。这也是为什么第一个要跑的命令是 diag features 而不是直接进 GUI 折腾。
- ▪严格 schema 是优点,也是迁移的坑。「写错就整份不加载」比静默回退好得多,但要升级时就得留意:当前 schema_version 为 7,配置会按版本逐级迁移;README 明说 v2 的 model-key 条目在存在两台同型号设备时无法安全自动分配,必须手工拷到生成的 physical key 上。手上配置较老的人,升级前先备份 config.toml.backup.*。
- ▪代码是双许可,品牌不是。Apache-2.0 或 MIT 任选,商用、闭源衍生都没问题;但仓库里 design/ 下的 logo 与应用图标单独声明为 © 2026 AprilNEA, all rights reserved,不在上面两份许可的覆盖范围内,README 原文明确「Forking the code grants no right to the OpenLogi name, logo, or icon」。另外它和 Logitech 没有任何关系,Logitech、MX Master、Options+ 都是罗技的商标 —— 这一点写清楚是好事。
- ▪20,539 star 对 84 个 watcher、508 个 open issue。这是本期最想让你注意的一组比例。star 受 Trendshift 与 Product Hunt 这类榜单曝光驱动,不等同于日常使用人数;而 508 个未关 issue 说明需求吸得很猛、维护面也铺得很开。真把它当成工作流依赖之前,先去 issue 列表搜一下你要用的那个功能有没有正在报的问题。
- ▪发布产物这块做得比同类认真。v0.8.3 的每个安装包都带一份 .minisig 签名,另有 SHA256SUMS 汇总;macOS 侧是签名并公证的 dmg。它甚至把 HID++ 协议的 Rust 实现(crates/openlogi-hidpp)来源写清了 —— 是 hidpp crate 作者 @lus 的 vendored fork,0BSD 许可。这种把第三方代码出处摊开写的做法,值得给个好评。
数据与核实:AprilNEA/OpenLogi(https://github.com/AprilNEA/OpenLogi)· 20,539 star / 640 fork / 84 watcher / 508 open issue · GitHub 月度趋势新增 12,225 · 创建 2026-05-24 · 最近推送 2026-09-10 · 默认分支 master · 语言 Rust · 未归档 · 最新版本 v0.8.3(2026-08-30)· 许可 双许可 Apache-2.0 或 MIT(仓库内 LICENSE-APACHE 与 LICENSE-MIT;design/ 下品牌资产另按 design/LICENSE 声明 © 2026 AprilNEA, all rights reserved)· 项目定位、Platforms 说明、Beyond Options+ 五条、Features 功能清单、安装命令与 IMPORTANT 提示、平台限制、第三方代码出处(crates/openlogi-hidpp 为 hidpp crate 的 vendored fork,0BSD)、品牌与商标声明均取自 README.md 原文 · CLI 子命令取自 docs/USAGE.md 原文 · TOML 配置路径、schema_version 7、严格 schema 行为、短按/长按 500ms 规则、HoldShortcut、动作写法示例与配置迁移说明均取自 docs/CONFIGURATION.md 原文 · 数据来源:GitHub Trending 官方页面 · 抓取时间:2026-09-11 11:06
顺便问一句:你的鼠标侧键,现在绑的是什么?我猜不少人装完驱动改了三天,最后固化下来的只有「中键 = 关闭标签页」这一条 —— 如果是这样,OpenLogi 这种「配置文件 + CLI」的路线可能反而比 GUI 更适合你,因为它至少让你改过的东西有迹可循。评论区说说你的答案,我按你们点的来做下一期。
下期预告:回到 agent 的基础设施 —— volcengine/OpenViking(36,543 star,本月 +8,469),火山引擎开源的「自演化 Context 数据库」,把 agent 记忆、知识检索与 skills 放进同一套 viking:// 虚拟文件系统,AGPLv3。这个项目从第 33 期预告到现在被更热的选题挤了四轮,下期优先还上;备选 akitaonrails/ai-memory(6,483 star,本月 +5,026,Rust 写的 agent 长期记忆与跨客户端交接)。
#桌面工具#本地优先#Rust