Way back in mid-late May, I switched keyboard layouts from standard US QWERTY to Colemak. I'd played around with the layout a bit before that and thought it seemed pretty solid, but it hadn't been a good time to switch then. (I did, however, snag the idea of remapping Caps Lock to Backspace from that early trial though, and to this day that's probably the most annoying thing about typing on QWERTY, because I associate Caps Lock with Backspace on both layouts now. Anyway.) This time, however, I strategically timed it to coincide with the end of classes, so I had no assignments due and could make a fool out of myself during the first few days of my summer job. Smashing success.
It only took a couple days to get past the point of extremely frustrating slowness. Two weeks in I was up to 40wpm, which was about the point where I stopped noticing that I'd taken a backwards step in typing speed, as it didn't really hinder anything I did on a regular basis. By the end of the summer I was back up to the same speed as I'd been prior to switching (around 75wpm). I didn't really do any typing lessons after the first few days, as I found just doing whatever I would normally do on a computer much more interesting.
The biggest hurdle after the initial adaptation of actually being able to type on the layout was, for a command-line lover like myself, dealing with "hjkl" not being a convenient way of navigating around in console apps like mutt, vim, aptitude, and less. After a bit of experimentation, I stole an idea from this page and started adapting my dotfiles to make these programs use ne for jk and st for hl, and that seems to be working out well. The worst key that this clobbers in general is n, but it's pretty easy to remap that to QWERTY's n, which is easy to remember and is the hardly-used k on the Colemak layout.
For any interested others, I've thrown the relevant dotfile snippets up here. I'd been putting off blogging this because I wanted to finish setting up dotfiles/homedirs-in-git à la Joey Hess beforehand, but I figure I'll never actually get it done if I keep using that excuse. For mutt, the given snippet goes in your .muttrc (or whatever you source keybindings into your muttrc from). The same goes for vim. Aptitude keybindings go in .aptitude/config. For less, it's a little more arcane: first you stick your keybindings in .lesskey, and then you run the command lesskey. I also remapped screen's escape key to ctrl-t.
Why not Dvorak?
Dvorak seems to be the most well-known QWERTY alternative around, so why didn't I switch to that if I wanted something better? I did try Dvorak first, but the incredibly uncomfortable combination of ls on the right pinky was a complete deal-breaker. I also found it very slow-going to try to adapt to Dvorak after typing on QWERTY for years. The Colemak FAQ has some more notes on Dvorak deficiencies that it addresses.
Overall, I've found typing on Colemak to be remarkably lacking in anything that particularly bothers me. I still type on QWERTY a little, but mostly just for login prompts on Athena workstations and the desktop machine in my room which my roommate sometimes uses. I have to glance down at the keyboard when typing on QWERTY to get it back in my head, but generally I only need it for a few minutes anyway and it's no big deal. As long as I glance down occasionally I can still maintain a speed level well above that of frustration. On the plus side, this means that if I look at the keyboard when typing normally in Colemak, I get screwed up because I start thinking in QWERTY. So it's good touch-typing reinforcement in general.
Colemak for a year and a half. I've got two friends converted so far, and have hit 111 words per minute and sustained 80. I've never really touch typed in qwerty in my life.
I'm going to give my persuasive speech in my public speaking class on colemak in a few weeks also
Sam: whoops, fixed that now.
Aaron: yeah, I hear you. Hopefully time will fix that.
ethana2: cool!
Congratulations, you've got me switching to Colemak now. (I am typing this comment very slowly )
How do you make Athena use Colemak, or use it as default? I looked at what IST said about the various dotfiles, but nothing looked relevant (to my untrained eye).
As an alternative layout user, I can relate to the pain of relearning vim commands and others. They become a different kind of muscle memory from the normal typing of letters in words, which is kind of weird.
However, I have to say that I've found it worthwhile to relearn the command locations in vim, primarily because I have shared dotfiles between machines and don't want to have to figure out how to make vim and other apps conditionally change layout based on the machine's layout (QWERTY vs alternative). I just learn to use the right command keys depending on which layout the computer is in.
I'm an admirer of Colemak but not a user. After learning carpalx's fully-optimized layout, then giving Colemak a try, I was frustrated by the learning curve. I designed my own alternative keyboard layout called Minimak that minimizes the learning curve while maximizing the benefit. It's not as efficient as Colemak, but it's close and far easier to learn.
If you already know Colemak, Minimak won't do you any better, but if you're just learning, it's worth considering.