PHOBOSLAB

Blog Home

Colemak

Two years ago I asked myself if there isn't any better keyboard layout for programming than the German keyboard layout. Many keys that are essential for programmers, like curly braces and square brackets, are only reachable through extensive use of the ALT key on the German QWERTZ. This is hardly ideal and makes QWERTZ much less usable for programming than the English QWERTY.

I did consider switching to QWERTY for some time. Sure, I'd miss the German Umlauts (ä, ü, ö) but that was a sacrifice I was willing to make. I asked a German programming board how they are dealing with the cumbersome QWERTZ layout – many of them are using the English QWERTY layout as their default and are happy with it. They also mentioned Dvorak, which I largely ignored, as it seemed incredibly hard to learn and had no apparent benefit.

However, I stumbled over a new, totally different, keyboard layout that sounded promising. It's name: Colemak. Colemak is designed to be efficient and ergonomic. You can type whole sentences with it, without your hands ever leaving the home row. Yet, it is fairly easy to learn. The keys for the widely used shortcuts for undo cut, copy and paste all stay at the same place and the layout of all special characters is identical to the English QWERTY. Furthermore, I can type all the German language specific characters with Colemak and it also adds many special characters like the ellipses, en- and em dashes, typographic quotation marks and many, many more. These would otherwise only be reachable with complicated ALT combinations on Windows (e.g. ALT+0151 for the em dash).

I've been using Colemak for almost two years now, and I can't imagine switching back to QWERTZ. Typing with Colemak feels so much more fluent than it ever did with QWERTZ, especially when programming. I can now keep my 10 fingers on the keyboard at all times, as all the special characters are easy to reach. I don't mind the somewhat more complicated to type Umlauts since I don't write that much German anyway.

Another nice side effect of having Colemak installed on my Windows Desktop PC and my Macbook Air is that it flattens out the differences between their QWERTZ layouts – that's right, Windows and Mac OS have a slightly different Keyboard layout for the German language. Especially annoying is the different positioning of the curly braces, square brackets, the pipe and the at sign – characters you'll need frequently when programming. With Colemak the layout is exactly the same on all systems.

Of course, while the layout itself is close to perfect, switching to Colemak also has it's downsides. For one, if someone wants to use your PC/Mac she'd first have to switch back to QWERTZ or QWERTY. This is not a problem at all on Mac OS, where you can switch the layout with two clicks. On windows however, you can only switch the layout on a per application level, meaning that you'd have to switch the layout for each application that you want to use. Whoever had this idea at Microsoft needs to be slapped with a large trout.

I can still type on QWERTZ/QWERTY, albeit a bit slower than I used to. The one thing I'm incredibly lost at, is when I want to type program code on a friends MacBook since I never learned the Mac OS specific QWERTZ layout. However, this is a problem I'd also have if I'd still use the Windows specific QWERTZ.

If you're already using the English QWERTY layout, there's probably not that much benefit in switching to Colemak. QWERTY is already nice enough for programming and the layout is identical on Mac and PC. For everyone else who is programing a lot on the German, French, Czech or Swedish layout, Colemak sure is a very nice alternative.

Friday, July 24th 2009
— Dominic Szablewski, @phoboslab

4 Comments:

#1zerm – Monday, January 4th 2010, 18:04

I am German as well but am using US English keyboard layout for the reasons you've already mentioned. I am very happy with it and on the Mac you have the luxury of alt-u to get the umlauts, that is: for ä (a-umlaut), press "alt-u" and then "a" (same goes for the others, obviously. Even ë and ï). Sharp-S (SZ) is alt-s which is also quite convenient and does not require your fingers to move very far.

On Windows, i mostly just code, so i hardly need any umlauts. However, for writing E-Mails (or longer texts) in German, i can quickly switch to German layout using alt-shift (however, Z/Y is quite annoying..).

#2 – Piotr – Monday, March 22nd 2010, 23:07

"On windows however, you can only switch the layout on a per application level, meaning that you'd have to switch the layout for each application that you want to use."
- Not so. Once any extra keyboard is installed in the Control Panel, switching between them is done by default by pressing Alt-Shift together, or you may choose your own shortcut while defining the keyboards. I routinely use two: Polish and Russian. I don't need the English because it is a subset of the Polish (i.e., Polish minus the special characters). Sometimes Russiфт лшслы шт - sorry Russian kicks in if I press those keys by mistake.
However, once I've got your attention, would anyone please let me know how to disable the CapsLock key without physically prying it out of the keyboard? I always used a screwdriver for this purpose, but now I've got a beautiful back-lit kbrd and I would prefer not to vandalize it - but it takes too much time to fix all the accidental ALL CAPS. I'll appreciate an email to graff@sover.net.

#3 – Basti – Monday, December 5th 2011, 13:32

Just switch Caps to Control, then you have an ergonomic position used for something useful. The old sun keyboards had that and it is perfect for 10-finger-typing...

Google caps2control

#4 – Zack – Thursday, November 1st 2012, 22:15

If you've gotten good at Colemak, you should give CHORDMAK a try!
forum.colemak.com/viewtopic.php?id=1538