Personal macOS key/mouse remapper + simple macro runner.
Highlights:
- Menu bar utility with rules window
- Trigger recording for keys, mouse clicks, and Fn
- Rule naming and instant list updates
- Remap action picker with searchable key list (including F13-F19)
- Macro step editor with key press, click, delay, and delay-with-jitter steps
- Optional load-at-login toggle
This repo includes a native Xcode project (HotkeyMama.xcodeproj).
- Install Xcode from the App Store.
- Open
HotkeyMama.xcodeprojin Xcode. - Build and Run.
Debug builds are output to a stable path: .build/Products/Debug/HotkeyMama.app.
Note: keep the app unsandboxed (remove the "App Sandbox" capability) or the event tap will fail.
When it launches, it runs as a menu bar app (no Dock icon). Use the menu bar icon -> "Open Rules".
If you change project structure and want to regenerate project settings from spec, project.yml is still available:
xcodegen generateHotkey Mama uses a global event tap to intercept and re-post input.
- System Settings -> Privacy & Security -> Accessibility -> enable
HotkeyMama
If a rule doesn't seem to work, permissions are almost always the reason.
macOS ties Accessibility permission to the app's code signature + path.
Fix:
- Grant Accessibility to the stable debug app path:
.build/Products/Debug/HotkeyMama.app. - If needed, reset and re-grant:
tccutil reset Accessibility com.hotkeymama.HotkeyMama
Input Monitoring may or may not show this app depending on macOS behavior; for this CGEventTap implementation, Accessibility is the required permission.