github AprilNEA/OpenLogi v0.6.0

latest releases: v0.6.2, v0.6.1
10 hours ago

Highlights

OpenLogi 0.6.0 splits the app into a headless, always-on agent daemon and an on-demand GUI configuration editor. This makes remapping and device I/O keep running after the GUI window is closed, while the GUI becomes a normal app that opens only when you need to change settings.

What's new

  • Added openlogi-agent, a headless daemon that owns HID++ device I/O, the CGEventTap hook, foreground-app tracking, pairing, and the menu-bar status item.
  • Reworked openlogi-gui into an on-demand configuration app that talks to the agent over IPC instead of running device I/O itself.
  • Added a tarpc-based agent IPC protocol for inventory/status polling, DPI, lighting, SmartShift, config reloads, Accessibility prompts, and pairing.
  • Moved device pairing into the agent so receiver pairing no longer competes with the live gesture/capture session from another process.
  • The GUI can auto-launch the embedded agent helper when the IPC socket is unavailable.

macOS packaging and startup

  • The packaged app now embeds OpenLogiAgent.app as a nested login-item helper under OpenLogi.app/Contents/Library/LoginItems/.
  • Launch-at-login is now handled by the agent instead of the GUI.
  • The menu-bar item is hosted by the agent, so remapping and tray access can stay alive independently of the GUI window.
  • Release signing now signs the nested agent helper inside-out before signing the outer app, helping the agent keep a stable Accessibility/TCC identity across updates.
  • Homebrew tap update dispatch for openlogi@latest has been re-enabled.

Fixes and hardening

  • Fixed an agent single-instance race that could start two agents and install duplicate hooks.
  • Fixed Accessibility prompting so macOS authorizes the agent binary, not the GUI.
  • Fixed transient inventory errors wiping live runtime state or resetting DPI-cycle state.
  • Fixed agent recovery when the GUI sees a dead or quit agent.
  • Fixed LaunchAgent plist escaping and made tray Quit stay quit after a clean exit.
  • Preserved typed device errors across IPC so unsupported DPI/SmartShift features latch correctly instead of retrying forever.
  • Kept the agent and GUI device ordering consistent so the default selected device matches in both processes.
  • Confirmed SmartShift writes with a re-read so rejected writes self-correct in the UI.
  • Honored the Show-in-menu-bar preference at agent startup.
  • Added IPC protocol handshake checks and pairing-session race fixes from review.

Upgrade notes

  • On first launch after upgrading, macOS may ask you to grant Accessibility permission to OpenLogiAgent. This is expected: the agent is now the process that owns the input hook.
  • If remapping does not work after upgrading, check System Settings → Privacy & Security → Accessibility and ensure the agent/helper is allowed, then restart OpenLogi.

Included PRs

  • #165 — Split into a headless agent daemon + on-demand GUI
  • #161 — Dispatch openlogi@latest Homebrew tap updates
  • #164 — Release v0.6.0

Full changelog: v0.5.3...v0.6.0

Don't miss a new OpenLogi release

NewReleases is sending notifications on new releases.