uchuugaka / Karabiner-Elements

The next generation Karabiner for macOS Sierra

Home Page:https://pqrs.org/osx/karabiner/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status License


Karabiner-Elements provides a subset of the features planned for the next generation Karabiner for macOS Sierra. The current version of Karabiner does not work with Sierra, so Karabiner-Elements was created to keep Sierra users up and running until a new version of Karabiner is published.

Project Status

Karabiner-Elements is ready to use today. It provides a useful subset of Karabiner's features that you can begin using immediately.

You can download the latest Karabiner-Elements from https://pqrs.org/latest/karabiner-elements-latest.dmg

Old releases

You can download previous versions of Karabiner-Elements from here: https://github.com/tekezo/pqrs.org/tree/master/webroot/osx/karabiner/files

System requirements

  • OS X 10.11.*
  • OS X 10.12.*


Detailed usage instructions are provided in the Usage README.


  • Secure Keyboard Entry: Support secure entry in the Terminal, Password prompt etc.
  • Modifier Flag Sync: Synchronize modifier flags across all connected keyboards.
  • Simple Modifications: Map normal keys to arbitrary key functions.
  • Function Keys: Map function keys to arbitrary key functions.
  • Complex Modifications: Map keys by complex rules. eg key to modifiers, modifiers+key to key, send key event if pressed alone, etc.
  • Devices: Apply modifications to specified keyboards only.
  • Virtual Keyboard: Set the virtual keyboard's type (ANSI, ISO, JIS) and its Caps Lock Delay.
  • Profiles: Support the creation of multiple profiles that the user can switch between.
  • Inverted Function Keys: Invert the functionality of the function keys with regard to the fn modifier.
  • Log Keyboard Events: Render the keyboard events log.
  • Log Application Events: Render the Karabiner-Elements event log.
  • Misc: Enable automatic updates, delete Karabiner Elements etc.


  • Karabiner-Elements cannot modify eject key due to the limitation of macOS API.
  • Karabiner-Elements ignores the System Preferences > Keyboard > Modifier Keys... configuration.

How to build

System requirements:

To install the Boost requirement, download the latest Boost release, open the boost folder inside of it, and move all of the files there into /opt/local/include/boost/.

(For example, the version.hpp should be located in /opt/local/include/boost/version.hpp)

Step 1: Getting source code

Clone the source from github.

git clone --depth 1 https://github.com/tekezo/Karabiner-Elements.git

Step 2: Building a package

cd Karabiner-Elements

The make script will create a redistributable Karabiner-Elements-VERSION.dmg in the current directory.


If you would like to contribute financially to the development of Karabiner Elements, donations can be made via https://pqrs.org/osx/karabiner/donation.html.en.


The next generation Karabiner for macOS Sierra


License:The Unlicense


Language:C++ 77.6%Language:Objective-C 16.3%Language:Shell 2.2%Language:C 2.0%Language:Makefile 1.5%Language:Ruby 0.3%Language:AppleScript 0.2%