Jamie Starke bio photo

Jamie Starke

I develop for my career, but I also develop for fun, and whenever I think it can solve a problem I'm having. This has lead me to create side projects, such as Rental Map and BusTimes, among others.

Consulting Newsletter Email LinkedIn Github Stackoverflow More

Over the summer, I found out about some advanced keyboarding from a friend. After installing it on two different machines, I figured I would add some useful links to it to my site. If nothing else, it would allow me to find all of the resources faster, and not have to search the web for them each time.

The objective, change the keyboard mappings so that when you Hold the Caps lock key, and press a key, you launch a configurable option. If you press the key once and let go, it launches the Escape key. This is personally useful for Vim among other things.

The Programs

There are a number of installers you will find useful along the way.

  • Seil - Remaps the keyboard caps lock key to a different keyboard code.
  • Karabiner - Changes the base functionality behind the key.
  • BetterTouchTool - Responds to the keyboard combinations and performs mapped functions

How it works together

The original article I found was A useful Caps Lock key. I’ll summarize the details in the following.

Seil

Install Seil. Open Seil and under Change the caps lock key check Change the caps lock key and set the keycode to 80.

To make the best use of it, you will want to disable the default OS X handling of the Caps lock key. To do this:

  1. Open System Preferences
  2. Open Keyboard
  3. Open Modifier Keys…
  4. Change Caps Lock Key to No Action

Karabiner

Install Karabiner. Open Karabiner and select the Misc & Uninstall. Press Open private.xml. In the private.xml, enter the following.

<?xml version="1.0"?>
<root>
    <item>
        <name>F19 to F19</name>
        <appendix>(F19 to Hyper (ctrl+shift+cmd+opt) + F19 Only, send escape)</appendix>
        <identifier>private.f192f19_escape</identifier>
        <autogen>
            --KeyOverlaidModifier--
            KeyCode::F19,
            KeyCode::COMMAND_L,
            ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
            KeyCode::ESCAPE
        </autogen>
    </item>
</root>

Next click Reload XML.

Finally, in the Change Key tab, check F19 to F19. We’re now ready to move on to the final stage.

BetterTouchTool

Once you’ve installed BetterTouchTool, open it up, and go to the Keyboard tab. In this tab, Press + Add New Shortcut. In the Keyboard Shortcut, press Caps Lock plus the key of your choice. Next, select the Trigger Predefined Action: and choose your desired response.

A few examples of my keyboard shortcuts:

  • Caps Lock + ` opens the BetterTouchTool configs.
  • Caps Lock + c opens Chrome
  • Caps Lock + t opens iTerm 2

Hope you find this useful!

If you found this article useful, and you’re interested in checking out other articles I write in the future, join my newsletter.