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 exceptions are feature-gated: reading and writing that config file
(fs) and locale negotiation (locale), which reads the host’s language
preference, both on by default; and, off by default, the dedicated tokio
worker thread the host crates run async work on (worker) and the tracing
filter every process installs (logging). Without them 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.
- app
- The foreground application, in the form per-app profiles match against.
- 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,
the
openlogi://deep-link command vocabulary, the three processes’ bundle identifiers, and the app bundle’s layout — where the helpers live and what they are called on disk. - 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.
- env
- The environment variables OpenLogi reads at runtime.
- hid
- Wire-format types for HID++ device control that need no device I/O.
- locale
- Locale negotiation: which shipped catalog a BCP-47 code resolves to.
- 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/. - scroll
- Platform-neutral scroll distances.
- single_
instance - Cross-platform single-instance process guard.