I want to use CapsLock as a modifier key to type symbols like ({\})= using the alphabetical keys in the keyboard.

For example:

CapsLock+a is mapped to =
CapsLock+k is mapped to \

To do this, I mapped CapsLock to Option+Shift using Keyremap4Macbook following the instructions in "A Useful Capslock Key".

    <name>F19 to F19</name>
    <appendix>(F19 (capslock) to (shift+opt))</appendix>

Note that, before that I mapped CapsLock to key code 80 in PcKeyboardHack which is key code of F19.

Then I mapped key combinations of CapsLock + alphabetical characters to symbols such as =\})( using Ukelele.

So far, everything works properly except that there is a side effect of this setup: I cannot use Alt+Shift modifier for any other key binding. This is pretty restrictive compromise.

I tried mapping CapsLock to more complex key bindings such as Ctrl+Shift+Alt or Cmd+Shift+Alt or Ctrl+Cmd+Shift+Alt. But these didn't work well because then mapping CapsLock+alphabetical keys in Ukelele changes the alphabetical keys too. For example, assume that Ctrl+Shift+Alt+a is mapped to =. Then a alone is mapped to = as well.

I wonder if this problem can be solved somehow? I think there might be two alternative paths to look for solution:

  1. Creating a new custom modifier key for CapsLock without consuming existing modifier keys such as Alt+Shift.
  2. Preventing the mapping of Ctrl+Shift+Alt+a to change the a key all together.

Are these solutions possible to implement?

  • I just realized I never hit caps lock by purpose...
    – bot47
    Commented May 24, 2014 at 7:18
  • 2
    Most people don't use caps lock neither. But the location of caps lock is much easier to access than any other modifier key. Using home row keys together with caps lock in order to type symbols is a very big productivity gain. Commented May 26, 2014 at 13:06
  • Can't you just do the Ukelele part without first mapping caps lock to option + shift? Commented Nov 7, 2017 at 17:55

1 Answer 1


Got this all from more recent Brett Terpstra posts, so full credit to him.

Using Karabiner Elements and BetterTouchTool, you can create a "Hyper" key mapped to control-option-shift-command (which probably won't be used by any apps as a default modifier). Then you can use BetterTouchTool to maps Cap Locks + "a" to type "=". Typing "a" by itself still gets the letter "a". You can also set it up that tapping Cap Locks alone functions as the escape key or even as standard Caps Lock.

Rather than reposting Brett's code here, I'll link to the post: A Hyper Key with Karabiner Elements, full instructions.

Some screenshots to help guide you along:

Karabiner Elements Complex Modifications Pane After adding Brett's code to karabiner.json, the Complex Modifications pane will look like so. No need to do anything else here.

Keyboard Pane of BetterTouchTool In BetterTouchTool, switch to the Keyboard pane, add a shortcut, type Caps Lock + character, then choose "Insert/Type/Paste Custom Text" as the Trigger Predefined Action.

Insert/Type/Paste Custom Text Sheet In the Insert/Type/Paste Custom Text sheet, type the character(s) you want and choose "Insert Text by Typing".

  • Didn't realize how old this question was. It showed up on the first page of one of the sort options.
    – Bruce
    Commented Dec 4, 2017 at 2:13

You must log in to answer this question.

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