A typing tutor for the visually impaired

I have just had a very interesting conversation with Kajarii where we discussed keyboards ergonomics, alternative keyboard layouts, and typing tutors.

Kajarii is blind and touch types on a QWERTY keyboard, having learned by trial and error from a young age. Kajarii would like to learn colemak keyboard layout, but made a really good point: how do you learn a new keyboard layout when you can’t even see what the layout should look like and you have no feedback from what you’ve typed?

Once i thought about it, i realised that every typing tutor i’ve ever seen has relied heavily on being able to see. You have to look at what you’re meant to type, there is usually some kind of layout diagram that highlights the key, and quite often the use of colour for feedback if you have typed correctly, and the cursor moves on to the next letter. They are no good at all for somebody without the privilege of sight.

I think i could quite easily teach a blind person to touch type if we sat down side by side. I’d start with the index fingers on the home row, tell them what the letters are, give instructions of short bursts of letters to type, and give verbal feedback on what they typed. Like most typing tutors do, i’d gradually introduce new letters and form words to type using the letters learned so far. I can see this working well with one-on-one human interaction.

So can that be translated to an accessible typing tutor program? I think it probably could be. I would like to try. What would it be like? A terminal based app? A web app? A native desktop app? Would it rely on screen reader technology, or use pre-recorded instructions? I need the input of visually impaired people to know what would be most useful.

Is there anyone out there who would like to help write an accessible typing tutor? Anybody who would like to help test one?

Could we do an open source effort? Something that is extensible to adding different keyboard layouts? There are accessible typing tutors and there are typing tutors that support colemak, but i don’t think there is an overlap.

Please leave a comment if you are interested in helping to create something, or have some ideas about how it could be.

I guess i will never understand just how privileged i am to be blessed with both sight and hearing, but i am interested to learn more about accessibility issues, and i at least *want* to care more about the kind of difficulties i hope i will never have to face.

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

How to learn Colemak

A few days ago Javier emailed me asking how to get started learning Colemak. I wrote quite a long reply (uncharacteristically long for me who likes short emails) and i thought it might be worth turning it into a blog post.

Let me assume that you’ve already made the decision to switch to Colemak. If you need convincing, may i refer you to my previous post: Colemak is easy to learn.

This is roughly how it worked for me. Feel free to try it out, let me know how it goes for you, tell me if i need to tweak anything.


Step 1: print out the keyboard layout. No really. Do this! You’ll thank me when your computer locks and you can’t figure out how to type your password!

If you’re on an Apple or TypeMatrix keyboard, you can use one of these that i made:

Colemak keyboard layout

TypeMatrix 2030 Colemak layout

You can also find some generic layout diagrams on colemak.com

You’ll be tempted to put stickers on your keyboard, or pop the keys off and remap them. Most people discourage this, as do i. The reason is, you’ll be tempted to look at your keyboard, which is counterproductive. You’re trying to train your fingers. So look at the diagram until your fingers know their way. Also, if you move keys around they won’t fit quite right, and the useful bumps for your index fingers will be moved.

Unless you have a TypeMatrix or another hardware keymapper, you’ll need to change some software settings. On Linux and OSX Lion this is easy as the layout comes built-in. On Windows and OSX Snow Leopard you need to install something. Follow instructions from the colemak.com download page

Day 1

Find a typing tutor that knows Colemak. On Linux i recommend ktouch, and on OSX i like aTypeTrainer4Mac. Other suggestions are on the colemak.com learn page.

This is aTypeTrainer4Mac. It’s puke green and Comic Sans, but it’s really clever at how it progresses you through the levels at a sensible pace. It also provides nice reports and charts showing your progress.

You’ll need to practise little and often for the next several weeks. Grab five minutes here and there, every chance you get. Consider screencasting yourself, as a way of recording your progress. If you know someone else who is learning, it can be good fun to practise together, taking turns. Don’t do too much at once: when you get tired and feel your mistakes increasing, it’s time for a rest.

Day 2

The nice thing about Colemak is that after the first day of training you should already know the home row, which can be up to 70% of what you’ll type! So get your print-out diagram, and have a go, whenever you need to type an email, or tweet, or whatever. Go very slowly! Focus on using the correct fingers. Try not to hunt and peck. If you make a mistake, delete the whole word and try again.

This will soon become unbearably frustrating, at which point, switch back to your familiar keyboard layout. When you feel ready for another try, take a deep breath, and get your brain into that hyper concentrated mode where you focus really carefully, thinking about every letter before you type it.

For some reason, i found it helped if somebody dictated an email to me, and i typed it. Perhaps because then all i had to think about was typing.

This will keep you going for the next few weeks, along with your training which you should still be doing every moment you get.

Week 2

As you enter your second week you’ll probably be gaining a little bit of confidence. It’s a good time to measure your progress. Sign up for an account at TypeRacer and either practise by yourself or even better, get some other people to race against. A good way is to select “Race your friends” and put the URL on twitter, inviting people to join in. I always like a couple of races, if i have time! :)

The more you type real text, you’ll start to feel new pathways forming in your brain and in your finger movements. It’s an amazing feeling; i’ve never felt neurons moving so tangibly as when i’m learning a new keyboard layout. Common letter patterns like “and”, “the”, “you”, and “ing” become familiar and you start to think of them as a single unit rather than individual letters. It’s as if you give your fingers the “ing” command and they do it!

Week 4

At some point, maybe in your third, fourth or fifth week, you’ll be typing Colemak more and more, and feeling less of a need to revert back to your old keyboard layout. In fact, you’ll probably feel yourself forgetting it altogether. This is the pivot point. There’s no going back now. So this is the moment to switch full time over to Colemak.

You’ll still be slow, or at least you’ll think you are slow. In fact, by now you’ll probably be around 40 words per minute, which is about the average speed for someone who never makes a conscious effort to learn how to type well. Remind yourself that you’re getting better all the time.

If you happen to use Vim, you may want to print out a Colemak Vim cheatsheet. I’ve done a standard layout and a TypeMatrix version:

vi / vim graphical cheat sheet - Colemak version

vi / vim graphical cheat sheet - Colemak TypeMatrix version

Keep up the practise with your typing tutor for as long as you feel the need. Now that you’re full-time Colemak, you’re getting a lot of real-world experience of course, but the tutor can help you to build up the speed.

Week 8

By now, your fingers and your brain should be really comfortable in Colemak. You’ll be able to type without really thinking hard about it. From now on, and for the rest of your life, it’s all about minimising mistakes and increasing accuracy and speed.

For typing, i really embrace the sentiment “Take your time and go fast”. TypeRacer tells you your accuracy as well as words per minute. I’ve found that every mistake costs me about 5 words per minute. Don’t rush, don’t try to go faster than you’re able. You will trip up. If you want to increase your words per minute, focus on minimising your mistakes per minute.

If you find yourself forming bad habits, correct them. For years i had a dreadful habit of only ever using the left shift key, no matter which letter i was typing. That habit gave me bad RSI in my left hand. The same thing goes for the Cmd+C / Cmd+V pattern on a mac. I frequently see people making painful contortions with their left hand. You have another Cmd key on the right! Use it!

Unfortunately, the mac keyboard doesn’t give you a Ctrl key on the right. TypeMatrix does, but it has no right Cmd key. Swings and roundabouts, hey!

Other thoughts

While you’re learning, you’ll probably want to put Colemak on your other devices, for additional practice. I believe iPhone and iPad have Colemak available since iOS 5 … can anyone confirm? It’s easy to get Colemak for Android, using AnySoftKeyboard or my preferred one: MultiLing Keyboard.

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

OS X: So you think you’re password protected?

To quote Bob Marshall: “Security is always relative, never absolute”

When i started contracting, i thought it would be a good idea to make my macbook require a password on booting up or waking up from screensaver. For weeks i’ve been using it fine coming out of screensaver, but today i rebooted. I couldn’t log in. I think it must be something to do with the colemak keyboard layout. I entered the correct password, in colemak and qwerty, but it was having none of it.

Slightly flustered i turned to my phone and searched for “forgot osx password”. Very quickly i found a few articles on how to restart, hold down Cmd + s to get into single user command line mode, and then mount the filesystem for reading and writing.

Without entering a password, you now have superuser access to the whole system. You can reset people’s passwords. You can view and modify files. You can wipe the whole computer if you want to.

All i’m saying is, if you think an account password will protect you, you’re wrong. It may act as a deterrent, but if someone really wants access to your mac, they coud get it in less than 5 minutes.

It’s not just macs either: How To Reset Admin/Root Password gives easy to follow instructions for FreeBSD, Linux, OS X, Solaris and Windows. Ironically, Windows is the hardest one to crack on this point!

It’s a bit of a wake-up call for me.

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!