Ergodox Keyboard Setup on Arch Linux and Sway Window Manager

Published on 2020-07-16 by Kenneth Flak

Back to Tech Research

Table of Contents

I've been mildly uncomfortable with my keyboard for a while, and when somebody showed off their ergodox-ez keyboard over at Mastodon, my curiosity was peaked. I was intrigued by two things in particular: the split keyboard design and the extreme hackability. There was alsop a claim from someone that the typing speeds would triple. That last claim I took with a grain of salt, but all the rest of it made me take the plunge. It was not an easy decision to make, as the keyboard is quite expensive (hitting roughly 400 euro with all taxes and import duties), but the piece is beautiful, it adheres strictly to open-source principles, and the company claims to pay its workers decent salaries. Well, then.I duly took the plunge, and a couple of weeks later the 'board was on my desktop. All very exciting, of course, but the proof is in the pudding, and I have still not used it for long enough yet to make it second nature.

However, the process of getting used to it is continuing, and I have already discovered some very interesting tricks that would not otherwise be possible.


First, a little context: I am doing this on an Arch Linux system, using the sway window manager. A window manager takes care of all the graphical representation of software on a computer, sorting out how to layer windows and dialogs, as well as dealing with screens, keyboards, mice and other input/output to and from the computer. Sway itself is a tiling window manager, which means it automatically places each new window in a grid on the screen, rather than as a floating window somewhere on the screen. This means you don't have to interrupt whatever you are doing in order to move that screen with your mouse to somewhere else. In fact, much of the rationale for using a tiling window manager in the first place is to minimize the mouse usage as much as possible. All operations in sway - moving windows, resizing them, launching and quitting applications can be done using keyboard shortcuts. This leads to a very uncluttered and minimal desktop where you only see what you want to see when you want to see it. The downside is that you need to invest some time in learning these shortcuts, but once you get used to this it has the potential of greatly increasing your productivity. If you are not careful it can also lead to a sense of smug superiority and an unwarranted feeling of belonging to hacker nobility.

Configure the Keyboard

The great thing about Ergodox is how easy it is to customize it to suit your own needs. In order to do so you need to create an account at the (ergodox configuration homepage)[]. The website is where you will do all your configuration in a graphical interface. It's all very intuitive: click on the default layout, click on the Modify Layout button, give it a name and start rearranging the keys to your heart's content. Once you are done, click on the Compile button, Download the newly compiled firmware to your hard drive and flash to the keyboard. In order to do the flashing, you need to use a piece of software called Wally. If you are using Arch Linux, you can simply fire up a terminal and run

yay -S zsa-wally 

This will install Wally and wally-cli, the terminal command equivalent. wally-cli is very easy to use. You simply pass the downloaded firmware file as its single argument and await instructions.

wally-cli ~/Downloads/ergodox_nameoflayout_somerandonumber.hex 

If all is well you will be asked to press the reset button, which in the default configuration is the uppermost right button on layer 2. Couldn't really get any easier.

Bells and Whistles

As the ergodox is so incredibly customizable it is easy to get carried away when you start setting it up. I found it best to start out with a layout that was as close as possible to the existing keyboard layout on my Thinkpad laptop. It is already quite a handful to get used to the position of the keys: where a traditional keyboard places its keys in diagonal lines, ergodox positions them directly above each other. This makes a lot of sense from an ergonomical point of view, but if you are used to diagonal placement it will take a while to get used to the more "correct" version. The same goes for the placement of the Tab, Enter and Backspace keys. In ergodox' default layout Enter and Tab are meant to be tapped by the right thumb, while the Space and Backspace keys are hit by the left thumb. I kept hitting Backspace accidentally in the beginning, and I needed that location for my left Alt key, so I moved Backspace over to the more secluded location where the Tab key usually sits on a traditional keyboard.


One feature I was salivating over was AutoShift: the option to completely ditch your shift key by pressing a key a bit longer instead of shift-pressing it.