
Karabiner – Easy Keyboard Remapping for OS X - fspacef
https://github.com/tekezo/Karabiner
======
JohnGB
Karabiner (and its predecessor) is invaluable for me every day use of my
macbook. In general using a touchpad feels like trying to type with only one
finger, but with the "multi-touch exension" (I think it's based on
touchsense), allows me to redefine my keyboard depending on what's happening
on my touchpad.

So, now my left hand is always on the home keys, and if I'm touching the
touchpad with one finger, the home keys are my left, right, and middle mouse
buttons. If I'm touching it with two fingers, the home keys and nearby keys
remap to save, refresh, find, select all, copy, paste, cut, close, and others.
If three fingers are touching, then my keys remap to my windows layout and
other utility programs which I often call (such as the terminal).

There are many other general remappings which have made my life at a keyboard
much faster and easier to use, but the multi-touch extensions are the ones
that I would struggle to live without.

As a side note, if you use the product and find it helpful, you should really
consider donating to it. It will make you feel like a better human, and
encourage continued support.

~~~
lucidstack
The multi-touch extension sounds amazing. I went to try it, but it doesn't
seem to work. I see the little dialog in the bottom right corner when I have
my fingers on the trackpad, but nothing happens on keystroke.

It's mostly definitely due to the recent update to Sierra. If you do use
Sierra, have you managed to make it work?

~~~
JohnGB
From El Capitan Apple have been "courageous" enough to essentially disable
many of the most useful apps with some of their new "features". I still use El
Capitan, so I have yet to deal with the Sierra issues, however I have heard
that Karabiner-Elements ([https://github.com/tekezo/Karabiner-
Elements](https://github.com/tekezo/Karabiner-Elements)) is progressing
nicely, so you could try that.

------
lars512
I used Karabiner for a month after getting hit by a car and breaking my right
wrist. I couldn't use that hand at all whilst it healed.

I had Karabiner remap my keyboard to half-qwerty, so that I could type
entirely using my left hand on the left side of the keyboard only. A modifier
key would switch it into "mirror mode" so that all the left-side keys would be
remapped to right-side keys. Fun stuff!

~~~
milesokeefe
Once you regained use of your right hand did it take any time to get back to
full typing speed using both hands?

How close to your two hand WPM did you achieve with your left hand alone?

~~~
lars512
The biggest obstacle was the swelling in the wrist after surgery. I had to
keep it elevated for quite a long time, and it would throb and be painful when
I lowered it to the keyboard. That passed gradually over 2 months. The finger
dexterity never left, the moments I held my hand there I could type at ~80%
speed without problems from early on.

With just my left hand, I could only manage more like 20%, which felt very
very slow to me. The bottleneck with half-querty was the modifier key, which I
had to hit very often to switch layouts. If you could move that to something
else, that layout could speed up much more.

Had I been out of action much longer, I might have tried some kind of custom
one-handed chording setup instead.

------
neurocroc
This application has been really huge for my productivity.

I have literally rebinded every single key on my mac with it. It is very
powerful especially when you combine it with the multitude of Alfred workflows
and different scripts that you can run.

I open Alfred with just single press of right command, I switch between all my
apps through hotkeys, my caps lock is a hyper key, my right shift is delete.
Can't give more praise to this tool really.

Here is how I use it and what my config file for it looks like for all
interested :

[https://github.com/nikitavoloboev/dotfiles/tree/master/karab...](https://github.com/nikitavoloboev/dotfiles/tree/master/karabiner)

More importantly, it allows to keep myself sane with the enormous amounts of
apps and tools I run on my system ([https://github.com/nikitavoloboev/my-mac-
os](https://github.com/nikitavoloboev/my-mac-os)) and interchange with them
seamlessly.

~~~
Singletoned
With all that software, I don't suppose you've come up with a good solution
for installing and configuring it all automatically on a new machine?

Last time I tried to automate it I used homebrew cask, but it definitely
wasn't a satisfying solution.

~~~
wingerlang
For most apps, can't you just keep the config files on e.g. dropbox?

------
konart
[https://github.com/tekezo/Karabiner/issues/660](https://github.com/tekezo/Karabiner/issues/660)

You should probably consider reading this if you are on 10.12 or planning to
upgrade

~~~
xwvvvvwx
Karabiner-Elements works perfectly for me on 10.12 (I only use it to remap
caps-lock to escape).

[https://github.com/tekezo/Karabiner-
Elements](https://github.com/tekezo/Karabiner-Elements)

~~~
statictype
That's exactly what I use it for and just set it up yesterday. The
instructions on the home page are fairly abysmal though.

~~~
rgoodwintx
Ditto to the readme on GH. The key (ahem) bits:

1\. Create ~/.karabiner.d/configuration/karabiner.json 2\. Put some stuff in
it (my simple example below) 3\. Install the app from the GH page.

Key definitions are in the source code, but if you check the Issues discussion
on the Elements project, you'll probably find good examples to send you on
your way.

Sample karabiner.json: { "profiles": [ { "name": "Default profile",
"selected": true, "simple_modifications": { "right_option": "delete_forward" }
} ] }

------
torspo
Since upgrading to Sierra broke my Karabiner, I started using Ukelele.
[http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=...](http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele)

I tried Karabiner Elements but couldn't figure out how to replicate my
configuration.

~~~
quinndupont
Anyone have any comments on limitations/issues with Ukelele? I'm stranded with
Karabiner-Elements being so rough, and I'd like to switch to something simpler
(I just need to remap option and command keys for my external keyboard)

------
Stratoscope
Karabiner is great. After XtraFinder stoped working because I upgraded to El
Capitan and didn't want to disable SIP, I tried Karabiner to see if it had the
one feature from XtraFinder that was essential for me: changing the crazy
Finder key mappings of Enter to rename a file/directory and ⌘O to open it.

I like having Enter open a file or directory and F2 rename it, and not just
because I'm used to Windows. I open things a lot more than I rename them.
Enter is the canonical key for opening something, and does just that in OSX
file dialogs. It makes no sense that Enter does one thing in file dialogs but
something completely different in Finder.

Sure enough, right there in Karabiner's built-in settings were options to
remap those keys.

------
ensmotko
Remapping the caps lock key to the delete key (delete the character in front
of the cursor) has been a great productivity boost for me. Below is the
karabiner.json file that I'm using for this:

{ "profiles": [ { "name": "Default profile", "selected": true,
"simple_modifications": { "caps_lock": "delete_forward" } } ] }

~~~
copperx
Interesting. Remapping it to Control is the greatest help for me because most
Mac programs support basic Emacs keybindings. Using Ctrl a or e to go to the
end of line is much easier than pressing Fn.

~~~
floatboth
Remapping it to Control is easy to do natively in macOS. What you can do with
Karabiner is Control/Escape: [http://stevelosh.com/blog/2012/10/a-modern-
space-cadet/#cont...](http://stevelosh.com/blog/2012/10/a-modern-space-
cadet/#controlescape)

For X11, there's xcape:
[https://github.com/alols/xcape](https://github.com/alols/xcape)

For Windows, of course, AutoHotKey (my config:
[https://github.com/myfreeweb/dotfiles/blob/master/windows/ke...](https://github.com/myfreeweb/dotfiles/blob/master/windows/keyboardstuff.ahk))

------
xrjn
Karabiner is quite cool but there were a few gotchas that were non intuitive
for me. I wrote a getting started guide[0] a few months ago that starts right
from the beginning.

[0] [https://medium.com/@.sasha/hacking-apple-s-consumerist-
cultu...](https://medium.com/@.sasha/hacking-apple-s-consumerist-
culture-6af79604f495)

~~~
grantcox
This was very helpful for me, thank you.

I couldn't get Karabiner to work - it seemed to install correctly, but none of
the "prepared settings" did anything. No matter what options I'd chosen, my
keyboard (both laptop keyboard and external) were unaffected.

Reading over your guide I decided to just try your "swap space and tab"
example in the private.xml file, and lo-and-behold, that worked. As does
recreating the inbuilt "play/pause, mute and volume to F9-F12" in private.xml,
whereas the inbuilt version doesn't work for me.

------
vikiomega9
Support for Sierra: [https://github.com/tekezo/Karabiner-
Elements](https://github.com/tekezo/Karabiner-Elements)

~~~
rys
Note that at the time of writing, it can't do multi-key remaps, which might be
a deal breaker for you.

~~~
lodestone
Check out Brett Terpstra's post on hacking the hyper key on Sierra:
[http://brettterpstra.com/2016/09/29/a-better-hyper-key-
hack-...](http://brettterpstra.com/2016/09/29/a-better-hyper-key-hack-for-
sierra/)

I'm happy with the fix for now. In fact, I've learned how awesome Hammerspoon
is!

------
rbalicki
Absolutely love this tool (and Seil, and BetterTouchTool). I shift-reversed
the number keys (i.e. shift-6 prints a 6, the 6 by itself prints ^), made my
left and right shift's open and close parentheses (I tried to make alt+left-
shift a square bracket, but couldn't get that working very well), made caps
lock escape or control and shift-reversed the backslash/pipe key.

I have trouble using other people's keyboards now but I'm very productive on
my own!

~~~
mrkgnao
I have a pretty wacky config (xorg for me), but I'd never thought about shift-
reversing. This is brilliant; I'm grateful for the tip!

------
dm03514
karabiner is absolutely critical to support external input devices, such as
footswitches.

OSX does not allow usb devices to modify input from other devices:

 _Note: Modifier actions from one USB device cannot modify the input of a
second USB device due to limitations designed into the Apple operating system.
Example: Shift, Control, Command, or Option keystrokes programmed into the
footswitch cannot modify the input of a separate USB keyboard or mouse.
However, a key sequence like ‘Cmd-W’ or ‘Cmd-Shift-left arrow’ will work on a
Macintosh if the entire sequence of keystrokes has been pre-programmed into
the footswitch. (Footswitch can only be programmed on a Windows PC)._

[http://apple.stackexchange.com/q/140732/8592](http://apple.stackexchange.com/q/140732/8592)

While Karabiner supports this:

 _Share state of modifier keys with all connected keyboards: When you are
using multiple keyboards, modifier keys are shared with all keyboards. For
example, pressing "shift key on keyboard1" and "space key on keyboard2" sends
shift-space._

------
psyc
All I hear about lately is how great this app is. I have two use cases that
are pretty important to me, and for the life of me I can't figure out how to
make them work.

I want to remap an ordinary letter key to another ordinary letter key. This
app loves special keys to death, but I can't figure out how to do anything
with boring keys.

I also want to disable the built-in keyboard while I'm using a bluetooth
keyboard. Apparently you could maybe do this before Sierra, but not with the
Sierra prototype? I don't know. This is the kind of byzantine app where it's
next to impossible to know whether you're missing something among its piles of
features.

~~~
guptaneil
FWIW, the Sierra prototype is missing 95% of the features of the full pre-
Sierra app. It's merely a proof of concept of the architecture rewrite needed
to support Sierra.

------
transfire
Honestly, someone needs to go back and rethink the way keyboard input is
handled in Unixes. There are a lot of neat ideas out there that just can't be
done without a programmable keyboard controller.

------
mherdeg
I use this tool because I like to run the binary distribution of nethack from
the command line inside an OS X Terminal window, and I am VERY accustomed to
using the up/down/left/right arrow keys to move around (from how things used
to work when I ran Windows). It seemed really hard to send that binary "hjkl"
instead of up/down/left/rgiht arrow key signals any other way and it also
seemed hard to compile in the desired behavior by hand (although, hmm).

I'm lazy, so I ended up just running Karabiner with this tiny private.xml:
[https://gist.github.com/mherdeg/4eca69637d176bc81ea19207b911...](https://gist.github.com/mherdeg/4eca69637d176bc81ea19207b91135cd)

I found that I context-switched between places where I wanted the arrow key to
send hjkl (Terminal.app running the binary) and places where I did not
(everywhere else). To make things slightly easier, I set up a "profile" in
Terminal.app called "nethack" which uses xterm-16color, displays ANSI colors
in a readable way, sets the window title to "Nethack", and launches
/usr/local/bin/nethack when this profile is opened. The Karabiner private.xml
setting that can be toggled on/off here ends up pretty much only rewriting
arrow keys when I want them to.

This seems like kind of a crazy workaround but it was really easy to deploy.

------
kardashian007
Karabiner doesn't work at all with Sierra. There's some "new" project called
Karabiner Elements is supposedly half-finished, but yet people keep donating
hoping they'll get something usable soon. Not holding my breath and it would
be completely new and will likely lack useful features of the abandoned one.

It would be more useful to more people to temporarily fix Karabiner and work
on Elements later, but no, gotta ignore paying users and stick to "the plan."

~~~
rgoodwintx
Elements is a bridge while the main project is rewritten. (It's in the
name..."elements" of the original project.)

They stated in several places that it can't be "temporarily" fixed due to
major structural changes to (I believe) the keyboard driver in Sierra.

Also pretty sure that Karabiner has been free forever. (Donations accepted,
but you know how rarely that happens.)

Just keeping the record straight, as someone who loves the app and, yes was
temporarily inconvenienced, but bravo to them for rapidly putting out
something to tide users over.

------
meta_AU
Would go crazy without this. My work Mac has fn as the far left key, now I
have it mapped to Ctrl for most combinations but it is clever enough to know
that fn + down is pgdown.

------
ZhangBanger
Having lots of issues with Karabiner Elements on Sierra. Are all the mapping
options available? I looked into the source and I see no way to replicate my
Karabiner mapping - no mouse key mapping, function keys no longer work as
F1-F12 keys, no 'eject' key (a shortcut for locking your screen, since OSX
doesn't handle this well by default).

------
izacus
It's a great piece of software. I maintain a few Macs for my family and they
don't use Apple keyboards for various reasons. Since Apple refuses to add
support for standard PC layouts (and creates monstrosities like localized
keyboard layout which has @ key on shift + alt + 2 which causes no end of
support requests), having Karabiner remap it to the standard PC keyboard
layout matching the hardware is a huge boon.

~~~
Someone
System Preferences => Change Keyboard Type… gives an UI that directs you to
press a few keys that help detect your keyboard layout. That has worked fine
for me (N=1) when adding a Dell keyboard to a Mac Mini.

I think that UI was added for the Mac Mini, as it was the first Mac sold
without keyboard ("bring your own keyboard and mouse")

~~~
btgeekboy
Doing that, plus swapping Cmd + Opt in System Preferences, is all I need to
use a standard PC keyboard on a Mac. Works great.

------
kozikow
I am using keyboard layout striving for good ratio between performance
improvement and switching costs implemented using karabiner:
[https://kozikow.com/2013/11/15/the-only-alternative-
keyboard...](https://kozikow.com/2013/11/15/the-only-alternative-keyboard-
layout-youll-ever-need-as-a-programmer/) .

------
oneeyedpigeon
From [0]:

> Do not change the location of Karabiner.app from /Applications.

> For example, Karabiner will not work properly if you moved Karabiner.app
> into /Applications/Utils.

I'm curious: why is this?

[0] [https://pqrs.org/osx/karabiner/](https://pqrs.org/osx/karabiner/)

------
nkurz
I just looked at my Karabiner preferences on my Macbook, and it contains three
entries:

1) fn + cursor key to Page Up/Page Down/Home/End.

Occasionally nice, but usually not necessary.

2) Option-R to right click

Slightly nicer than Ctrl-click, but not essential.

3) Caps Lock to left click

Absolutely essential and I can hardly live without it. Tap to click is fine on
the touchpad, but "click to drag" was something I hated until I did this
mapping. If you haven't already mapped Caps Lock to something else you can't
live without, I would highly recommend trying this. You'll probably need
Karabiner's partner program Seil to do it:
([https://pqrs.org/osx/karabiner/seil.html.en](https://pqrs.org/osx/karabiner/seil.html.en))

~~~
laktak
> "click to drag"

Why not 3 finger drag (they moved it to Accessibility in El Capitan)?

~~~
nkurz
Nice to know. I've had that on before, but because the "picture" shows moving
a window, I hadn't known that it worked for all dragging options, including
those with modifiers (like copying a file). I just tested, and it does. But I
find the "left pinky" on Caps Lock to be more convenient than repositioning my
right hand to do a 3-finger drag. And I use it for other clicks besides drags
--- that was just one case I liked.

What I'd really like for 3-finger drag is the ability to move windows without
having to click in the title-bar. That is, 3-finger drag anywhere within the
window to reposition. Do you know if there is any way to enable this?
Currently I use Better Touch Tool (another excellent configuration program)
for Cmd-Option-Click-drag to reposition, but this sometimes interferes with
certain applications.

------
salzig
What about `DefaultKeyBinding.dict`?

It doesn't need a kernel extension.
[http://xahlee.info/kbd/osx_keybinding.html](http://xahlee.info/kbd/osx_keybinding.html)

~~~
yoda_sl
Wow, I have been using OS X for years, but never heard about that tip! Ok it
is limited to Cocoa apps but still a great thing to know!

------
rotskoff
I have been using Karabiner for about a year now to disable my option key,
which was permanently depressed due to water damage. I haven't exploited it
for my productivity, but it saved me a good deal of money!

------
achikin
I usually swap Alt and Command keys on my external Microsoft Sculpt keyboard.
Is there a way to distinct between keyboards in Karabiner as you can do in
standard keyboard preferences?

~~~
izacus
You have options "Don't apply mappings to internal laptop keyboard" and "Don't
apply mappings to Apple keyboards". Will that do?

~~~
achikin
Yes, that did the job. Thank you!

------
matheweis
I use Karabiner daily at work; the ergonomic keyboard I really like doesn't
have Mac drivers, and Karabiner fixes all of the "wrong" keys.

------
webwielder2
An incredibly useful tool with an astonishingly bad UI.

------
shpx
Somewhat related, if you have ever wanted to use emacs (or readline) style
keybindings on macOS check out
[https://gist.github.com/cheapRoc/9670905](https://gist.github.com/cheapRoc/9670905)

Most of the keybindings don't seem to work on El Capitan, but just having a
system wide alt-b and alt-f is very nice.

------
greyhat
I'm able to keep about 15 years of muscle memory for Windows shortcuts because
of this excellent program. So glad it exists.

------
aladine
Yes, I used a corsair K70 mechanical keyboard and Karabiner helps me to remap
Alt and Command key. It is super useful.

------
laktak
Since Karabiner doesn't work on Sierra ATM I tried to find a replacement.
Looked at BTT & Keyboard Maestro but apparently this is the only one that will
let you assign different actions to the right/left option and command keys.

E.g. RightCmd+Up = Home but LeftCmd+Up = Cmd+Up

------
thought_alarm
I've been using Karabiner for years to map the volume and media keys to a 1987
vintage Apple Extended Keyboard.

Incidentally, remapping Caps Lock to Control on that keyboard required a
soldering iron and a pair of side cutters. But it works.

------
rado
(Un)related note, any chance of fixing language input switching to respect
each app's setting and default setting for new apps? It's been broken since
10.4 and this fan's only serious problem with macOS.

------
seagoj
I use karabiner to turn off the internal keyboard when I connect an external
keyboard. It let's me put a tenkeyless Thinkpad keyboard right over the
MacBook keyboard.

The only exception is that the power key still functions.

------
igauravsehrawat
My two keys stopped working. I used Karabiner to switch my keys to two music
keys. Saved me. I was surprised it was available for free, felt guilty and
donated some money for awesome software.

------
1057x31337
I've been using karabiner and seil for a long time. Both are great.

------
peascouih
I use it with my marble mouse logitech to emulate scrolling... love it

------
kefka_p
Have been using Karabiner for years.

Works great if you have an "I set my drink too close to my keyboard" moment
and need to make a spare PC keyboard work with your Mac to meet your
deadlines. =D

------
chris_wot
I keep trying to get Karabiner to load but something is stopping it. Wish I
could tell, I've needed it in the past to remap keys to get around VirtualBox
quirks.

~~~
fspacef
What version of osx are you using?

------
richdougherty
Great tool. I remap Right-Option to Right-Control. :)

------
STRiDEX
I use karabiner to fix a chattering spacebar on a way to expensive keyboard to
have a chattering spacebar.

Works great! saved my day.

------
ajmurmann
I've also had great success with this to have different scroll direction for
trackpad and mouse wheel.

------
afonsoabrantes
How do I disable the left shift key on karibiner elementes?

------
iLemming
I hate Windows now because of this thing.

------
nicolasMLV
been using it for 1 year to swap keys (beer+keyboard accident...) and it works
well

