I tried using DoubleCommand, but it doesn't let you hold down caps lock, and pressing it causes caps lock light to be enabled/disabled. Ideally I want caps lock to never be enabled and for the key to behave exactly as though it were the delete key.

Another problem that DoubleCommand has is that every second press just toggles the light, and doesn't delete a character.


You may want to try Seil (formerly PCKeyboardHack). I use it to bind Caps Lock to Right-Ctrl (not plain Ctrl), so that I can bind Caps Lock to Meta in Emacs (while Ctrl remains Ctrl, and other keys are kept to the usual behavior).

  • This works, thanks. To make sure that there is no delay though, you'll want to install and use KeyRemap4MacBook as well (same website). The instructions are located here: pqrs.org/macosx/keyremap4macbook/extra.html#t1 – Senseful Jan 29 '11 at 22:22
  • 2
    on my newer macbook, all I needed to do was use Keyboard preferences to disable caps lock, and then install PCKeyboardHack to map caps lock (I mapped it to Esc for use in vim) – Jason Sundram Jan 29 '11 at 22:35
  • Indeed I do not have any delay when you remapping (or disabling I guess) Caps Lock in the System Preferences > Keyboard Preference Pane > Modifier Keys… popup. – Mathieu Legrand Jan 30 '11 at 2:53
  • 2
    The application has been renamed "Seil": pqrs.org/osx/karabiner/seil.html.en – Mathieu Legrand Aug 10 '14 at 11:39
  • Seil is now obsolete and has been replaced by Karabiner-Elements. – syvex Mar 24 '20 at 16:11

If you're on macOS Sierra or later, and don't mind using the command line, you can do it with a technique I saw on Hang Lu Su's blog:

$ hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A}]}'

In her linked post she gets into other things as well, like making sure this binding survives restarts or mapping any key. Here are the Apple docs explaining the technique used as well as the codes to use for any key.

I realize the question and its original answers are older than macOS Sierra, but perhaps this can be useful for people stumbling across it more recently.

  • perfect answer! Thank you ! – Yashank Oct 31 '20 at 11:18

ControllerMate gets normal auto-repeat, no delay nor light toggle given Apple ➤ System Preferences… ➤ Keyboard ➤ Keyboard ➤ Modifier Keys… ➤ Caps Lock Key ➤ No Action.
Control, Meta (Alt) and Control-Meta took extra logic: ControllerMate's wacky visual programming language


P.S. Emacs² & Lisp³ grew up with Rubout left of letter A — see the Knight TV keyboard⁴ and Space Cadet keyboard⁵ layouts with Control-Meta-Super-Hyper-Shift-Greek-Top modifier keys.

P.P.S. Password input may require the hardware delete key.

P.P.P.S. If you manage to get caps lock functionality on a both-shifts key chord do let me know.

P.P.P.P.S. The Mgt forbids me to post these https://en.wikipedia.org/wiki/ links: [2] Emacs [3] Lisp_(programming_language) [4] Knight_keyboard [5] Space-cadet_keyboard

  • I flushed ControllerMate in favor of Karabiner-Elements as suggested in other answers — configuration is daunting but I believe a third party app helps overcome this obstacle. – Devon Sean McCullough Jul 26 '20 at 3:45

Seil is now obsolete and has been replaced by Karabiner-Elements. https://karabiner-elements.pqrs.org

You must log in to answer this question.

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