Through "System preferences -> Keyboard -> Modifier Keys" I had setup: Caps Lock as Ctl.

Then, I installed the new Karabiner (formerly KeyRemapForMacBook) to achieve the following key-remap:

  • Left Ctl = Fn
  • Fn = Left Ctl

But, setting up Karabiner meant that my "Caps Lock to Ctl" key remap made with "System Preferences" was lost. Now, Karabiner demands that I install yet another app (SEIL) to remap only the Caps Lock key. I think that is ridiculous and I do not wish to install another app just for remapping one key.

So, I removed Karabiner from my system and then set up the following key remap via "System Preferences -> Keyboard -> Modifier Keys":

  • Caps Lock = Ctl
  • Left Ctl = None (No key binding => dead key)
  • Fn stays Fn (NOTE: this doesn't bother me because #1: I don't use it much anyway and, #2: I am used to the Thinkpad "Fn on far left" style).

But, I am wondering, how does Karabiner do its magic on the inside. My understanding is that ultimately, Karabiner has to pass the key-remap configuration to the OS, right? Or does Karabiner insert itself into the system (i.e., as a kernel module) and watch all keys typed on the keyboard to detect the Ctl and Fn keys?

More importantly, is there anyway (similar to xmodmap in Linux) to achieve this key remap without Karabiner?

  • It's been a year since you asked this question. Did you ever find a solution? Commented Apr 9, 2015 at 22:43
  • @paintedcones and thatmaheshrs - if you really want to know how the code can trap OS X - perhaps asking on stackoverflow.com will be needed. We focus on user level questions as opposed how to program API and lower level code. Perhaps asking a new question to explain just what key mapping is desired might be easier to focus on that aspect rather than worrying about whether A+B programs together can do what you wish to the OS X keyboard mapping.
    – bmike
    Commented Apr 9, 2015 at 22:57
  • 1
    Developers of "Karabiner" made new "Karabiner" from scratch due to kernel architecture changes in macOS Sierra, now it called - "Karabiner-Elements". So now it should work well on any version of macOS since macOS Sierra. This is their official website - pqrs.org/osx/karabiner . Also, you can find out more about complex modifications and import custom settings here - pqrs.org/osx/karabiner/complex_modifications. Commented Nov 25, 2018 at 15:59
  • How do I remap a key in macOS Sierra, e.g., Right Alt to Right Control? has instructions which work without any external tool in High Sierra (or even Sierra?) and newer.
    – tripleee
    Commented Jan 23, 2019 at 11:37

5 Answers 5


Sadly, with MacOS Sierra, Karabiner has gone into a strange kind of hiatus-but-not-really-because-someday-we'll-fix-it.

Which is too bad, because Karabiner was the perfect tool for what I needed (which was make MacOS behave like a forty-year-old UNIX terminal because my stupid fingers still hit ^W to delete a word and I kill the window and I can't stop, no, don't help me, I'll die eventually and then my problem is fixed).

My other main tool is Typinator for abbreviations--w for with, h for the, n for and, etc; those really add up.

So far, I've found BetterTouchTool to be a viable replacement for Karabiner, even better in some ways. But worse in others; key repetition doesn't work for me despite the developer saying it does. (Possibly it interacts with Typinator, but turning the latter off doesn’t fix the problem.)

I've written a whole novel using these two tools (Typinator and BetterTouchTool), but I'd appreciate anyone chiming in if they've found something better still.

  • I've experimented a bit with Karabiner recently (2019-05-13), running OS 10.14.4 and running Karabiner 12.3.0. I can't vouch for all elements of its functionality, but basic keyboard substitutions seem to work just fine. The docs claim to support Mojave (OS 10.14). Commented May 13, 2019 at 18:53
  • 3
    Karabiner is now active. Recent update on Jan 18, 2020 karabiner-elements.pqrs.org/docs/releasenotes
    – Pup
    Commented Apr 19, 2020 at 15:16

I'm going to be slightly contrarian and disagree with the sentiment about needing two applications to do what you ask.

Apple adopted the UNIX heritage of one tool to do one thing and Karabiner continues that tradition. Both apps are professional quality, maintained, debugged, documented and supported. Neither app costs anything to try or rely upon. Both do exactly what they say they do.

Last time I checked, Apple installs thousands of files and has hundreds running before you even log in the first time. Installing 2 programs to totally remap all the keys seems like less of a big deal to me, but I'm open to being wrong about that.

I would say - install Karabiner and install SEIL and enjoy your ability to remap keys at will, but perhaps I'm missing some deficiency in what you're trying to accomplish.

  • 1
    They are both available on Homebrew Cask, so to install them: brew cask install karabiner and brew cask install seil.
    – Dorian
    Commented Aug 8, 2016 at 16:19

I know this is a late answer, but I'm using Better Touch Tool. It provides several functions:

  1. Remapping keys: I'm using the new bluetooth keyboard and need the Home, End, and Forward Delete keys that I'm used to on the bigger USB keyboard, so I've mapped ALT-RIGHT-ARROW and ALT-LEFT-ARROW to End and Home and SHIFT-DELETE to FORWARD-DELETE. While I don't think it lets me remap something like '1' to 'i' (as if I'd want to), it lets me remap function and control keys.
  2. Remap Magic Mouse Gestures: I used to use 9 Spaces when Apple allowed us to map them into a grid (3 across, 3 down) and hated the new spaces. I map swipes on the mouse (and some key combinations) so I can move three spaces at once to the left or right. Even though all 9 spaces are laid out in one long line, to me, it's like I have my old 3x3 grid that worked so well for me.
  3. Remap trackpad gestures: I use a trackpad a lot and can map the same gestures I use on the mouse to the track pad and even a couple others that work well for the trackpad that don't work on the mouse.
  4. Remap other devices: It can also work with normal mice, a Siri or Apple remote, and more.

It basically lets you remap almost any form of input to a large number of choices. I started using BTT to remap only one or two functions and then kept thinking, "I wish I could do this," and found myself remapping more and more.

  • Thank you for your answer. I will have to try this tool someday soon. For now ... I am getting used to the Mac keyboard. :) Commented May 15, 2016 at 16:54
  • 1
    BTT does what missed me since Karabiner does not work. And it is simpler to configure. Thanks for the lead !
    – lauhub
    Commented Sep 9, 2017 at 23:04

I had to remove Karabiner on macOSX Sierra. It was making strange problems of a key repeat and acting as if a shift was constantly being held. I removed the progam and my keyboard problems went away.

But I relied on it for a remap of my right option key as a forward delete -- very handy for editing.

I have now solved the problem using Better Touch Tool -- I made the option + ? a forward delete (windows delete) Though not a single key, it works.


If you only need to remap keys which produce text characters, Ukekele is an alternative to Karabiner. With it you can create your custom keyboard layout and export it as a standard .bundle file that you can then install by double-clicking from Finder.

Once installed the layout will appear as a choice under

System Preferences > Keyboard > Input Source > (plus button).

Ie, once you created your layout you don't need Ukelele anymore as the .bundle is a regular Apple layout and can be installed on other macs.

The app can be a bit fiddly to use. What worked was File > New from current input source, and the in the dialog that appears right-click the layout and pick > Set keyboard name and script and make sure you select Unicode under script. To redefine a key double-click it with the mouse and then type the desired key. You can also redefined the keys emitted on Option+key — most of them aren't mapped to anything useful, and can be mapped for example to any emojis or Unicode characters you need to use often.

  • @TomGewecke: first of all, the question is not about remapping modifier keys, but about remapping keys in general; secondly, Ukelele allows remapping certain combinations of regular keys + modifier keys, such as Option and Shift. Some limited support for reassigning modifer keys comes ootb: SysPrefs > Keyboard > Keyboard > Modifier Keys.
    – ccpizza
    Commented Mar 6, 2021 at 14:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .