Skip to content

klee3721/KeyMapPlus

Repository files navigation

KeyMapPlus

KeyMapPlus is an open-source macOS keyboard and mouse remapping app with a native SwiftUI interface. It is built for direct distribution through GitHub Releases as an unsigned DMG or from source, with no Apple Developer Program membership required.

KeyMapPlus uses CGEventTap and CoreGraphics in the signed-in user's session. It does not use DriverKit, a privileged helper, a system extension, virtual HID, XPC services, or notarization.

Screenshots

KeyMapPlus device discovery KeyMapPlus key mapping rules

KeyMapPlus keyboard layout settings KeyMapPlus mouse mapping

Features

  • Keyboard, consumer-key, and mouse-button mapping rules.
  • Single, double, triple, and hold gestures.
  • App, input-source, keyboard-layout, variable, and layer conditions.
  • Built-in browser navigation, mouse productivity, JIS-to-ANSI, Fn, and Hyper presets.
  • Profile management, JSON import/export, layout detection, Event Viewer, logs, and a menu-bar control surface.
  • First-launch permission setup for Accessibility and Input Monitoring, followed by an automatic restart.
  • A panic hotkey: Command-Control-Option-Shift-Escape disables mapping immediately.

Requirements

  • macOS 14 or later.
  • Accessibility permission.
  • Input Monitoring permission.

On first launch, KeyMapPlus only shows its permission setup window. If Input Monitoring does not list KeyMapPlus automatically, use the + button in System Settings > Privacy & Security > Input Monitoring and select the app bundle shown by the onboarding screen.

Install

  1. Download an unsigned DMG from GitHub Releases.
  2. Approve the app in Gatekeeper.
  3. Complete the permission setup window.

Build From Source

swift test
swift build --product KeyMapPlusApp

Create an unsigned release DMG:

scripts/package-unsigned-dmg.sh 0.1.0

The generated .app and DMG are written to dist/.

Runtime Limitations

  • Input is session-level, so device-specific grabbing and per-device mappings are not supported.
  • Double and triple taps are observed and dispatched after the gesture window; physical events cannot be safely delayed and replayed without virtual HID.
  • Secure Input can prevent reliable capture or remapping.

See unsigned runtime limitations for the full behavior contract.

Contributing

Bug reports, usability feedback, documentation improvements, and pull requests are welcome. Please run swift test before opening a pull request.

License

KeyMapPlus is licensed under the GNU General Public License v3.0.

About

Open-source macOS keyboard and mouse remapping with SwiftUI.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors