按应用配置
在 config.toml 中编写叠加规则,让按键绑定与 Actions Ring 布局随前台应用自动切换。
按应用配置让 OpenLogi
根据前台应用自动切换设备的按键绑定。后台观察器每秒读取一次前台应用的标识符;一旦变化,你为该应用编写的叠加就会覆盖到设备的全局
bindings
之上:按应用的条目优先,未列出的按键回落到全局映射。Actions
Ring 也能按应用切换,不过它是完整布局而非叠加。DPI
预设、滚动与灯光始终是设备级的。
应用标识符
标识符就是各平台为前台窗口上报的值,必须与配置键完全一致,没有通配符,也没有模式匹配。
| 平台 | 标识符 | 示例 |
|---|---|---|
| macOS | Bundle id | com.microsoft.VSCode |
| Linux(X11 / XWayland、GNOME Shell) | WM_CLASS 类名 | Code |
| Linux(wlroots 合成器) | xdg-shell app_id | code |
| Windows | 小写的可执行文件路径,或 exe:<name>.exe | exe:sharex.exe |
Linux 各后端并不共用同一套命名空间:在 wlroots 合成器下(按 app_id)编写的配置在 GNOME 或
X11(按 WM_CLASS)下不会匹配,反之亦然。请按你当前会话实际上报的形式编写。
在 Windows 上,两种形式同时存在时以精确路径优先,因此 exe:
适合作为商店应用和会自更新、路径会变的安装方式的稳定兜底。
在 GUI 中
按键绑定目前还没有按应用的编辑器,动作选择器编辑的是设备的全局
bindings,叠加需要在 config.toml 中手写。界面上会呈现两点:
- 当前配置档 —— 配置卡片上的只读行,显示前台应用的标识符作为当前配置档;没有前台应用时显示 Default profile。它是状态展示,不是编辑器。
- 自动切换 —— 完全自动,无需任何控件。观察器报告新的标识符后,OpenLogi 会重建内存中的绑定映射并交给事件钩子,因此下一次按键就会用上新应用的叠加。
编写叠加
在 [devices.<key>.per_app_bindings."<app-id>"]
下添加一张表,内容是部分「按键 → 动作」映射。你列出的按键会在该应用位于前台时覆盖全局绑定;未列出的按键保持全局取值。
[devices."receiver:aabbccdd:slot:1".bindings]
Back = "BrowserBack"
Forward = "BrowserForward"
# VS Code 位于前台时,Back 变成撤销、Forward 变成重做。
[devices."receiver:aabbccdd:slot:1".per_app_bindings."com.microsoft.VSCode"]
Back = "Undo"
Forward = "Redo"取值是原样书写的动作名。叠加只会新增或覆盖键,永远不会删除键,因此若要让某个按键在特定应用中什么都不做,请把它设为
None,而不是省略它。按应用的叠加总是把按键映射到单个动作;按方向的手势映射始终是设备级的。
切换以约 1 秒的周期轮询,因此切换应用后可能有最多 1 秒的延迟。
状态: macOS、Linux 与 Windows 均可用。在 Linux 上标识符取决于会话后端(X11 /
XWayland、GNOME Shell 或 wlroots
合成器);三者都不可用的会话不会上报任何应用,一切回落到 Default
profile。配置写在 config.toml 中,由操作系统的前台应用
API 驱动,而非某个 HID++ 特性。