Colemak roundup

I have written a few times about colemak keyboard layout, its benefits, how i switched, and advice for other people wishing to make the switch. This is not going to add anything new; i just want a place i can point people to, and they can find all the information.

When i add new colemak-related posts in the future, i’ll also add them here, use it like an index.

Ask aimee: When/why did you decide to switch to Colemak?
Includes the history of QWERTY, Dvorak and Colemak, and my own personal typing journey so far.

Colemak is easy to learn
An encouragement to newcomers that Colemak is not so different from QWERTY. Also highlights the advantages of Colemak as compared to Dvorak.

How to learn Colemak
If you’ve made the decision to switch, here are my tips for how you might go about it.

Colemak and vim: “But what about h/j/k/l?”
For vim users, a common question is how you deal with the direction keys when switching to Colemak. Here is my answer.

QIDO for Colemak please!
A campaign to get a Colemak version of the QWERTY-In-Dvorak-Out USB keyboard adapter.

I love to help people make the switch to Colemak. So if i can encourage you, talk to me on twitter! @sermoa

Colemak is easy to learn!

If you touch-type QWERTY you already half-know Colemak.

Many of the keys stay the same, which means many of your shortcuts remain the same. On a Mac, these shortcuts are Undo, Cut, Copy, Paste, Bold, Minimize, Hide, Quit and Close.

The keys that do move don’t go far, usually one or two keys away. Mostly we’re trying to get the common letters on to the home row and move the uncommon ones away. Many keys that move stay on the same finger, or at least in the same hand. Only E and P swap hands. In Dvorak, 22 keys swap hands.

The punctuation keys don’t move, except for the colon/semicolon (no way that gets to stay on the home row!) In the Dvorak layout, all of these punctuation characters move: fullstop, comma, question mark, single quote, double quotes, square brackets, curly braces, angle brackets, dash, underscore, plus and equals. It’s a nightmare for programmers!

If you were to scratch off the keys that have moved, look how many you’d have to remove for Colemak compared to Dvorak:

Learning Colemak vs Dvorak keyboard layout

As if you didn’t know, QWERTY is inefficient. Dvorak is a lot better, but Colemak is by far the best. To prove this point, here is the heat map of typing this very blog post on QWERTY, Dvorak and Colemak:

Why Colemak is best

Row usage compared between QWERTY, Dvorak and Colemak

There are other reasons here to explain why Colemak is easy to learn.

With the holidays coming up, do your future self a favour and learn Colemak!

Update: so you’ve decided you want to learn Colemak and want to know how to go about it? AWESOME! I have just the post for you: How to learn Colemak.

Colemak and vim: “But what about h/j/k/l?”

I have my phone set to alert me when anyone mentions Colemak on twitter. It’s a fun one to follow, you get new people trying out Colemak at least once a week, and i love to encourage people.

One thing i see a lot is programmers talking about vim, and asking what you do about the h/j/k/l keys. Do you remap them or relearn them?

There is at least one person who has made a colemak-vim remapping plugin (see this discussion in the Colemak forum), but i can’t imagine it working well. If you try to put h/j/k/l back where you’re used to them then you have to find new homes for n, e and i. (h actually stays in the same place) As you may well know, if you’re reading this, n is next search match, e is end of word, and i gets you to insert mode.

So if you move those keys, where would you put them? Almost every letter in vim has some sort of significance, and many of them are chosen for the action they stand for, which is part of the power of vim.

My answer is to relearn them. Maybe it’s easy for me because i was on Dvorak when i learned vim, so i was never attached to the position of h/j/k/l in the first place. Curiously enough, in Colemak h/j/k/l all end up on the same finger: the index finger of the right hand. Some people complain that j and k feel upside down, and they do at first, but then you realise that Apple is busy rewiring our brains with “natural scrolling” (which i think is just awesome, by the way) and before you know it, Colemak and vim feel perfectly wonderful together!

So my advice: print out one of these Colemak/vim cheat sheets and just get used to it!

vi / vim graphical cheat sheet - Colemak version

Look! i’ve even done a typematrix version for all you Colemak people who pair program and need a keyboard with a hard wired Colemak switch!

vi / vim graphical cheat sheet - Colemak TypeMatrix version

Of course, the other great thing to note about Colemak is one of its big advantages over Dvorak: that punctuation characters remain in their QWERTY positions. Which is very useful for vim users! :)

QIDO for Colemak please!

As most of my followers are probably well aware, i’m a bit of a nerd on the matter of keyboard ergonomics and keyboard layouts.

For any Dvorak typists, the QIDO (QWERTY In, Dvorak Out) is a very useful device that converts any USB keyboard into a Dvorak one. It is a spin-off product of KeyGhost, a hardware keylogger, but in this case put to a completely different use.

They QIDO plugs between the keyboard cable and the USB port on the computer, and it translates all keyboard input signals into the Dvorak letters. Reminds me somehow of a Babel fish! :) Having a QIDO means you don’t have to switch keyboard input at the operating system, especially useful if you’re pair programming with someone who types on QWERTY.

A few months ago i wrote to KeyGhost, the makers of the QIDO, to ask for a Colemak version (or even better, a programmable version) of the QIDO. Theo Kerdemelidis gave this reply:

We have had a few requests for Colemak support, so we will look into it as soon as we have a chance.

I know they also sent the same response to someone else who asked for a Colemak QIDO at the same time. As far as i’m aware they are still sending out the same reply to people who ask.

So i have a task for you! If you could use a Colemak QIDO (or QICO as they might call it!) please email helpdesk@keyghost.com to let them know your interest. If you get any reply, please let me know here.

Dvorak might be more popular at the moment, but that’s only because it’s been around for a lot longer than Colemak. We know that Colemak has the edge, and it’s getting more popular all the time. Let’s give KeyGhost all the encouragement we can to get a Colemak version of the QIDO made soon! :)

Ask aimee: When/why did you decide to switch to Colemak?

Here is the start of a new series of questions that i get asked on twitter but the answer is too long for a tweet. It’s egocentrically called: “Ask aimee” :)

Ash Moran asks:

@sermoa When/why did you decide switch to Colemak?

To understand the context of this tweet, you need to know that Colemak is a keyboard layout, an alternative to QWERTY which is what most of the English speaking world uses to type.

A history lesson

QWERTY first appeared in about 1873, the result of several years’ work by inventor Christopher Sholes. QWERTY was designed for typewriters. The letters of word ‘typewriter’ are all in the top row. QWERTY separates common letters to reduce key jamming. Interestingly, this separation of common letters also makes it good for small touch screen devices with intelligent word guessing, so it’s not all bad!

Dvorak was designed in 1932 by Professor August Dvorak. Its intention was to improve the comfort of typing through several methods, notably by putting the most common letters on the home row and alternating hands as much as possible (all the vowels are in the left hand).

Colemak was released in 2006 and is the work of Shai Coleman. Colemak was designed with the aid of sophisticated computer software to work out the optimal position of the keys. It also minimises the moving of keys away from QWERTY, making it easier to switch. Actually, only 17 keys are different, and most of those are either in the same hand or on the same finger. Z, X, C and V all remain, as do all of the punctuation characters, which is a major win over Dvorak.

My own history of keyboard layouts

I used to be reasonably fast on QWERTY. I’m a pianist, which i think helps a bit. I reckon i was probably about 70wpm (words per minute) on QWERTY, which is not too bad.

I switched to Dvorak in 2002. Colemak had not even been invented yet! I switched because a friend did. Some nerdy part of me thought it looked like fun, and i always enjoy a challenge! I spend a significant portion of my life typing, so anything that makes it easier or more comfortable is good for me! At my peak i got to 110wpm with Dvorak.

I think i heard about Colemak in 2009. I actually started to learn it back then, but i didn’t stick with it. The primary reason for that is the company i was working for started to favour pair programming at about the same time. Switching keyboard layouts on the OS is not a lot of fun. I had a TypeMatrix keyboard which can send Dvorak keystrokes from the hardware level, so with two programmers and two keyboards there isn’t a problem.

By then i already suspected that Colemak was a superior layout, and although i continued with Dvorak, i recommended Colemak to anyone who asked!

If only i had known then that the TypeMatrix could also support Colemak layout! For some reason they don’t publicise it, but you can get Colemak layout simply by pressing Fn+F5.

Switching to Colemak

I switched to Colemak in February 2011, after Tom Brand discovered the TypeMatrix supports it. Again, i was influenced to learn it because Tom was learning and i felt i would get left behind! But it was this keyboard layout analyzer that convinced me for sure. I pasted in some code, some emails i’d written, and some tweets, and in every case not only was Colemak superior to Dvorak, but it was also pretty close to the optimal layout if i had a custom keyboard designed just for me. That was my compelling reason to switch.

It has now been 5 months and i’m up to about 80wpm on Colemak. I want to get faster, i want to make fewer mistakes, but i am extremely happy with my decision to switch. Right from the first month i could feel that Colemak was more comfortable. I felt totally grounded in the home row. All my punctuation keys were back where they should be. I noticed faults in the Dvorak layout that i’d never noticed before.

I am now loudly and proudly #teamcolemak :D

News from TypeMatrix

I’ve just had an email reply from TypeMatrix. Two things really excite me:

1. They are intending to get Colemak skins printed very soon, and when they do they’ll be advertising it on their site.

2. They are trying to get their keyboards into schools to get them in front of children from an early age. The intention being that they’ll give kids the skins and let them choose between Qwerty, Colemak or Dvorak as they wish.

What a fantastic idea! If anyone has any ideas for participating in the experiment, i suggest you contact TypeMatrix!

Colemak keyboard layout

At eden lately there has been a surge of interest in the Colemak keyboard layout and TypeMatrix keyboards.

Colemak is an alternative keyboard layout to Qwerty, which as legend has it put the keys in a non-optimal position to slow people down on old typewriters in order to reduce jamming.

The diagonal arrangement of keys on most keyboards also harks back to the typewriter era. TypeMatrix avoids this historical baggage by arranging the keys in columns, and providing a hardware switch to both Colemak and Dvorak layouts.

TypeMatrix 2030 Colemak layout

My typing history

I switched to Dvorak almost ten years ago because i wanted a keyboard layout which was designed to be more efficient and comfortable to use than Qwerty. I became pretty fast on Dvorak: my typeracer average score was 97 words per minute.

For a few years i have suspected that Colemak is even better than Dvorak, and i would have switched sooner had i known that my TypeMatrix keyboard supports Colemak. You see, for pair programming, it’s really useful to have a keyboard with your chosen keyboard layout built in, otherwise you have to constantly change the settings on the operating system.

At the end of January, Tom Brand found out that TypeMatrix also enables Colemak. For some reason, they don’t advertise this fact anywhere! For the record, you press Fn+F5 and hey presto you’re in Colemak mode!

The deciding factor for me was this keyboard layout analyzer which allows you to type in your own text and see all sorts of statistics for different layouts. I tried it out with emails i have written, code samples and tweets, and in every case Colemak was significantly better for me than Dvorak (and of course, far better than Qwerty).

Learning Colemak

 #colemak typing practice at lunchtime with @tom_b025 on our ... on Twitpic

So at the beginning of February i started learning Colemak. I have been using aTypeTrainer4Mac which has a horrible user interface, but actually works really well in encouraging you with your progress, moving up through the levels at an appropriate pace.

In the middle of February i had a holiday during which i did a lot of Colemak practice, and used Colemak almost exclusively, so that when i came back to eden i was ready to pair program with Colemak.

I am still quite slow going, and have to apologise for all my mistakes, but for the last two weeks i have been getting better all the time. It is starting to come more naturally to me now, patterns are getting stored in my brain, and it feels really comfortable.

Colemak compared to Dvorak

 my lovely new "colemak" keyboard skin! thanks to @... on Twitpic

Only now that i’ve switched to Colemak can i realise the flaws of Dvorak. The L was a strain, and i did not like the second finger stretches to Y and F. It turns out the G and J are much more sensible characters to put there.

It’s great to have the X, C and V back to where they were on Qwerty, as well as the comma and full stop, and all the symbol characters. Not that i need to look anyway: my new TypeMatrix skin has none of those keys marked!

My best typeracer Colemak speed so far has been 44 words per minute. Not a patch on my previous Dvorak speed, but i will keep practising and hope one day to break 100 words per minute.

On teaching kids Colemak

I was recently asked whether Colemak/TypeMatrix would be good for school children to learn. Whilst i hate to think that the baggage of the past continues to be passed on to another generation, the truth is that we still live in a Qwerty world.

TypeMatrix keyboards are expensive, and Colemak isn’t easily available on all computers (unlike Dvorak). TypeMatrix does not yet make a Colemak skin, and the skins they do make look cluttered because of the overlap with the function keys. I enormously prefer the blank layout, but i can’t imagine many kids getting on too well with that!

I don’t know what the answer is just yet. I’d like to see more people realise the benefits of Colemak as a superior keyboard layout and make the switch. I would also like to see more Colemak keyboards made that don’t require downloading any software or switching any settings.

Maybe as a society we can begin to wean ourselves off the hangups of obsolete 19th century typing equipment and get used to a 21st century solution!

What’s going on in aimee’s life?

I’m back! I have been away from the Internet for a week – a self-enforced leave of absence to try to avoid getting RSI. Happily to say, it seems to have worked – just typing as much as i need to at work, and having a rest in the evenings. I love programming and i love my job, so i really don’t want to injure myself.

I have been trying out another keyboard layout: Colemak. It has similar aims to Dvorak but, unlike Dvorak, they actually used a computer to help generate the layout! Also, unlike Dvorak, Colemak layout is fairly similar to Qwerty, possibly making it easier for Qwerty users to switch. It keeps Z, X, C and V in the same place, useful for the obvious keyboard shortcuts.

colemak.com – the website for the layout.
Colemak on a TypeMatrix EZ-Reach keyboard – made for my own reference, but i imagine others may come looking for it too. If you want it as a PDF, let me know.

Work has been fun lately – we’ve been trying out pair programming and i’m really enjoying it. I took a while to believe that it really is beneficial for two people to program together, but i’m coming round to the idea now. Especially when trouble-shooting – there is almost no break in the flow because the combination of two brains focussed on a problem means that we come up with the solution pretty quickly. Plus it’s also really good fun! :D I think the key is to have a separate pairing station set up with two keyboards and two mice plugged in. That gives a feeling of equality. With a little perseverance it soon starts to feel very natural to program together.

Social life has been fun too. The Spring weather is making me very happy. Church has been great, really enjoying it. In my week-of-no-internet i became totally hooked on Life On Mars – can’t wait to see the second series!

I leave you with something that i saw in a bookshop in Southampton yesterday – made me LOL ;-)

LOL

On learning Vim

I’m sure Vim is going to be a wonderful thing for me to have learnt – a skill that will stay with me and benefit me for the rest of my life. It’s just getting there that’s so hard!

I started using Vim in earnest this week. On Monday i used Vim in the morning, and switched to TextMate when i got too frustrated. Tuesday was periodic switching between the two. TextMate when Vim got on my nerves, and back to Vim when i found myself missing Vim features. Yesterday and today i have been entirely on Vim.

Yesterday was great – i really felt i was getting somewhere, and gaining speed. It started to be less about me getting around Vim, and more about me doing my work. Today has been a bit more frustrating, as i know it is slowing me down significantly in the short-term, but i’m sure it will be worth it!

I keep finding myself smiling at Vim when i have elegantly told it to do something quite complex. It’s like “Wow, Vim, you’re so clever!” Selecting a block of text and duplicating it, going five words in and changing the text to the end of the quote marks: vapyP5wct" – said as “visual a paragraph, yank, Paste above, 5 words, change till quote marks.

It’s so cool to have Git integration right within Vim, and now that i’ve got the hang of the NERD Tree, and manipulating windows and buffers, i’m coming along a treat! I’ve discovered i have quite a strong perception of the layout of a project – without a project drawer i just couldn’t think what to do or where to find anything! I’ve also decided i really like side-by-side windows so that i can see code and spec at the same time. I’ll do a screenshot when i’m on my big computer.

The biggest problem in fact is not the super-amazing-cleverness of Vim and its plugins. I’m getting the hang of them pretty fast. The hardest thing is just learning the basic commands – like – moving around! I still get j and k mixed up, and it requires so much brain energy to remember whether i want to type a or i, o or capital O … even to remember to press <Esc> to come out of insert mode. Invariably i get it wrong and have to undo all the time. Either that or i’m undoing when i don’t want to, because i think u is for up. Fortuately i discovered on a Dvorak keyboard, k is underneath u so that sort of reminds me that k is up.

I just hope it is not my dyslexia making it hard to learn the basic movements. Most of Vim makes a lot of sense to me. I like that it uses mnemonics and mostly pressing one key at a time. I love how you can combine keystrokes in sequences to achieve really powerful effects. I hear that when you get really good at Vim you’re not even aware of exactly which keys you’re pressing. You just think about what you want to do, and your fingers do it automatically. I’m sure i can get to that level of proficiency … it’s just a case of being patient with myself whilst i’m still learning.

It was like this when i was learning Dvorak, but i’m glad i did, and my fingers do just type without my having to think about where the letters are. I type at around 80 words per minute, which is pretty nice, so i’m sure with the power of Vim, i could be truly awesome!

Loving the vimtutor

A couple of times recently i’ve found myself doing <ESC>:wq in the internet instead of pressing the submit button. I don’t use Vim very much at the moment – really only to make Git commits – but i’ve had enough of a taste that i feel it’s something i want to learn properly.

For a few months i’ve been searching for a text editor that i can use both on the Mac at work, and Linux on my netbook and PC at home. TextMate is a wonderful thing, but there is no decent Linux equivalent. A colleague and i started writing OpenMate – an open source cross platform equivalent to TextMate … but it’s hard! I enjoy gedit but failed to get gedit installed at work. I’ve tried NetBeans and jEdit but didn’t like them much, and they feel too big and clunky for a netbook.

After a little bit of reading about Vim i have become very excited. More excited that i’ve ever felt about a text editor before! I’ve realised that my conception of Vim has been wrong. I used to press i straight away to get into Insert mode, and stay there until i wanted to perform a command, in which case i’d press <ESC> followed by the command. Now i realise that a better way to use it is to be in ‘Normal’ mode most of the time, press i to enter Insert mode very briefly, and press <ESC> as soon as i’ve finished inserting.

This afternoon i discovered vimtutor and have been really enjoying it! You can run it on any Unix/Linux based system; just type vimtutor at the command line. It takes you through every command, at your own pace. It gives you samples of text to correct, using the commands you have just learnt. It’s actually quite fun and demonstrates the power of Vim very effectively!

At the moment i’m still muttering everything as i go, like “delete … 3 … words” as i very slowly type d3w and i’m exclaiming in delight at almost everything i learn – like – “Wow! That’s so clever!” I’m sure soon enough i’ll be able to use it effectively without making a lot of noise about it!

It is interesting learning it for Dvorak, but not too difficult. The up and down keys are in my left hand, and the left and right keys are in my right hand. They all actually fit rather neatly under my hands and feel intuitive even though they are not all in a line together. To be honest, i think i probably prefer it to the way it works under Qwerty.

Here is a helpful Vim cheatsheet laid out for Dvorak. Thanks, Mark Schoonover!
Here is an excellent article about the wonders of Vi/Vim.

It’s ridiculous how exciting this feels to me! Perhaps it’s the sense of moving up another level in the geek hierarchy! :D