I’ve got a new keyboard, and it’s a fabulous beast. Regular readers may remember that I have been using a Happy Hacking Keyboard Pro 2 (HHKB) for some time (about 6 years, as it turns out). That was my first mechanical keyboard since the days when mechanical keyboards were the only ones you could get. I’ve loved it to bits, but for the past few months I’ve been having pain and discomfort in my hands and wrists, and decided it might be time to look around for a more ergonomic replacement. After a lot of research and deliberation, I ended up getting an ErgoDox EZ. I’m still tweaking the configuration a bit, but I love it. It has already done wonders for both the comfort of my hands and my writing efficiency.
What I was looking for
I had a pretty long list of requirements for a new keyboard. I don’t think I could go back to a non-mechanical keyboard after the HHKB. That tactile feel is addictive, and whenever I have to type on my MacBook Air’s keyboard (and this is old enough to be one of the good ones), something feels subtly wrong.
Apart from mechanical keys, my main requirement was for a more ergonomic form-factor. The small size of the HHKB was good because it meant that my right hand didn’t have to move too far to the right to operate the trackpad, but on the other hand (sorry), it meant that my hands were closer together than is ideal ergonomically. A split keyboard, and one that would allow me to try out different forms of tilting would be much better.
Finally, I really wanted a keyboard that I could customise and programme to place the keys in the layout I wanted. I also wanted customisation to be easy, so that I could potentially tweak the layout frequently as my workflow changed. This is quite a tricky one, as quite a few keyboards are programmable, but often the scope of customisation is limited, or making the changes requires a level of geekiness that even I would find a bit much.
I can’t remember when I first heard about this keyboard, but I do know that I’ve had the web page bookmarked for ages, and kept looking at it every now and again. At the time, I didn’t have a reason to buy a new keyboard, but after a busy summer of coding and writing which turned my hands into painful, gnarled claws, I looked at it again with fresh eyes. It has two separate halves, connected by a cable, so you can adjust the separation to suit your own needs. The ‘tilt and tent’ system of adjustable legs allow you to set up any kind of angle, from tented to either positive or negative tilt. I also liked the look of the angled thumb keys cluster, which you can set up as a modifier key block.
You can choose from a wide variety of mechanical keyswitches when specifying the keyboard, but you can even replace the keyswitches yourself after purchase if you change your mind about your choice, or you need to replace a single defective key. Some clever design means that the keyswitches just click in, so you don’t need to get the soldering iron out to do this. It’s likely that I’ll never actually need to use this feature, but I found it reassuring. It’s not a cheap keyboard, and I feel better knowing that I can replace both keycaps and the switches themselves if I need to do so, without buying a whole new keyboard. In the same vein, the cables are removable, and fairly standard formats, so easy to replace if they wear out.
Finally, configuration of the layout is ridiculously easy. There’s an open source graphical configurator you can play with yourself to get a feeling for the scope of what you can do. You click on the key you want to change, choose what you want it to do, and move on to the next. When you have finished, you compile the layout, download it, and use a small Teensy loader application to flash the keyboard with the new layout by pressing a reset button with a paperclip. In a nice (and necessary!) touch, you can also print a copy of the layout to remind you what you put where while you are learning the layout.
Ergonomics of the ErgoDox
I’ve had my ErgoDox for a few weeks now, and I am feeling very comfortable with the layout. I chose the black model, without the LED lighting system. The lights don’t illuminate the keys, but shine under the keyboard. It’s a pretty effect, but I couldn’t see the use in it, and as it added to the cost, I decided to forgo that feature. I did get a set of ‘wing’ wrist rests though1, which add a lot to the comfort, and help you place your hands comfortably for touch typing. I spent more time than you would believe scrutinising specifications of different mechanical keyswitches, and even listening to audio files of what they sound like to type on before choosing the Cherry MX Brown switches. These are most similar in character to the switches in my HHKB: relatively quiet, with a tactile bump rather than a noticeable click, and they do not take as much force to actuate as some of the others. It took a day or so to adjust to the difference, but now I love them.
I have the halves of the keyboard about a shoulder width apart, and tented very slightly so that the inner edges are slightly higher than the outer. I worried a bit before getting the keyboard that the thumb cluster of keys would be too far away for my Hobbit-sized hands, but actually it’s very comfortable, requiring little movement away from a ‘home’ position for most keystrokes. That brings me to my layout(s), which I have developed with a fair bit of trial and error.
You can see the main layouts I’ve configured above. In fact, if you’d like to clone the layout to use as the basis for your own, you can find it here. The ErgoDox can use layers (up to 32 if you are brave enough), each of which can have a different configuration of keys, and which you switch between using configured layer keys. The layer keys in turn can be set to toggle the layer, or to switch to it only while the layer key is held down, so it’s possible to fine-tune how the switching works. I’ve got 3 layers, but only really use the two you see here.
The default layer (Layer 0) is the normal typing one, for want of a better description. I use a fairly standard Qwerty layout, but I’ve placed my modifier keys carefully for efficiency. Command, option, control, space, backspace, tab, and return are all around the thumb cluster, making it easy to press chords. However, I’ve also used the special options available in the configurator to set up additional combinations of keys (e.g. Command-Shift, Ctrl-Space, Alt-x), as well as keys which give you one output when tapped, but act as a modifier when held down (e.g. z/Ctrl, Esc/Command). For good measure, I’ve also got a big, dedicated Hyper key (Command-Ctrl-Option-Shift), which I have mapped to all kinds of OS level functions, and ‘Space Cadet’ brackets. The latter is a built in function you can assign to a key so that tapping the key gives you a right or left parenthesis, but holding it down acts as a shift key. I used to have this set up using software, but found that I often ended up with parens instead of a shifted character, as the timing never seemed quite right. It works beautifully on the ErgoDox, and is a great feature, particularly when writing code.
I must say that I love having dedicated navigation keys again. The only thing I never fully got used to with the HHKB was the fact that you needed to hold down a function key as well as the arrows or home/end/page up/page down keys to get them to work. Now I not only have the luxury of dedicated keys, but have also set up a cheeky Option-shift key next to the left/right arrows so that I can easily select text by word in standard Mac applications.
Layer 1 is a combined programming symbols (left side) and number pad (right side), which I can either toggle on or activate by holding down a layer key. It makes entering data a pleasure, and makes it easier to access some of the symbols that are otherwise on the shifted number keys. Since only the main letter keys have printed keycaps (deliberately, so you don’t have a confusing mismatch between label and programmed function), it was initially intimidating trying to remember what was where. This is where the printed layouts are so helpful, though it is surprising how quickly your brain adjusts.
How it all feels
I was a bit nervous about buying this keyboard, as it isn’t cheap. However, my hands, wrists (and even shoulders and neck) stopped feeling painful and tense after only a few days of use, so for that alone, it has been well worth the investment. Ultimately, a large proportion of my work involves typing (increasingly so, as I am doing more coding for work), and I need to keep my body free of pain and injury to sustain that in the years to come.
I have been surprised by how quickly I have adjusted to a radically different layout. The additional shortcuts (some of which are for my new Emacs setup, of which more later) have been a complete joy, and I feel as if I am writing and editing text much more efficiently and quickly than before. I touch type, and found that my typing speed and accuracy on plain words got back up to speed within a couple of days. The close placement of the space and backspace keys means that I am currently making more ‘back and forth’ errors because I hit the wrong key, but that layout makes most ergonomic sense, and I am sure that I will adjust completely eventually. This week I have had to type in front of my students during one-to-one meetings, which has made me rather self-conscious about making a lot of errors, but has also been a conversation starter. Generally speaking, I don’t recommend trying to learn to use this keyboard with an audience, as you feel a bit like a gorilla wearing boxing gloves, faced with a keyboard for the first time! However, with more practice, I fully expect to be dancing across the keys like a concert pianist.
In fact, I bought two sets. I am transporting my keyboard between home and work, so it’s useful to leave a set of wrist rests at each location, since they are relatively cheap. ↩︎