Skip to content

Instantly share code, notes, and snippets.

@loeschzwerg
Last active May 16, 2020 14:44
Show Gist options
  • Save loeschzwerg/3a1c4c3e1c0d3d48e148f9294c19db24 to your computer and use it in GitHub Desktop.
Save loeschzwerg/3a1c4c3e1c0d3d48e148f9294c19db24 to your computer and use it in GitHub Desktop.
How I configured my Ergodox EZ

Ergodox EZ

This is nothing but a keyboard without compromises in terms of ergonomics. However it is not perfect, yet...

Ergodox EZ

I am a small handed developer, so the keyboard in its delivered state is quite large. However you can easily modify the keyboard to match your needs, head over to and try it yourself. Therefore I will create some hot zone movements on the keyboard and added the restrictions in a visual manner. It should be noted, that I have my Ergodox for quite some time now, and I may bring in some findings from my previous 19 layouts.

Atreus + Planck

The base model for the key mapping will be the Atreus keyboard, as it is a compact version, co-developed by a Clojure Engineer with years of experience. As I use Clojure myself and it is comparatively small, this seemed to be a good start. Secondly, the Planck is the smallest keyboard I know, with all strings attached, so I will try to merge Planck onto Atreus, where necessary.

Note that all keyboards have an ortholinear design, which matches finger movement way better than the staggered design.

Base model

This is the Atreus Base, it can be found here KeyboardIO Atreus Layout

This is obviously in need to be improved on a different keyboard. The bottom row is harder to reach than a little pinkie stretch, the thumb keys are stretched out, so for small hands this will annoy, and so on.

Preliminaries

So lets start with the atreus layout on an Ergodox I've heatmapped my finger movements on the Keyboard to analyze which keys will be used and accessed frequently by trying to keep the fingers on the homerow. The least heated regions are hardly accessible wihout lifting the hand.

Finger Movement

As we can see:

  1. My middle finger and my ring finger compensate my rather short little finger
  2. My thumb on the other hand works on its full range of effect, reaching even below my index and middle finger
  3. My thumb may not reach the outer thumb keys without lifting, while the rest may be accessed by rolling the palm.
  4. My index finger then covers most of the keys (12 in total)
  5. Complex key combinations over the reach of the keyboard should be avoided.

My implications with this design are to

A.

make important keys easily accessable for programming, which involves symbols and function keys.

B.

keep the basic infrastructure intact on the left pad, to reduce interference with standard gaming key assignments. It should be noted, that the home row will be changed to Shift, A, W, D, and the right hand will wander to my Roccat Nyth with 1234 accessible quite easily, so that I only have to do movement on the keypad.

Setup

Main Adjustments

Now before we do something else, let us overlay the Planck. The bottom row keys are positioned to the left and right of the keyboard, modifying a standard layout not that much. Esc is attached to my little finger for frequent use in VIM, even if that actually interferes with gaming sometimes. I first thought about Layer toggling Esc to Layer 2, however this would yield few use, as media keys are hardly used. Instead I assigned a layer toggle 1 on ' and Esc. My little fingers will love this.

I also spread F1 to F12 over the top to be used in [A,B]

To address my [1] finding, I moved the One Shot Layer 2 key to be used seldom by my middle finger ([A]). Further the TAB key just has to be there for access in programming and gaming ([A,B]). In programming I use it quite seldom, while gaming really relies on it.

For my [2] finding, I placed Space on the left keypad instead of right([B]) plus an additional ALT key on my thumb [B]. For [2.1] and [4] I added the One Shot Modifier CTRL and Autoshift toggle for complex spread shortcuts with [A]. I got pretty used to Autoshift as a decent replacement for the Shift key. It also prevents you from writing CAPS for no reason ;)

For my [3] finding, I also added the remaining - and = to the side keys.

AltGr

Before I forget, I will need the AltGr key, as it is used by me to create german Umlauts with WinCompose (ß,ä,ö,ü). I will mainly use it in text writing, so I will give it to my right palm for a quick hand tilt.

Number row ? ? ?

You may ask, why I would omit the number row. The reason is quite simple: I don't need the number keys that often.

  • In written text you hardly ever write numbers (write them out if you can).
  • In gaming I try to keep to my mouse, yet Fn keys are actually used in a bunch of games.
  • In programming I try to avoid them as far as I could, which the layout should remind me of.
  • In calculations I use the Numpad as a far more efficent way to put numbers. In total a numpad is way more useful for me, than a numrow, and the numpad is integrated on Tap Toggle 1 -> right pad.
Nav keys

As the bottom row on the right is completely empty, four keys easily fit in there for easy access and 'vim-like' navigation. PgDn and PgUp perfectly fit into the left to slots.

Second Layer

This is pretty much the same as the Atreus equivalent, except that I removed duplicates. I also

Last Layer

I've shrunk it down to the least needed bits, as I made the experience that too much will make you forget.

Empty thumb keys

To be honest, I won't probably use them for anything. I tried them with navigational keys and so on and so forth, but I just avoid them due to the uncomfortable flex.


I hope you like this little guide to my current layout. If you think about doing one yourself, I will be glad to answer questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment