Expand description
Shared types and configuration for OpenLogi.
Everything here is data — the device model, the action catalogue, the
binding types, the shape of the config file. It must never depend on
hidpp, async-hid, or any platform-specific event/window API; those live
in sibling crates.
The one exception is reading and writing that config file, which is gated
behind the fs feature (on by default). Without it this crate touches no
host at all, which is what the wasm (portable crates) CI job checks.
Modules§
- action_
ring - The Actions Ring’s shared display-duration constant.
- binding
- Logical mouse button identifiers and the action vocabulary each one can
bind to. Lives in
openlogi-corebecause theconfigschema serializes these directly — the GUI re-exports them. - bindings
- Binding-map construction: overlay the stored per-device (and per-app) bindings on top of the built-in defaults.
- brand
- Brand constants shared across the workspace: the project’s public URLs and
the
openlogi://deep-link command vocabulary. - color
- A validated RGB color for the lighting config.
- config
- User configuration, persisted as TOML at the platform-standard config path.
- device
- Serializable device-model types.
- device_
order - Canonical device ordering shared by the GUI carousel and the agent’s no-selection fallback.
- diagnostics
- Privacy-filtered diagnostics report for support tickets — model-level only, no unique identifiers by construction.
- hid
- Wire-format types for HID++ device control that need no device I/O.
- paths
- Per-OS application directories, following the XDG Base Directory spec on
every platform — including macOS, so configuration lives at the
familiar
~/.config/openlogi/rather than macOS’s~/Library/Application Support/. - single_
instance - Cross-platform single-instance process guard.