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.
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
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.
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: http://configure.ergodox-ez.com/keyboard_layouts/qdwmmk/edit
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
J keys from a stretch for the two index fingers (where
Y are on the QWERTY), to replace the
. keys (which have moved to another layer).
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
3; the right index finger has
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.
Likewise, the pinkies are no longer overburdened, and instead, the stronger index finger takes on more work.
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
Space stays assigned to my left thumb, just like I’m used to.
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
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.
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
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”.
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
/ 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.
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…
When you put it all together, this is what you get (here’s the link again):
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.