Should You Switch to Colemak?

Janne Kemppainen |

You may have been pondering with the idea of switching away from QWERTY to a superior keyboard layout such as Colemak or Dvorak. But is it worth the trouble, especially if you’re a programmer?

This is all really subjective, but after a year of using Colemak I’m happy that I learned it. It hasn’t made me a faster typist, and I’m still probably slower than I was with Qwerty. But the important thing to me is that I’m quick enough, and the typing feels a lot more effortless.

There is some science around the optional placement of the keys, and Colemak is one of the better options. The traditional Qwerty layout puts many rarely used keys in the best positions so your fingers have to move a lot, which is wasteful. Colemak places those keys right under your fingertips so that strain and hand movement is minimized.

At the same time it retains many of the original keys from Qwerty as you only need to learn 17 new key positions. The biggest benefit comes from the fact that the bottom row stays almost identical, so the common OS shortcuts such as Ctrl-C and Ctrl-V still work as before. With Dvorak, another popular layout, these keys also change.

If you dig deeper into the theory you’ll also find out that Colemak balances hand usage so that both hands are utilized roughly equally, and sequences where you need to type lots of letters with the same finger are not as frequent. This is why I described typing with Colemak effortless.

Is it difficult to learn?

Now, even though the Colemak website tells you how easy it is to learn, it will require some serious effort on your part. While many keys keep their original positions there are still enough changes to make you struggle at first.

Again, compared to Dvorak, it’s still probably easier since there aren’t as many changes.

There are basically two (or three) ways you can approach this.

The first way is to go cold turkey and just switch to the new layout. Do typing exercises to learn the new key positions, and keep practicing for some time. You can still switch to Qwerty when absolutely needed, but try to use the new layout as much as possible when you have a basic grasp of where the keys are located. This will severely slow you down for some time and increase the amount of errors you make, so be prepared for that.

If you’re not ready to take a speed hit at work, you can practice the new layout at night.

The other option is to progress through the Tarmak layouts that incrementally move towards Colemak by changing only a few keys at a time. After you’ve learned one transitional layout you move on to the next while being able to maintain most of your speed and accuracy.

When I learned the Colemak layout I started with some online exercises, and when I felt that I sort of knew where everything was I started using it at work. I also bought new DSA keycaps for my keyboard since the keys themselves are all identical and can therefore be placed in any order.

I’m a programmer and I have to say that the transition was exhausting at first. It didn’t help that at the same time I was switching from a Finnish keyboard layout to an English one, so even the special characters were in completely different positions! Writing code suddenly seemed to require twice the brain power. Sometimes I just had to switch back for a while.

I realized that I needed more practice so I did more online exercises and gradually learned more keys.

After a month or so of off and on usage it started to get better, and when I did those online tests again I noticed some serious improvement. I still wasn’t very fast but at least it was enough for coding (it’s mostly just looking at code anyway).

Writing blog posts was also a great way to strengthen the new skills because synthetic typing exercises can get dull after a certain point.

It took maybe three months until I started to feel somewhat comfortable with the layout. Now, about a year later I’m happy that I made the switch.

How to actually get started?

To learn the new layout you don’t actually need to change your keyboard settings. Online practice services can emulate the layout for you automatically by translating each key to the correct one.

I used which is a free service where you can learn touch typing on different layouts, including Colemak. It introduces new letters one by one as soon it thinks that you’ve learned the previous ones well enough. You can gradually practice your way through the transition until you’re ready to make the switch.

When it comes to actually switching the keyboard layout on your computer the procedure depends on your operating system. On a Mac it’s as easy as going to System Preferences -> Keyboard and selecting “Colemak” as the input source. You can keep multiple layouts and switch between them from the top bar. Similarly most Linux distributions already come with Colemak by default, so it’s just a matter of configuration.

Windows doesn’t come with a built-in Colemak layout so you must use the installer that you can download from their website. After unzipping the file you just run the setup.exe and you’re good to go. You can also take a look at my other blog post to change the layout switch shortcut.

Pay attention to your keyboard

The keyboard layout is only one part of the equation. Especially if you’re suffering from pain after typing for a while you should really start looking for a keyboard with good ergonomics.

I am using a custom built ErgoDone split keyboard as my main keyboard, but still keep my trusty old Ducky Shine II around for when I need to type in Finnish, for example. The ErgoDone is a clone of the ErgoDox keyboard that you can build yourself, or you can buy it pre-built. FlabaTech is also a great place to buy a custom keyboard, I bought my bamboo case from them but they can also assemble a full keyboard with the parts that you choose.

Custom ErgoDone split ergonomic keyboard

If you carefully inspect your keyboard you’ll notice that the keys are not aligned, but the rows start from different positions. Many custom keyboards, such as the ErgoDone, are ortholinear. This means that the keys are aligned on the same “column”. The rows can be bent a little to match the different finger lengths, as you can see from the image above.

It is actually quite easy to get used to an ortholinear layout, especially when you have a split keyboard.

But I use Vim, is Colemak good for me?

I’ve been using Vim for years now, and even used Vim keybindings for Firefox for a long time. After switching to Colemak I was a bit torn about what to do. Should I remap the keys, or should I just use it as is?

I chose to go with the first option. The main inconvenience is that the hjkl keys are now all operated with the right index finger which makes using these movements a bit clumsy. Luckily my keyboard has had the arrow keys in a handy position just below the thumbs so this hasn’t been a huge issue. On the other hand I’ve come to rely a lot more on the other movements, such as b and w, so it’s not only a bad thing.

I would say that it still loses some part of the Vim experience. That’s why I also just stopped using the browser plugins.

Recently, I discovered the Colemak-Vim plugin for Visual Studio Code which makes small adjustments to the key bindings. Now the basic navigation keys are hnei, and the end of word becomes j, next search is k, and insert mode is enabled with l.

These changes are easy to remember, but it does lose some of the meaning behind the Vim key bindings where i stands for insert, for example. The other issue is that if you use Vim on a remote server shell you usually have to use the original bindings again. It can get a bit confusing.

Going forward I’m planning to use this plugin extensively, and maybe I’ll even consider configuring one of the browser plugins again.


So the TL;DR of this post is basically that if you are willing to put in the effort then it makes sense to learn Colemak.

I hope that you’ve enjoyed the post! To stay up to date with the blog follow me on Twitter, grab the RSS feed and subscribe to the newsletter. See you next time!

Discuss on Twitter

Subscribe to my newsletter

What’s new with PäksTech? Subscribe to receive occasional emails where I will sum up stuff that has happened at the blog and what may be coming next.

powered by TinyLetter | Privacy Policy