My Ergodox EZ coding layout
Tags: keyboards, productivity
Published: 2020-07-29 20:36:27

2 or 3 years ago I bought an Ergodox Ez https://ergodox-ez.com/ I like mechanical keyboards a lot but I fell in love with this on the moment I saw it.

I own one of the old versions. No key backlights or any other of those fancy coloring stuff. It performs well, the cherry brown switches are great for my use and being able to position the keyboard halves the way I want has improved my posture when working a lot.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/yyuyopbd360hteyt5hg5.jpg)

One of the things that made it a game-changer for me was the possibility to experiment with custom layouts and, lately, the support for macros.

## The 4 layers

The layout is built around 4 different layers

- `0` or Home layer
- `1` or extended layer
- `2` or media layer
- `3` or numeric layer

Some of the ideas on it (like reducing the use of pinkies) comes from here https://implementsblog.com/2016/10/16/my-ergodox-ezs-custom-layout/

## Layer 0 (Home)

![Home layer](https://dev-to-uploads.s3.amazonaws.com/i/d4e91o1q85n36ll19bd1.png)

This is the default layer. It is built as a `QWERTY` keyboard but in order to minimize the use of the pinky finger it has dual function keys on the home row (those are the keys on light blue for `a`, `s`, `d`, `f`, `j`, `k`, `l` and `;` that way `SHIFT`, `ALT`, `CTRL` and `SUPER`/`CMD` are mapped on parallel on each hand and pinkies use is reduced.

This is weird at the beginning but once you get used to it it is so much better than the regular keyboard distribution that I would never want to get back to it.

The next thing that is worth mentioning here is the set of macros I have. Those are the purple keys at the top and at the bottom of the layout.

The ones on the left hand are for Vim and going from top left to bottom right they:

- Open git status
- Open horizontal split
- Open vertical split
- Fuzzy file finder
- Grep on project
- Close current buffer
- Repeat last test (with https://github.com/vim-test/vim-test)
- Run the tests on this file

For the right hand I had tmux macros and from top left to bottom right:

- Rename tab
- Open new tab
- Open vertical split
- Open horizontal split
- Change to previous tab
- Change to next tab
- Switch to next split
- Zoom split
- Enter search mode
- Close current split/window

I know, you're wondering "do you really use all that?" well, after some time yes. I use it all. Besides, so far I've not lost my muscular memory so I can still use a regular keyboard.

## Layer 1 (Extended)

The most important thing about this layer is that it has some programming symbols like `[` or `]` and that it has the numbers (and all the symbols they have on `SHIFT`) but in the home row instead of the top row.

![Extended layer](https://dev-to-uploads.s3.amazonaws.com/i/gus0gek8hsyzoo85wezl.png)

I'm currently studying how can I change some of the other coding symbols to a more comfortable position, like the row on top of the home one on the right hand. But I have still not decided.

## Layer 2 (Media)

![Media layer](https://dev-to-uploads.s3.amazonaws.com/i/9nchdsrudbcjle6r97tr.png)

This one is easy. It has the arrows on the home row and on the same position as Vim `hjkl` + the media keys on the row on top of the home one + mouse movement on the left hand.

I actually don't use that mouse a lot, but it helps having it around.

It has all the `F` keys on the position where the numbers would be on a regular keyboard... I don't use them that much but I still want to have them around in some cases.

## Layer 3 (Numeric)

This layer is pretty simple. It works as a numeric pad. I don't use it that much but it gets useful when you need to do things with excels for example.

![Numeric layer](https://dev-to-uploads.s3.amazonaws.com/i/ok6snnjcaj84p6rhoi4o.png)

## WIP

This is still unfinished. I change it from time to time and try to time and regularly go through it to try to find ways to improve. Mainly to make things more comfortable or to reduce typos.

## Can I use it?

I wouldn't recommend it if you're starting with an ergodox keyboard. That's already a bit hard on its own. But if you want to give it a spin you can find it here https://configure.ergodox-ez.com/ergodox-ez/layouts/KrKNl/latest/0