Multi-Tofu 0.2.4
Performance and packaging. No new features.
The wheel gets its own mouse tap
The keyboard tap was also watching every mouse move, because the wheel needs the pointer position. An event tap sees the entire session event stream, and mouse moves are the highest volume events on it, so that meant per-event work on every movement whether or not the wheel was on screen.
Mouse tracking is now a separate listen-only tap, created when the wheel appears and torn down when it closes. At rest the app touches no mouse events at all. This is the one part of a tool like this that can make a whole machine feel sluggish, so it should cost nothing when idle.
Also
The single instance lock was keyed to the machine rather than to the configuration, so a second setup could not run alongside the first.
The build no longer fights iCloud. Staging moved out of the project folder. An iCloud file provider re-stamps extended attributes onto the bundle faster than they can be stripped, and codesign refuses to sign over them, which made signing fail at random.
The bundle version is real. It is read from the package now, rather than the hardcoded 0.1.0 that every release so far has been reporting in its Info.plist.
Upgrading
Replacing the app drops the Accessibility grant. Switch Multi-Tofu back on in System Settings > Privacy & Security > Accessibility.