A macOS app for keyboard remapping, powered by Kanata. SwiftUI frontend, LaunchDaemon backend, live keyboard overlay.
Visual key remapping with tap-hold, layers, and macros
Guided wizard for permissions, helper, and daemon setup
Live floating overlay showing real-time key state
App launcher, URL opener, and script runner from any key
SystemInspector, WizardRouter, and InstallerEngine integration.RuntimeCoordinator, ServiceLifecycleCoordinator, ServiceHealthChecker, and KanataDaemonService. Health polling, TCP readiness, crash recovery, and the "installer success requires verified runtime readiness" invariant.IOHIDCheckAccess works, the fallback chain, and the critical invariant that makes the wizard's permission pages reliable.RuleCollection pattern, ConfigurationService, custom rules vs. keymap collections, the "never parse Kanata configs" principle, and TCP-based hot reload.SMAppService registration, XPC communication, code signing requirements, and the HelperProtocol.swift duplication invariant (ADR-018).defcfg conditional switch, HIDDeviceMonitor, and the "geometry follows layout, labels follow keymap" rendering principle../Scripts/quick-deploy.sh — incremental build, deploys to /Applications./build.sh — sign + notarize (SKIP_NOTARIZE=1 for local)swift test — 413 tests, all must pass in under 5 secondsswiftformat Sources/ Tests/ --swiftversion 5.9 && swiftlint --fix --quiet~/.config/keypath/keypath.kbd — generated Kanata config~/Library/Logs/KeyPath/keypath-debug.logcom.keypath.kanata — managed via SMAppService