My Ergodox EZ’s Custom Layout

I got the Ergodox EZ in late 2015 and I love it. I’ve been tinkering with the layout ever since—that is, after all, the whole fun of buying one. Not many other keyboards on the market come close to providing this level of customization. Designing your own layout means you get to bend the keyboard to your will, not the other way around. I want to share some of what I’ve done and why I’ve done it.

The Ergodox EZ Keyboard

My Ergodox EZ Keyboard

My overall design goal is to keep the fingers near the home row and reduce wrist deviation. For example, on a standard keyboard I press the Backspace key with my right ring finger. Doing this requires a slight ulnar deviation of the wrist and leftward translation of the whole arm. Similar things happen for the left hand when I press the Tab key. Another source of strain is the pinky, who has to do a dance to hit Shift, Enter, modifier keys, etc. All of these extra movements become uncomfortable after many hours of typing.

Keeping the fingers near the home row and eliminating pinky strain also means not all of the keys on the keyboard are going to be used. Fortunately, the Ergodox has a concept called “layers” that allows us to assign multiple key codes to each key in a straightforward manner, so limiting the number of keys does not limit the number of key codes we can produce.

Unused Keys in this layout

Unused Keys in this layout

My custom layout also plays into some of my idiosyncrasies such as only pressing the spacebar with my left thumb (which now frees up the right thumb for other things) and almost always using the left shift key (although, I’ve been trying to get out of that bad habit when using a standard keyboard).

I’ve created the layout using the Ergodox EZ’s graphical customizer, and it’s available here:

Base Layout

First, I decided to use a modified version of the Workman layout. I’ve used the Colemak layout in the past, but I like the Workman’s philosophy of minimizing horizontal movement in favor of vertical movement. To that end, I moved the B and J keys from a stretch for the two index fingers (where T and Y are on the QWERTY), to replace the , and . keys (which have moved to another layer).

Modified Workman Layout

Modified Workman Layout

The letter layout might be the least interesting aspect of a keyboard, simply because I’m still not entirely convinced a different keyboard layout provides any benefits beyond a good chuckle as you watch the confused look on your buddy’s face when they try to use your keyboard; nevertheless, it can be fun learning a new layout, even if you don’t end up typing all that much faster.

More Thumb Keys, Please

One of the coolest “secret weapons” of the Ergodox is all of those thumb keys! On a standard keyboard, fingers are responsible for 4 keys, 8 keys, or even more! (For example, on a QWERTY keyboard, the left middle finger has C, D, E, and 3; the right index finger has N, H, Y, 6, M, J, U, and 7; and the poor pinkies have many, many keys). The thumbs, meanwhile, have only the spacebar to press (and maybe a few modifier keys, if you want to get fancy). But with a video game controller, the situation is reversed: the thumbs are doing all the work and the fingers are relegated to one or two buttons! Clearly, the thumbs are an untapped resource on the standard keyboard. The Ergodox helps us rebalance the load between our fingers and thumbs.

Thumbs have a unique talent over fingers on a keyboard: they can hold a key down without much negative impact to the performance of the fingers. Have you ever avoided using Caps lock by just holding down Shift to type out SOMETHING IN ALL CAPS? It’s kind of a pain. But it becomes much more comfortable when the Shift key is managed by the thumb.

Most of the thumb keys are too far away for me to reliably and comfortably tap them, so I repurposed two bottom row, inside keys on each side into thumb keys, even turning their key caps around to better fit the thumb. This frees up the two double-sized keys on the thumb cluster for other things.

Two lower row, inner most key caps reversed so that they can be used by the thumb

Two lower row, inner most key caps reversed so that they can be used by the thumb

Likewise, the pinkies are no longer overburdened, and instead, the stronger index finger takes on more work.

Color coded assignment of fingers and thumbs to keys on the keyboard

Color coded assignment of fingers and thumbs to keys on the keyboard

Space, Backspace, Tab, and Enter

These keys are some of the most used keys on the keyboard, and therefore need to be reached without straining. They’ve all been thrown into the bottom row of keys that were annexed for the thumb. This means no more straining when trying to press Tab, Enter, or Backspace! And Space stays assigned to my left thumb, just like I’m used to.

Position of the “Backspace”, “Space”, “Enter”, and “Tab” characters on the keyboard, to be pressed by the thumb

Modifier Keys

Rather than shoving the modifier keys to the bottom of keyboard, I put them in the home row. The Ergodox allows you to have “dual function” keys: a normal key when tapped, and a modifier key when held. Thus, the modifier keys are Shift, Ctrl, Alt, and Cmd/Win on the left, from pinky to index finger; this is mirrored on the right. This has been one of my favorite modifications because I no longer have to move my hand awkwardly for cut/copy/paste or some complicated keyboard shortcut. It’s the customization I miss the most when switching back to a standard keyboard.

When tapped, letter; when held, modifier key0 “Shift”, “Ctrl”, “Alt”, and “Cmd/Win” along the home row

Thumb Keys

Since Space and Backspace are already accounted for, those nice big thumb buttons are used for layer switching. The big thumb keys, from left to right, are assigned to Shift, Caps lock, Layer 1 switch (tap to use layer), and Layer 1 temporary (hold to use layer). The concepts of the right and left sides are supposed to match: Shift can be thought of as “hold to use Caps” and Caps lock can be thought of as “tap to use Caps”.

Thumb keys. Left, “Shift” (or “Temporary Caps”) and “Caps Lock” (or “Switch to Caps Layer”). Right, “Layer 1 Switch” (or “Layer 1 Lock”) and “Layer 1 Temporary” (or “Layer 1 Shift”)

In practice, I use the thumb’s Shift key for general typing and the Shift key on the home row in combination with the other modifier keys when typing shortcuts.

Numbers, Symbols, and Function Keys (Layer 1)

I’ve always found touch-typing numbers on a standard keyboard to be a bit tricky. They’re just a bit too far away to type 100% of the time without looking. Therefore, for my Ergodox layout, I brought them all to the home row. All of the remaining symbols fill in the lower row, with the ,, ., and / at their familiar locations.

This also allows me to bring the function keys into the row above the home row. The numbers and function key numbers line up, so it’s easy to remember where they are. Function keys are used heavily many of the short cuts of my favorite IDE (IntelliJ), so having them close by is very helpful.

Position of numbers, symbols, and function keys

Position of numbers, symbols, and function keys

Arrow Keys

Who doesn’t love arrow keys? I use them all the time, so they need to be in be in a comfortable location. For now, I’ve shoved them in the lower right corner of the keyboard, but they may find their way into the home row before too long…

Position of the arrow keys

Position of the arrow keys

Final Result

When you put it all together, this is what you get (here’s the link again):

Layer 0

Layer 0

Layer 1

Layer 1

I’ve been toying with the idea of adding a “URL Encoding layer”. For example, when I press on the key that’s assigned to # (Layer 1 + Shift), it would output %23, or when I press Space, it would instead type out %20. This kind of action would be possible, but would require compiling the layout from source code. However, I’m not sure how useful this would be, since on the one hand, I have to look up a character’s URL encoding almost every time, but on the other hand, I’m not sure I would need to use it often enough to warrant a whole new layer on my keyboard.

One superfluous thing I’ve done in the past is to play with the little indicator lights. I like turing on one light when Shift is pressed or Caps lock is engaged, and another light when Layer 1 is on. This also requires compiling the layout from source; not hard, but not as easy and convenient as the online GUI.

All in all, it takes a few months of daily use to become proficient in a new layout, but it’s a lot of fun once you get it down.

12 thoughts on “My Ergodox EZ’s Custom Layout

  1. Wow, those tricks are clever. I had a Kinesis for a few years and had Ctrl-Alt in the bottom-inner keys, also mirrored. But leveraging dual keys that way is really creative, you need a combo of those and a letter, so I guess you only need to choose the halve opposite to the letter and done. And the reverse keycaps, really cool.

    Thanks for sharing.

    • Thanks! This is the first mechanical keyboard I bought and I had been looking a long time before I found it. Mechanical keyboards tend to be just expensive enough that the first purchase took forever to decide, and I can’t see myself justifying buying more than one every few years–if even that. I’d seen the Kinesis brand but dismissed it for reasons that I now know (after using the Ergodox) don’t matter. Maybe I’ll even buy a Kinesis one day!

  2. Hi, Great work, and great starting point for my ErgoDox (just ordered). I’m also thinking more home-row, less distant key usage.
    Are you finding the modifiers on the home-row “resting” keys still working for you?

    • Bruce, I’ve been using this particular layout for a few months and home-row modifiers for a few additional months; it’s not without its flaws. Sometimes when I want a modifier it types the letter and vice versa. However, it happens rarely enough not to bother me compared to the convenience. I know buried somewhere in the firmware is a setting to adjust the time interval of these dual function keys–I believe by default a key-down less than 200 ms outputs the letter/number while longer will output the modifier, but I can’t find where this is defined atm. I’ve thought about playing around with this time interval, but I’m not sure it would be worth it since I’ve had it “misfire” in either direction.

  3. I feel lucky that I ended up here with google image i think. Just got my new ergo-dox and I just couldn’t use qwerty anymore haha so I’m slowly building a french/eng layout. Anyway, I love the idea about flipping thumbs keys and I was curious but, do you have small hands? Because I feel like my pinky can reach the extra 3x large keys and my thumb can reach 1 more key. Since I have large/x-large hands I was wondering if it was the main difference or if its more about horizontal movements… anyway I simply love how clear and well done you made this post.
    P.S. i even youse your color legend to figure out my perfect layout :P thx for sharing :)

    • Thanks for the kind words :) I have smaller than average hands, so those three or four little thumb keys are definitely out of reach; however, I choose not to use those 1.5 sized keys along the outer edges because moving my pinky laterally feels a little uncomfortable (well, maybe that’s due to having smaller hands too…).

  4. Also i saw in a reply that you were talking about messing with firmware to change the delay of the dual press keys. Here is my problem, i need to add accents(à è é ê î ô û ç), i can’t find em anywhere in ergodox configurator, tried to look on google but no solution so far and I don’t really know how firmware works :S… I’ll gladly take any tip :P if you have any.

  5. Thank you for sharing this amazing work. It’s very clever and I’m going to try it and likely fork it and tweak it :)
    I’m a bit surprised and intrigues that you’re actually using the CapsLock, and I’m curious why there aren’t any `{` and `}` keys ?

    • I’m glad you like it :)

      After using this layout for the past six months, It turns out I rarely use the Caps Lock or “Layer 1 Lock” keys. Maybe they could be repurposed, but I don’t know if I would personally have a need to do so.

      As for the `{` and `}` keys, just like a regular keyboard it’s `shift-[` and `shift-]`. How that works on this layout is: hold down both thumb keys and press the `[` key (for example). Those characters end up in a pretty convenient position on the keyboard (sort of equivalent to where the ‘v’ and ‘b’ are on QWERTY), which is nice when writing code.

  6. I’m coming from a split 40% keyboard (Diverge TM2, similar to a Let’s Split Planck), and when I received my Ergodox, I wasn’t sure what to do with all of these keys! Thanks for helping me find a sensible arrangement that minimizes pinky use. I’ll incorporate some of your design choices into my own layout, which is based on my split 40% layout, and not too different as to confuse myself when alternating between portable (TM2) and home (Ergodox) keyboards.

    I also exclusively shift and modify (CTRL, WIN, ALT) with my left pinky, causing significant strain in my left hand.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s