5 Sep 2022

Why a new keyboard?

I’ve been experiencing some pain in my left wrist due to using a lot of modifiers (mainly CTRL, ESCAPE and SHIFT) when programming. I tried to solve this by remapping CAPS LOCK to CTRL and swapping SHIFT with ALT. It didn’t help and the RSI was getting worse. I took it seriously and decided to take more serious steps to alleviate the pain by switching to a more comfortable typing layout.

With some research, I came across the following things that could help me with improving my typing comfort:

And so I ended up doing all of the above. Here is what I’ve learnt so far.


After 3 weeks of learning Colemak (Mod-DH) I hit average typing speeds of about 75 wpm. It’s not quite the 100 wpm I comfortably hit on Qwerty, but it was enough to not get distracted or off put by my typing. There is still a lot of room for improvement, and given more time, I’m sure that my speeds will reach and even exceed my previous Qwerty speeds, but that is not the goal. I’ve noticed that typing is not only much more comfortable than on Qwerty, but also that my typing speed is much more consistent over time, as previously my typing speed would go down when typing for more than 5-10 seconds.

The only downside is that I kind of forgot QWERTY, meaning that I’m not able to use other computers without either plugging in my own custom keyboard or switching to a Colemak layout in settings. Well, I can, but I’m only around 50 wpm, and I need to look at the keyboard. Fortunately, relearning should be relatively easy, there are even some people who can switch between layouts mid typing. I can’t remember the last time I had to use someone else’s computer, especially post covid.

Would I rather have learnt a different layout? No. I think Colemak keeping the general order of ZXCV makes it easier to switch between it and Qwerty, suits me better than DVORAK and is generally a solid choice. Maybe some other layouts such as Workman, Hands Down, or some AI generated boy might give me slightly better typing speeds or even higher comfort. But I don’t have the time to give months to each layout, so I’m just sticking to this one, since it works well for me.

Home row mods

This section assumes you are already familiar with home row mods and associated terminology. If you’re not, you should read this amazing guide to find out how they work or what layers, combos, and one shot mods are.

Before I switched to a mechanical keyboard, I used Callum Oakley style mods since I could not bear the delay caused by hold-triggered mods. Smooth mechanical switches seem to mask the delay with their feedback.

I use combos (in grey) for keys that often get reused on many layers.

Default Layer

The default layer is a Colemak DH layout with hold-tap mods shifted one layer down to reduce the chances of accidental misfires. I use a one-shot shift to reduce chance of accidentally capitalizing the second letter. I ended up using a GASC layout so that I can still use CTRL shortcuts (C-z, C-x, C-c, C-v) with my left hand while using the touchpad with my right.

Num Layer

The number layer was inspired by the Jonas Hietala’s layout. I couldn’t get myself to enjoy using a normal order of numbers, since it seemed like I was most commonly using 0 and 1, which when ordered normally are on the weakest (pinky) fingers.

Fun Layer

There is not much to say about the function key layer, other than that it follows the same order as the number layer and is behind a one shot layer accessed from the number layer.

The number layer uses vim-like arrow layout, contains some extra controls such as brightness or volume. The left side is waiting for ZMK to add mouse cursor support, since I’d like to experiment with that to see if it will suit me.