June 4, 2017

1609 words 8 mins read

My keyboard layout migration experience, say hello to Colemak

For quite some time I’ve wanted to try a new keyboard layout, the first one I knew about was Dvorak, I was drawn by the idea that such a layout existed to optimize typing and after reading about the origins of the Qwerty layout I felt pretty uncomfortable that we used this layout only by historical reasons and not for better productivity.

I did tried to learn Dvorak a couple years back but it didn’t stick, why spend time learning a new layout that no one else uses?, what if I need to type in another machine?, being a software developer, how will this impact my productivity? These were questions that arise to my mind at the time, and in the end what I did instead was to learn proper touch typing in Qwerty.

And now two year-ish latter the same bug started to mess in my head, but this time backed with a mechanical keyboards community, and you know those communities right? Some people arguing about key switches for “real typist needs” or writing “scientific” backed arguments about optimal keyboard layouts, etc. there I was, down the rabbit hole.

In the excuse that right now I’m studying my master’s and no longer working for food, then why I shouldn’t go for it? I noticed that through the years I barely needed to type something in other computer besides mine, and if by profession I’m a software developer why don’t sharp my tools to fit my needs (as I do with my editor), wouldn’t a proper keyboard layout be a worth investment for a life time?

At this moment in the story I was thinking exactly what you’re probably thinking right now… “Forget about it, it’s just a keyboard layout! there’s more important things in life!" and that’s right, after reading some rants about Dvorak combined with the fact that I love to learn new things, I was all-in to learn Colemak through the span of my vacations (you can tell I like twist ending films).

Why Colemak?

For this post to make sense, you have to understand my context, I’m a person that embraces change, that likes to try new experiences and this was just another experiment for me. Think twice before you decide if Colemak or another layout is for you, be aware it my be difficult to go back, choose wisely. In my case some times after some serious coding sessions (I use the keyboard for everything) I could feel strain in my hands but I’m a person that put a lot of work in the fingers (I like to play piano, guitar and play with a Moyu 3x3 a lot.

About why I choose Colemak, I honestly was sold after reading the nice comments about it on reddit, other blog posts, and of course, the Colemak’s project web page written by developers and the idea that was optimized for fast typing and being easy to learn (due to not the whole keymap being rearranged). In the end a huge factor for me to try Colemak was the existence of Tarmak a series of layouts to ease the transition from Qwerty to Colemak. I did not went “cold turkey” (the most read expression in the keyboard layouts community), since I wanted to stay as an effective typist at all stages of the transition. That doesn’t mean that going all-in Colemak isn’t effective, perhaps you’ll learn it faster but it could also be more frustrating.

The transition

Back then in my Qwerty era, I was a 85-100 wpm typist, when aiming for speed I could get up to 100-120 wpm, I know this because just before the switch I performed various typing tests, I suggest you do the same so later you can see if the switch was worth it.

Tarmak consists of 5 levels and I stayed at each one of them for a couple days, at some of them I upgraded after reaching 50-60 wpm, other times I didn’t do it because wasn’t able to loose typing efficiency at that moment.

Tarmak level Average time spent
Tarmak 1 1 day
Tarmak 2 2 days
Tarmak 3 10 days
Tarmak 4 3 days
Tarmak 5 (Colemak) 3 days

This table reveals that the main challenge for me was the R, S, D change, I honestly think that I could’ve switched after 4 or 5 days but in this stage I was thinking to forget about Colemak and stay there or go back to Qwerty, going from a 100 wpm down to 30 wpm was somewhat difficult to accept, but like a trapped guy in a cave there’s no way out but going forward.

So in essence my switch took about 20 days, but I strongly believe this can be done in a week, if you take into account that I tend to be on the q2 of the learning speed distribution (if it were a normal distribution) or put bluntly, “a below the average learner”.

I want to point out the fact that I liked Tarmak 4 as a final layout, I was feeling uncomfortable with the new U and L position in Colemak, I think that would be better if U stayed where it was and only I and L switched places but in the end if I was going to stick with a custom layout it must be backed up by research and I didn’t want to give this transition more of my time. I think that an explanation of Colemak’s U and L placement is that the creator of this layout have a B type hand:

Figure 1: Hand types

Figure 1: Hand types

Personally myself have a type A hand, I think that if you too have this type of hand then you’ll understand my point, though is safe to say that after a while you get used to it. Perhaps some day I could design my own layout optimized by ML taking in to account hand proportions, language and most-typed words and symbols [1].

Tips for learning Colemak

At the time, the tips given by Ian Stewart in his post My Strategy for Learning Colemak were helpful, as he suggested I went and typed The 35 Greatest Speeches in History but instead of using MasterKey I used Key Hero.

Keybr also helped a lot, after all, was this tool in which I learned touch typing in the first place.

And recently this weekend I found Epistory a very well made videogame, I tried the demo and I liked it, I’m thinking to buy it once my Pok3r arrives. It has support for other layouts as well.

What I don’t like

There’s two well known facts, nothing is perfect and I’m a very hard person to please. So I can’t close this post before pointing out the things I didn’t like much about colemak.

Vim

I’m a Vim user and while it’s relatively easy to get used to the new letter positions there’s a thing that I just don’t like, and that is the half page down scroll command (C-d), probably my most used mapping. The feeling of stretching my hand is not very pleasing, this was exactly the reason why I never get used to scrolling with C-f, I’m only alleviating this because my Ctrl key is where the Caps lock key is. However I’m thinking to switch C-f to C-d since now f is closer 😏.

Also the Vim’s navigation keys (h, j, k, l) move to uncomfortable places, this can be seen as problem or as an advantage, I prefer the later; is a motivation to navigate more effectively in vim, in my case using Vim-sneak (and Evil-snipe while using Emacs).

I should say that I interchanged the j and k movement keys, they are necessary some times and just leave them untouched seemed worse that my suggested mappings:

" Movement mappings (colemak)
nmap j <Up>
nmap k <Down>
vmap j <Up>
vmap k <Down>

And in Emacs

;; Movement mappings (colemak)
(define-key evil-normal-state-map (kbd "k") 'evil-next-line)
(define-key evil-normal-state-map (kbd "j") 'evil-previous-line)
(define-key evil-visual-state-map (kbd "k") 'evil-next-line)
(define-key evil-visual-state-map (kbd "j") 'evil-previous-line)

Finally, my escape sequence was kj which now it couldn’t be more uncomfortable and slow to type, I tried to find a suitable combination in the home row but you are going to type them sooner or later since that’s what colemak solves (using the home row as much as possible). For quite some time I was happy with lh until I typed localhost I tried kk and uh, both seems to be typed faster and I can’t think of any words with this sequences , however due to my Ctrl key position (Caps lock) requires the same effort to type the integrated escape sequence Ctrl + [ and I’m getting used to it.

Conclusion

Making the switch to a new keyboard is not for everyone, if you are an effective typist deciding to switch will harm your productivity for quite some time and honestly how important is it for you to have a better layout than Qwerty? However I should say with no doubt, Colemak is by far a lot better compared to Qwerty, we will see if I could surpass my speed limit with Colemak.

Only time gives answer to the question we all ask, Will be worth it?.

Updates

[1] The other day I found a discussion of hacker news about keyboard layouts, after that it became clear that the perfect layout is a personal choice and a “one size fits all” solution in this regard doesn’t exist, personally I liked a lot the layout proposed by jboy, but of course I will not change my layout for quite some time now.