Switching to Ergodox EZ - Part 2

First experiences using the ErgoDox

Posted in Personal on

Welcome to part 2 in a series of blogs where I write about my experiences switching to an ErgoDox. It's been about a week since I've been using the ErgoDox as my daily driver now. That seems like a good moment to write about my first impressions.

My expectations where that since I was already familiar with split keyboards, getting used to the ErgoDox would be easy for me. Surely all the horror stories I read about people having difficulty getting used to their new keyboard would not apply to me. I'm a professional developer who can touch type.

The first onset of doubt came when I saw this tweet by Ryan Florence.

The moment the keyboard came in I plugged in the cables, positioned the rest wrists and tried typing on it. I immediately realized the truth in all of the warnings. The first day was abysmal. I went from an estimated 80 words per minute to roughly 20. I don't even know exactly how bad I was doing. The type trainer I used refused to show my WPM because my accuracy was too low to be reliable.

I half-jokingly told my colleagues to expect delays when waiting on emails or chat messages. The truth wasn't far off.

Ortholinear keys

Having ortholinear keys is much harder to get used too than anticipated. I notice I'm really struggling with the bottom row in particular. Matter of fact, writing this blogpost I just wrote `partivular` and `favt`.

I'm still getting used to the ortholinear, but it's not going as bad as the first two days anymore. I actually find myself writing at semi-decent speeds again. Granted, I have to look at my keyboard and still make mistakes. In all honesty I can't I find ortholinear better than staggered layouts yet. Maybe this will change in the future, but so far I don't get the hype.


Having bought the ErgoDox EZ Glow, I can assign colors on a per key basis on all layers above the base layer. I use this extensively. It really helps me learn which keys are important on my upper layers. I have the keycaps with alphanumeric signs on them, but I can imagine this would even be useful when using blank keycaps.

The Tilt/Tent Kit

The Tilt/Tent kit allows you to tent or tilt your keyboard. They come pre-attached to your keyboard in the box, so it's really a matter of loosening the screws by hand, putting the stands in a comfortable angle and hand tightening the screws again. The screws make a weird squeeky noise as if a spring is about to break at any time, but they do tighten nicely and secure. Time will tell if these screw-in feet are durable.

I haven't used any crazy tenting settings yet, but I think I already like this tenting kit much more than the small feet that came attached to the Matias Ergo Pro.

The default layout

The ErgoDox comes shipped with a default layout that is just... bad. I didn't understand why people said this about the default layout, but having worked on it for a bit I think I know what's happening. It seems like the only purpose of the default layout is to showcase the options the QMK firmware offers to you.

It simply isn't meant to be a comfortable layout for typing. It does too much.
Below I've embedded the default layout the ErgoDox ships with. I'll give a few examples of things that stand out to me.

The CMD and Option keys

I use the `CMD` key all the time. Especially in combination with `X`, `C` and `V`. There is simply no way that the default position of the `CMD` key can be comfortably used while trying to copy paste something. This is because while you have 6 thumb keys per thumb, only the 2 bigger keys can be comfortably used without severly stretching your fingers or hands.

The same applies (to a lesser degree) to the position of the `Option` key, but only because I use it less.

My solution: I've remapped all of the keys below `Z`, `X`, `C`, `V` and `B` to reflect one of `CTRL`, `OPTION` or `CMD`. Now I can use muscle memory for the most important tasks while I'm still getting used to the board. Besides those keys, I actually went further and pretty much remapped all keys, where possible, to closely resemble a default Mac layout. I figured this would make the transition much easier.

Navigation arrow keys

I'm very much used to having a navigation cluster on my keyboards. In the default layout, the 4 navigational arrow keys are scattered acros the layout. If you want to quickly use shift in combination with `alt` and your arrow keys to select a word or sentence, you're out of luck. The best you can hope for is selecting a word character by character.
This is something I've changed in my custom layout. I first changed my arrows keys to `hjkl`, vim-style, but I really could'nt get used to that.Keeping the spacebar pressed toggles a text selection layer with a navigation cluster in traditional wasd style but shifted to the right, `esdf`. This allows me to toggle the layer, use my nav cluster and press the shift key all with one hand. If I want to use alt to skip words, I can use the enter thumb key as alt in this layer.

This change makes working with code more palatable, but it's not ideal. I'll definitely experiment more to find a comfortable way of editing text.

Media keys

Keeping the `;`key pressed toggles the media layer. On this layer you can pause and play music, adjust volume controls and skip tracks. Honestly, I really like this behavior and see no reason to change this. The only thing I did to improve this is assign per-key colors so I can see which keys are media keys when the layer is toggled.

The mouse controls also live on this layer. These keys (again, the `esdf` keys) manipulate the mouse cursor, eliminating the need to switch your hands from mouse to keyboard, but the poor acceleration implementation causes me to actually rarely use this.

Layer toggle keys

The slightly bigger keys on the inside of the keyboard switches the keyboard to another layer. I frequently found myself hitting these keys on accident, causing me to end up in a different layer without me realizing what is going on. I disabled these keys and decided that long-press temporary toggles make my journey getting used to this keyboard much easier.

Backspace at caps-lock position

Ever since buying a Macbook without physical escape key, I've remapped my `caps lock` keys to function as `escape` keys. This is a very common keyboard hack, and I was surprised to see the ErgoDox default layout doesn't follow that convention. On the ergodox, you've got to keep the `~` key pressed and tap the top-left button to get escape.

Having the backspace key in the caps lock position though, felt very natural. I only used the default layout for a day before flashing my custom layout, but I noticed it already became muscle memory to use this key as backspace. It took a couple of days to unlearn this position that I haven't even used for more than a day.
I don't think I'll reposition the backspace to that position as I really want my `ESC` key to be there, but I actually enjoyed the default position of backspace.

Current layout

Here's the layout I'm currently using

Notable differences from the default layout

  • Tried to mimick a conventional keyboard as much as possible. I'll get used to the ortholinear keyboard first before shifting all my keys around.
  • Added all my meta keys to the bottom row. Otherwise I wouldn't know how to use shortcuts.
  • All layer toggles are temporary, you need to keep a specific key pressed to activate a layer. This prevents accidental layer switches.
  • Keeping my main thumb key on the left side triggers my navigation layer. Click on `Navi 3` to see what's on there.
  • Added `Tab` to left column. I can't fight all of my muscle memory simultaneously.
  • Added `Right Ctrl` next to the `N` key on the right hand side. This is a left-over from my Matias board, but I don't think I've ever used it.
  • I disabled most of my inner column blank keys, except for the middle ones which serve as `backspace` and `delete` respectively. I find myself rarely using them, so I might start using these for characters often used when programming.
  • On the symbols layer I use key glow to indicate the numpad and frequently used characters for programming.