Hacker News new | past | comments | ask | show | jobs | submit login
Workman Keyboard layout (viralintrospection.wordpress.com)
103 points by b01t on June 11, 2016 | hide | past | favorite | 125 comments

20 years ago or so, I ran an evolutionary algorithm that permuted keys in a layout, evaluated them against a corpus of English texts from Project Gutenberg and the Linux kernel sources, and a home-grown cost function that penalized finger motion and especially double-hits by the same finger. The best layouts all had the property that the vowels were on the home row under the left hand, and the common consonants were on the home row under the right hand. That's basically Dvorak, and I considered the experiment as being kind of a confirmation of that design's principles. And so I stuck with Dvorak, since it's available everywhere.

Hey, I found my best evolved layout:

Some things to note: 1) E and T just have to be under the middle fingers on the home row in any comfortable layout. 2) T and H need to be adjacent. 3) Vowels on one side, consonants on the other side of the home row. Keep the home row's Scrabble score to a minimum.

Honestly, I think that's all that really matters. Dvorak isn't perfect for me (I/U need to be switched, and maybe L/-) but those are minor bugs.

Hey, I did something similar about 12 years ago!

I'd tried the Dvorak keyboard layout and found that I liked the guiding design principles, but decided that the actual layout was a sub-optimal implementation of those design principles. So, I dumped several megs of personal email archives (with the headers & '>' removed) and several megs of C++/Python source code (including comments) through some little statistical number-crunching programs I had written, to analyse:

* key frequency (I still recall that the top 7 were ETOAINS)

* 2-key combination frequencies (for example: TH, SH, ST, NT, EA, OU, IE, etc)

I also wanted it to be Vim-friendly, C++-friendly & UNIX command-line-friendly where this didn't degrade the effectiveness for general English language.

My best layout (which I've been using as my keyboard layout for the last 12 years, thank you Xmodmap on Linux) is:

Because it was significantly inspired by ideas from the Dvorak keyboard layout (and because I was such a modest young fellow), I called it the "Boyden keyboard layout". :P

Just as you did, I came to some specific conclusions about comfortable layout:

* E & T must be under the middle fingers on the home row.

* T & H need to be adjacent.

* Vowels on one side, most important consonants on the other.

In an important contrast to your layout, I optimised for rolling fingers inwards. This is something I learned from the Dvorak layout: It's easier to drum your fingers by rolling inwards rather than rolling outwards. This is why I have "IEA" on the left in contrast to your "AEI", and "HTSN" on the right in contrast to your "NTHS". (It's actually quite striking how similar our home rows are.) Similarly, I have "YOU," on the upper left, in contrast to your ",UYP".

[Interestingly, the Workman layout lays out SH & ST for inwards finger rolls, but does not lay out TH for an inwards finger roll. I consider this a failing of the Workman layout.]

Another principle that I borrowed from the Dvorak layout is that the most agile fingers in order are: middle, first, ring, pinkie. So, I tried to avoid adjacent double-use of the same finger; but when double-use is necessary, prefer to do it with one of the first two fingers.

I also tweaked the layout for Bash shell a little: My most frequently-used command is `cd`, so these two letters are adjacent. Also, '.' is frequently doubled in directory paths (".."), so that's a first-finger key. It also makes sense to have '.' & ',' as middle-column first-finger keys, because they usually occur at the ends of words in prose (that is, at the end of an inward finger roll), and words almost never end in A or U in English.

FWIW, I alias 'a' in the shell so that it cd's into directories but fires up my editor on regular files.

Coworker once said "dude, you only use one command".

Oh, that's an interesting idea!

> It’s easier to drum your fingers by rolling inwards rather than rolling outwards.

Interesting. I’ve always found it _much_ easier to drum my fingers outwards - index to pinky - than inwards. Outwards I get a nice rhythm, inwards is awkward, conscious, and more often I end up just flapping all four fingers up and down, all tapping the desk at the same time.

Quick survey in the house, my son is like me, my wife and daughter find inwards easier. (The dog just thinks I’m an idiot and the cats wouldn’t even acknowledge me.)


CH would be enough of a reason for me to stay away from this layout. Worse than the infamous ls -l on Dvorak.

Though not worse than ln on Dvorak, that's true.

Besides sticking with Dvorak's keyboard layout, the best thing I ever did for my comfort and productivity was to write a text editor that laid its commands out on the keyboard sensibly. Both vi and emacs use designs chosen for ease of recall, based on associations between letters and verbs, not for physical ease of use (apart from vi's HJKL). My editor, aoeui, uses right-hand home and upper rows for navigation by various units; the FDB central column of Dvorak for copy, delete, and paste/swap; and a key on the bottom right-hand row for selection. The left hand's job is basically to hold down the control key and do rare things like file operations.

The Wordstar diamond was quite common at a time, and definitely not mnemonic.

Never used it, but it sure had its fans. Too bad that it lies beneath the left hand.

I doubt that handedness really matters for these kind of tasks, but of course everyone has their preferences.

Many games use WASD under the left hand for motion, but that's to leave the right hand free to use the mouse. I've never tried mousing and cursoring in an editor before. Hmm.

It certainly wasn't a factor when WordStar arrived, but otherwise combining mousing and keyboard commands is quite common (i.e. selecting text and then using the CUA cut/copy/paste commands).

My left hand is clumsy, at least in comparison to my right hand. If commonly-used functions have to all be under one hand, left is bad for me.

What about chording keyboards? I've always wanted to try one of those, though it might be a bit hard to hit unusual keys or combinations. The idea that one hand could control the entire keyboard leaving the other free for the mouse seems interesting.

I spent a month trying different layouts on the Twiddler 2, but ended up ditching it. I could only get up to ≈25% of my normal typing speed. And no matter what layout I experimented with, some keyboard shortcuts were a huge pain. There just weren't enough meta keys.

I do think there's something that could be made in this space, but it would be a niche product. Standard keyboards require no up-front training. A complete novice can use one just fine (although slowly). Chording keyboards require a significant time investment before you can type a single sentence. That up-front cost might be worthwhile, but it really hurts adoption.

In addition to that fundamental issue, most chording keyboards today have two big implementation problems:

1. They are USB instead of Bluetooth. That makes them much less convenient for mobile usage, where they have the greatest advantage over standard keyboards. Instead of grabbing the chorder and typing, you first have to plug it into your laptop, tablet, or phone (if that's even possible).

2. They lack a decent pointing mechanism. The Twiddler series uses a thumbstick. I would vastly prefer a trackball under my thumb. If done right, it would give the ideal combination of speed and precision.

Now that VR is poised to become popular, I think there's a larger chance that someone will make a high-quality chording keyboard. Still, I wouldn't put money on it. Learning to use one proficiently is almost as time-intensive as learning to play an instrument.

CarpalX has a rather thorough exploration of this sort of thing: http://mkweb.bcgsc.ca/carpalx/

The critical part is what you base your evaluation on. As written in the article, some think same-hand sequences are good, others think they are bad. Some consider the home row the place to by, while others take a broader look at easy to reach places.

If you change your evaluation criteria you might find Workman outperforms Dvorak, or the other way around.

Personally, I can only say I'm happy with Workman after over a year.

The benefits of switching from the painful Sholes (QWERTY) layout to anything designed for comfort are huge. The benefits of switching between comfortable layouts are less than the cost of entry, at least for me.

>The benefits of switching from the painful Sholes (QWERTY) layout to anything designed for comfort are huge.

Are there really? I find relevant studies lacking, not to mention this: https://www.utdallas.edu/~liebowit/keys1.html

Also the whole DVORAK vs QWERTY thing presupposes we are all 20th century secretaries or novel writers and english at that, when in reality, we as programmers:

1) Have different patterns than people writing text in English (for us .,{}():- etc can be as common as A and E for example -- plus several common shortcuts.

2) Belong to different cultures, not all english. So, when we DO write text, studies rarely say how good an alternative layout is for typing German, French, Greek, Chinese, Russian, etc.

I'm glad to see skepticism on this claim, and I don't have any good modern UX studies to point to. Anecdotally, I was going home with scary numbness on the backs of my hands and fingers at the ends of days of heavy shell interaction, despite touch-typing. Switching to Dvorak's layout cleared that problem up immediately and it hasn't returned in 24 years.

Same. Typing became physically painful. I had an opportunity to go cold turkey on Dvorak. I got to my old speed and the problem has not re-emerged since.

I don't know if the ramp-up period was simply slow enough to let my hands get a break and heal. Regardless, I can recommend the process of switching from Qwerty to Dvorak as a cure.

Which is why I recommend putting common programming signs under a modifier key such as Alt-Gr, something like Svorak A5: http://aoeu.info/s/dvorak/images/svorak-A5.png

Quite. as far as programming (hell even just prose the way I do it) swapping the various sigils into the tyughvbn cluster would save me more contortions than any rearrangement of letters.

I'm on Dvorak currently, but on Vim, the keybindings make up for an awkward experience. How does one deal with that?

I wrote my own Dvorak optimized editor, aoeui. :-)

that's awesome, great work!!

Hmm, I learned Vim on Dvorak and never had a chance to really appreciate this weirdness. What's better about Vim on QWERTY?

HJKL on the home row under the right hand.

> I went ahead and tried it out and soon enough after doing “ls -latr” on the terminal, I had to shake my head and sadly walk away from it. I didnt like the way Dvorak was laid out especially for the weak fingers of the right hand.

Of course it's going to feel awkward. The name "ls" was picked because it was easy to type on qwerty keyboards. Many Dvorak users get around this issue by creating an alias.

The author then shows off some metrics attesting to the superiority of his keyboard layout. The stats are put in a ridiculous light. A 2.3% reduction in finger travel is touted as "69,600 cm" or "34,000 less keystrokes".

Keyboard layouts are full of trade-offs. I don't know if the author realizes which trade-offs he's made, but it looks to me that he's optimized for finger travel distance at the expense of overall comfort and typing speed. Let me explain.

Compared to Colemak and Dvorak, the Workman layout reduces hand alternation. The idea behind hand alternation is to maximize typing speed. A finger on the left hand can strike a key while the right hand moves into position for the next key. If a keyboard layout doesn't encourage hand alternation, then one hand will sit idle while the other types multiple letters. Unless the letters are a rollover combo, such one-handed typing will be slower. Also: Compared to Colemak and Dvorak, the Workman layout increases keystrokes on the bottom row. The more you have to use the bottom row, the slower and less comfortable typing becomes.

Lastly, the improvements are negligible. Workman is 2-5% better than Dvorak and Colemak in the metrics that the author strove to optimize. If there are any important metrics that he didn't consider (and I think that's the case), his layout is almost certainly not better.

The lesson to draw from all this is: Use whatever keyboard layout you like, with the exception of qwerty. Qwerty is objectively terrible.

Also note the White Keyboard Layout, which was released recently as a reaction to the Workman layout due to some concerns about the optimizaiton parameters.


He defined a somewhat different set of scoring, then ran a simulated annealing algorithm to find a layout that optimized that score, then did a few manual tweaks for consistency and learnability. The code for the optimization is available, so you can define your own scoring and run it yourself.

Even if you're not interested in switching keyboard layout, the writeup alone is well worth a read. THanks.

Yeah, I just use plain old QWERTY, but I love reading these things to see how other people approach their own pain points.

How many people can actually type in multiple layouts proficiently? I can program & type in Colemak and Qwerty equally at speeds over 100 WPM. I tend to use Qwerty at work and Colemak at home, minus tablets/phones.

Some notes based on my own experience:

* If you can touch type very well in Qwerty already, you may have a much easier time picking up a layout than the average typist. And you may have an easier time retaining more than one layout.

* What you're typing (context) is important with regards to adjusting to a layout. For example, if you learn Colemak and decide to try using the Terminal some time after you've become proficient, you might find it awkward - at first. I personally haven't found the type of physical keyboard you use to matter much with regards to this..

* When I was at the state where I could type in both layouts very poorly (due to muscle memory being confused), I realized I took many things for granted that eliminate needing to type quickly altogether like auto-suggestion/completion - and a lot about software development is about automating tasks.

* When I started to become proficient at Colemak and started to lose my proficiency at Qwerty, I developed a justification and bias that Colemak is way more comfortable for my daily usage.

* The most effort I ever put into typing was ironically typing tests, not programming =P. And those can be really tiring if you do them frequently regardless of layout.

Maybe I find these days that colemak is marginally more comfortable. Maybe I just don't type that much though, although I use the computer a lot. Software developers certainly don't type nearly as much as a "typist job" (if those still exist) in any case. If I lose my ability to type in Colemak, I don't think it will effect me that much. All in all, I can't say my transition was worth my time.

I'm proficient in Qwerty, Dvorak, and RSTHD [1]. I also learned Colemak at one point and was proficient at it, but learning RSTHD replaced my Colemak muscle memory (which in itself is odd and interesting). Right now I use RSTHD when I have my ErgoDox, Dvorak on a standard keyboard, and Qwerty on mobile. Some additional things I've found:

* It's possible to be proficient in multiple layouts at a time as long as you use all of them on a regular basis.

* Furthermore, it's possible to separate your muscle memory for a layout from your muscle memory for the physical keyboard enough to be able to switch between keyboard layouts basically at will.

* Getting used to moving around punctuation is much harder than getting used to moving around normal letters for some reason.

* If you use different keyboard form factors (for me, ErgoDox vs. standard keyboard), your muscle memory for the layout is tied to your muscle memory of the physical keyboard itself. I can't type Qwerty on an ErgoDox but I can just fine on a standard keyboard.

[1] https://xsznix.wordpress.com/2016/05/16/introducing-the-rsth...

Wouldn't an optimized layout depend on what you do for work? A C programmer will likely type '*', '->' much more than a JavaScript programmer. Do you move those shifted characters too? How about numbers? I type `0` and `1` a lot more than other numbers.

Maybe one way to generate an optimal layout for work is to run the algorithm through the top projects on Github for a specific language (assuming your work is coding).

I have tried alternative keyboard layouts with little success. I'm a Vim user. I can't even tell you what half the hotkeys are! When someone asks me what the hotkeys are for something, I have to mimic typing the keyboard in air then mentally map my finger movements to keyboard characters. It's a double whammy for me to move to another layout.

Fellow Vim user here. This has always been my reservation regarding a change of keyboard layout, too.

That's the old website. Some of the links may be broken (e.g. try downloading the layout). Here's the current site: http://www.workmanlayout.com/blog/

The objections to the Colemak layout seem kind of bogus to me. I use Colemak and none of these things are issues for me at all.

>Typing ‘HE’ forced the hand to make a very unnatural sideways twisting motion from the wrist and then back again.

Really? I just extend my right index finger half an inch to the left and type the E — my wrist doesn't twist or move at all (at least not perceptibly).

>Try typing “The” with the T capitalized on Colemak and hopefully you’ll see what I mean. Your right hand will move somewhat like this: you swing to the right to get the SHIFT key with your pinky, then you swing back to the left to get the letter ‘H’, and then you move to the right again to get the letter ‘E’.

That makes no sense at all. Why in the world would you use the right shift key for this? I just extend my left pinky a little bit to hold down the left shift key while I type the T.

>I really wanted Colemak to work however I can’t live with the H-E movement and having to reach for D and H often.

There's hardly any movement or reaching required to type D and H. You're just moving your index finger a fraction of an inch to the side. The rest of your fingers and your hands don't move at all.

I can't see anything here that would motivate me to ditch Colemak.

EXACTLY my response. Happy colemak user here!

I have tried both Workman and Colemak. I first tried Workman but ran into the issue of that on my phone and on other peoples laptops the layout was unavailable. So I moved to Colemak and haven't looked back, and have now been using it for about 3 months. Both are nice layouts, I dont see any major benefit from switching between each except for layout support on operating systems.

Seconded. Colemak is great. All the frequently used keys are on the home row, and yet it keeps the most important QWERTY keyboard shortcuts.

Also, colemak has wider support than workman. Software support and native keyboards are easier to come by. Software support exists out of the box with Linux and Android.

Native keyboards are even better, because this ensures that it works, even in the BIOS, login screen, or when using virtualized OSs, games, and other such scenarios.

I was able to buy a fantastic native colemak keyboard from the company WASD. I've tried various types of keyboards, but only WASD had everything I was looking for, and had outstanding build quality.

But switching layouts is a painful decision to make, and should only be made if you've weighed the pros and cons.

There are for sure a handful of cons, like not being able to use someone elses computer without some painful layout switching time. But as someone who works on a keyboard all day it really saves my wrists. If I was ever able to not type I would be out of a job.

I tried Dvorak and Colemak. I couldn't get used to Dovrak's emphasis on hand alternation, so about 4 years ago I tried Colemak and I continue using it today, it's good enough and feels more comfortable than Qwerty. And unlike what the article says, I find it super easy to type 'he' or 'the' on colemak. It's good that almost every Linux distibution includes it. On Windows I use the portable autohotkey version.

I feel you on the 'he' argument, it may be because I have relatively large hands or it really isn't an issue for some people. Dvorak seems to be better for bursts of speed on some words while tying you up on other words, where in Colemak I type at a constant speed for most words.

> Typing ‘HE’ forced the hand to make a very unnatural sideways twisting motion from the wrist and then back again.

Really? On my keyboard, I can simultaneously place my index finger on the Colemak position of H and my pinky on Shift without any movement of my wrist. I'm on a full-size keyboard with a tenkey and I have smallish hands.

Personally, I've found that even on a qwerty keyboard the speed at which I type is usually not the bottleneck, especially when programming.

Speed ties to "not awkward". Awkwardness is probably very important. Anytime something is awkward there is a decent chance it will trigger a mental interrupt. Personally, I've been cutting back on anything that adds mental load not related to the thing I'm actually trying to do.

It's not about speed, it's about comfort, at least for me.

I've only learned Dvorak because my wrists started to hurt.

With QWERTY, I had a quite odd typing style that had evolved from 2-fingers hunt-and-peck but never got to proper 10-finger typing. This odd style wasn't slow, and I hadn't to look at the keyboard, but my hands used to float all across the keyboard in weird motions, and I suspected it had contributed to my wrist pains.

I wasn't able to force myself to learn a proper QWERTY typing - the decades-old muscle memory was a seemingly impenetrable barrier for me. However, a completely different layout (Dvorak) did the trick - thanks to ABCD, after a 2 weeks of "aaaaaaargh I can't type anything, it's really really irritating" hell, I had learned to type acceptably fast, and what's important - with my hands remaining fairly stationary.

I don't know if this was another layout, or just a pair of weeks of rest, or that was a pure coincidence, but the pains were gone (haven't had any severe since then) and I enjoy a proper typing style. There was some speed improvement, of course, but this isn't something I care about.

Seems a little strange to concentrate so much on keyboard layouts rather than switching to a split or ergonomic keyboard....

Why wouldn't you want both? An efficient layout means that your figures move less. You can remap most keyboards to get a more efficient layout, even the $20 keyboard. You can analyze the distance your figures travel for a given text here:


I've got resources for the various keyboard layouts on Github:


Some information on split and tenting keyboards can be found here:


Yes, it's fine to have both -- no objection from me.

However, switching keyboard layouts tends to be difficult for most people, and the gains are generally rather small. Many if not most users would be better off devoting the same amount of time to improving their touch-typing on QWERTY than to switching layouts.

Or even better, do both. Someone recently posted a new layout for the Ergodox Keyboard which looks quite efficient (generated by a programm written in Rust). [1]

[1] https://xsznix.wordpress.com/2016/05/16/introducing-the-rsth...

I used to use a split keyboard but now I just stick with Apple's flat keyboards. I don't buy it anymore that they're more ergonomic. The "extra rest space" on my MS split keyboard I've actually found to be detrimental for me.

Besides, people also use laptops and may not want to swap their keyboard.

Well, they're more ergonomic because you can align your hands with your arms, instead of twisting your hands at an angle. This is a matter of fact. You are entitled to prefer a flat keyboard -- that's entirely your choice -- but it doesn't change the ergonomic reality.

> Besides, people also use laptops and may not want to swap their keyboard.

Laptops are not ergonomic, and nobody who knows the facts will use them for long periods for precisely that reason. However, you can make them less damaging to your health by putting the laptop on a riser and using an external keyboard.

Out of curiosity I google searched ergonomic keyboards, found Wikipedia page, saw it stated they may reduce risks of injury but that there is no clear evidence of benefit.

My own reality is I used a "ergonomic" labeled keyboard that I felt caused me more discomfort.

Of course there are convenience trade offs somewhere and laptops to me fall under convenience.

Apple's keyboards are also easy to rearrange and don't get lumpy looking afterwards. This includes their laptops, whose keys are trivial to pop off and scramble.

Yeah personally, I like my split keyboard. Until, I got a split keyboard I couldn't really touch type. I think the problem is the arrangement of keys for the left index finger on traditional keyboards. So now that I have a split keyboard, I can touch type. Though, I'm still slower than I would like.

All that said, I fully encourage any mucking about with keyboard layouts. There are quite a few variables that can be tweaked.

I certainly find my ergonomic keyboard (MS Nat Ergo 4000) much more comfortable to type on than a regular keyboard. Arms are much more relaxed, elbows out further from the body.

When I use a regular keyboard, I feel hunched up in the shoulders with elbows held tight to my abdomen, by comparison.

You can split QWERTY up all you like, but it carries its problems along. Way too much finger motion off the home row.

Interesting. As I've reverse engineered Windows keyboard layout format, I went ahead and added Workman keyboard layout, along with additional symbols, for easy editing and installing:


I too found Colemak lacking. IMO it's because the most relevant keyboard layout metrics are

1) how well words break down into same hand "finger rolls", which help typing accuracy and to lesser extend speed

2) how often the same finger has to type multiple characters in succession

3) how often the same hand has to reach for the more awkward middle keys (y and b in qwerty) while also doing something with the middle finger

Finger travel distance is irrelevant. Common characters ought to be on the home row because your fingers can't roll across the top and bottom row.

Dvorak optimizes these very well. Workman seems to split bigrams across two hands, which prevents rolls. I would also recommend binding alt-gr to control in addition to making caps lock backspace.

whoa, you map Caps Lock to backspace, not control?

Yes, since capslock+a is awkward to press. Altgr + any key can be hit without strain, at least if you have a keyboard that doesn't place altgr too far to the right.

Got it. Agree that caps lock + A is hard; I didn't assign a command meaning to ^A in my editor design for that reason (at first) and because ^A is the default escape sequence in 'screen'.

Given it's stated purpose, I was surprised not to see benchmarks on things like the Linux kernel source code.

Nobody sits down and streams out kernel code in serial order at speed.

In fact, if you count commit messages, e-mails and keyboard layout flamewars, your average developer may easily turn out to type more natural language than code.

Nobody writes a whole book in one go either.

It would be nice to see for comparison purposes.

My point pertains to units smaller than books or source files. I stream out sentences all the time, but rarely stream C statements.

I would have appreciated it if the simulations could be run against source code in different languages. That would be informative.

I like seeing someone willing to rethink base assumptions, and to follow that thinking all the way to a brand new layout. However, I'm surprised to see that, even in a layout intended for programming, parentheses and brackets are placed as inconveniently as they ever are. Programming might only be 25-40% of my typing, but it's the most painful/annoying usage of the keyboard that I have -- far out of proportion with the fraction of the day it occupies. I'd even learn two layouts if it meant that the programming layout would be much more comfortable.

> UPDATE: Workman-P is now available. Workman-P is Workman for Programmers. In Workman-P, the top-row numbers and symbols have been switched as well as the brace and brackets. It is great for programmers as well as system administrators.

I'm a bit skeptical of that change for keyboards I don't have a numeric keypad. I think I type more numbers while programming than symbols.

Yeah, I'm not willing to give up easy access to numbers for symbols.

Maybe an an extra row above the numbers would work (Get rid of the current F1-F12 keys).

I'd also like to have ABCDEF and x keys next to the number pad, to make typing hexadecimal numbers easier. Maybe comma and space keys would be useful over there too.

Yeah, I was responding to that fact -- was that not apparent? The brackets, braces and parens are in essentially the same finger positions.

Just letting you know, learning two layouts is not doable. The muscle memory of one will always be more powerful. I cannot type querty anymore after I have switched to dvorak programmer [1].

[1]: http://www.kaufmann.no/roland/dvorak/

If you find you have trouble remembering two layouts then I would suggest using a specialized ergonomic keyboard with a non-QWERTY layout for most of your typing and leave all the normal slab keyboards and laptops as QWERTY. For much the same reasons you don't get confused between a piano and a computer keyboard, using a keyboard which is physically significantly different helps separate the two layouts in your muscle memory.

For example, I use Colemak on a Kinesis Advantage and QWERTY on all flat keyboards. Since the physicality of they keyboards are so different I don't have any confusion while typing, though sometimes I'll mix up single character presses. That is, if I type a sentence I never have troubles, but if I want to hit just the 't' key I may mistype the first time. Other than that I can seamlessly switch between the two and my speeds are comparable across both layouts.

This is what I've done too (I use Dvorak on split keyboards and QWERTY on non-split keyboards) and it's done a good job of keeping my QWERTY speed up. I do have to look at the keys if I'm trying to type QWERTY with a split keyboard, but that doesn't happen to me very often, and it's not really much of a problem when it does.

I occasionally get a few keypresses wrong when I first start typing after I've been using the mouse, but once I'm going I'm fairly accurate.

It's completely doable. Took me a little bit of fumbling to use QWERTY again after learning Dvorak, but it's easy to pick back up and do both.

I switch between both every day with no problem, except I've noticed that I prefer QWERTY for programming and Dvorak for writing prose. It's been 7 years since I learned Dvorak.

I've replied somewhere in in the thread, but you say that learning two layouts is not doable - it's perfectly doable, and I don't see why one would make such statement only based on own experience (unless you have some source for that, which I'd be very interested in)

It seems to me that running a corpus of produced text (be it your own or literary) misses a lot of potential optimisation. It completely misses things like control key usage, arrow keys, number pad, etc. (And ESC! Vim user here.)

Also the timing of keystrokes. Focusing on programming for a moment, I would assume most people type is short bursts of maybe one or two hundred keystrokes, not sustained typing of paragraphs and paragraphs.

And what about characters that do not have a key on your keyboard (such as my use of “§” below)?

I suspect that to “do it right™” you would need a keystroke logger, and possibly log your clipboard usage as well, for a thorough analysis.

(Vi usage adds a complication to this, I think. You could almost think of command mode as a different keyboard layout. I can't image wanting to HJKL navigation key positions to move. Any analysis would have to make that distinction.)


Switching gears for a moment, I recently tried out a prototype keyboard design, and while discussing it with the developer discovered some interesting differences in our typing habits. For instance, I exclusively use my left thumb for the space bar, whereas he used his right. I also tend to use the left ctrl, alt, shift keys and never the right.

It also seems that when drumming my fingers on a desk, I find rolling outwards - index to pinky - much easier and natural than rolling inwards, which seems to be more common. (I am right handed and left footed, BTW.)

I started using Workman several years ago. I started with a Truly Ergonomic and later moved to a Atreus because of issues with double/missed key presses. Both keyboards are vertically staggered, and I'm never going back.

I typed QERTY using 4 fingers, and still do. I took the opportunity to learn to type blind while learning Workman. During the process I changed a few keys around to make typing Dutch more convenient (mainly K and J IIRC)

It took me a few months to get any sort of speed, but now it's pretty effortless. I haven't checked my speed in ages, it's probably not fast by any means. I still tend to reverse the order of letters sometimes if I want to go fast.

My current keyboard has 4 layers and no number row. All numbers and punctuation are available on a separate layer. (shift, fn1, fn2) This took the most time to get used to, especially some of the rarely used punctuation.

I'd be happy to answer any questions of people who are considering switching.

What methodologies did you use to help yourself learn the new layout quicker?

Do you ever think you will reach your QWERTY speeds?

I chose Colemak about 8 months ago after a bunch of research and haven't looked back. Some important things, beyond the ease metrics:

- Don't move too many keys that are used for hotkeys: zxcv qw h a are not moved.

- Let me move around vim in a sane way. hjkl are kind of a reach now, but they are all under my left index.

- Make sure my `readline` hotkeys are easy to read. a r f b n p y u are all good. g is a bit of a stretch.

- It's common enough that I don't have to install custom software on every computer I use. It's on OSX and in the firmware of many mechanical keyboards.

qwerty is garbage, and it's a real shame that it's here to stay, and I feel bad that I had to 'settle' for a layout that has some keys borrowed, but I am a realistic more than an idealistic and colemak definitely still hits on the important points for me.

When I decided to learn touch typing, I went for Colemak. He's riffing on colemak and frankly, I don't understand it at all. He starts with "The" is so hard on your hand!"... I use the left shift and hitting H with my hands in neutral position I only move ONE finger... Happy colemak user here.

Although it's a bit annoying when games require/built around QWERTY or other users need it. But I've mapped CTRL-1 to normal and CTRL-2 to Corsican Colemak mappings on windows 7

I've been using programmer's dvorak for almost a month now, and most of my RSI pain in the wrists went away. It took me a while to get use to it (about two months to get to 80% of the speed I had before on qwerty), specially the numbers. But right now I just love it. This layout looks ok, but not too big of an improvement over dvorak, plus programmer's dvorak comes installed almost everywhere (at least the platforms I use the most).

I saw a keyboard before that all the keys were seperate and you could attach them to a magnetic base however you wanted. I always thought that concept was interesting.

For me personally, the one change from the current "standard" layout that helps the most is remapping caps lock to control, so the control key is immediately to the left of 'A'. I'm a little surprised the designer of this layout didn't consider doing that. (It can be remapped in software on most systems, though the last time I checked Windows still made it unreasonably difficult.)

Great writeup, although it bothers me that he dismisses Dvorak so quickly. Although I've never personally used it, reading articles tells me that it's been regarded as the "best" layout for many use cases for a very long time. He said that he typed one command, `ls -latr`, shook his head and dismissed it. Can anyone clarify as to why?

That particular sequence uses the right-hand pinky finger a lot. I think 'L' and '-' would be better on Dvorak if they were swapped. But throwing out the whole layout because of one UNIX shell command seems to me like he was looking for a justification. Dvorak gets all the basics right and can be found everywhere; to me, the differences with other ergonomic layouts are probably less than the error of measurement.


  alias ao='ls'
  alias aoe='ls -l'
  alias aou='ls -a'
  alias aoeu='ls -la'
Problem solved!

Yeah, it does seem like that command is rather arbitrarily chosen. Most people don't type `ls -latr` over and over again.

Those keys would produce P; 'PAKO on Qwerty, try typing that.

I prefer "ls -lrta", since LRT is easier to type (Qwerty: POK). Having said that, on systems I used frequently, I have some aliases defined:

  alias h=ls
  alias hh=ls -l
  alias lrt=ls -lrt
  alias lrta=ls -lrta
I've used Dvorak for about a decade, and have never looked back. It occasionally annoys colleagues, but I have

  alias aoeu='setxkbmap gb -option'
  alias asdf='setxkbmap gb dvorak -option compose:menu,ctrl:swapcaps'
for easy switching. (No doubt KDE/Gnome offer something to do this, but 12 years ago when I added these aliases I was using a wide variety of machines at university.)

There is a certain irony on a site about keyboard accessibility having this in their style-sheet: "font-weight: 300;" with the result that it produces significantly reduced readability of the site (and thereby reduces the "visual accessibility").

Anyone tried any unconventional keys? I changed semicolon with 'type the last character' because I observed typing the same character consecutively significantly slowed down the speed. I mean there is no reason why a key should be bound to a single character.

As somebody who uses Dvorak, don't learn an alternative keyboard layout. It makes pair programming, and more generally using other people's computers, an unnecessary pain. More importantly, there are better uses of your time, such as actually programming.

Pair programming doesn't have to mean one computer or one keyboard.

Yeah but like, do you really wanna be that guy?

Obviously all that works fine for English, but is sub optimal for other languages. I wonder, since QWERTY is not going away, perhaps the future is custom key-binding as opposed to single, better layout such as Dvorak.

I would comment on the original blog, but comments are closed.

In the last comparison, the results are given as QWERTY = 16653m and Workman = 88027m. This suggests that QWERTY is significantly better!

Apparently the last one is a sum of the previous results, so it looks like they made some kind of calculation error there.

I tried the download link and got a "Server not found".

They moved the downloads to Github: https://github.com/ojbucao/workman

Changing keyboard layout isn't an option.

I tried a few times and gave up.

Same. It's very tempting, but if you ever use keyboards other than your own it's not very doable imo.

Having changed layout when I started learning Russian (since russian keyboard has letters in different places than their phonetic latin counterparts) I think it's just matter of how you learn. I had problems too, until I started learning by typing the same sentences that I used to learn Russian alphabet, which introduce letters in small batches of 3 or 4. After few weeks I was able to comfortably switch between both layouts every few sentences.

That's the main issue. I switched to Dvorak a year ago and it's been great, but being on other machines is difficult. The most egregious issue I've seen is a colleague who took the GRE and was forced relearn QWERTY. The best writer I've ever met score lower on that portion of the test due to keyboard layout.

That said, I'm happy I switched. Keyboard shortcuts in design applications took longer to mentally remap than the layout itself for daily typing. There are trade-offs (as with everything).

I did it on holidays. Switched to dvorak for programmers 6 years ago. Never again pain in my wrist. I'm a vim user, that was a little difficult. Total time to be confortable with the change about 2 weeks. After that it became my main layout.

It was a long time ago, but I also remember a 2 week switching time. I was pretty good by the end of the first week, but after taking a weekend off, the worst day was the following Monday -- I couldn't remember any layout and couldn't type at all without reference to a diagram!

Are there keyboard layouts based on other languages? or even programming languages?

There is neo for German, which has English and programming as secondary targets. I've been using it for a few years now and I love it.

For ideographic languages all kinds of systems exist, otherwise it's mostly minor variatons of QWERTY, plus putting some accented/non-standard letters somewher. Germany has QWERTZ while France has AZERTY for some kind of reason (a special hate for the letter 'a'?).

As for programming languages, it's quite common for lisp programmers to make the parens more accessible. And of course, there's the infamous APL keyboard.

I use a variation of workman that moves a few uncommon letters around. I can't even remember which, but my fingers know. Mainly J and K are used a lot more in Dutch than in English IIRC. There are tools out there to evaluate a layout based on a corpus. I remember downloading some Dutch text from Guttenberg to validate my layout.

See, I'd love to see a programmer's keyboard tested with a code base.

So how can I start trying this out?

OP does not use vim...

>> QWERTY was supposedly designed for typewriters to solve a very specific problem–to keep the types from jamming against each other. The most frequently used keys were placed apart from each other to prevent them from jamming.

Isn't this a huge myth and if so, can we all agree to stop with it?

I find it funny that people keep saying this while ER and ERT, very common letter combinations in English, are part of QWERTY.

The keys are next to each other, but the typebars are not.

It's the typebars that get jammed, not the keys. Although when the typebars jam they keep the key depressed.

No - this is not a myth.

QWERTY was designed to prevent jams. The myth is that it was intended to slow the typist down.

In fact, reducing jams results in faster typing when using a device susceptible to jamming. Now that our keyboards don't jam, we can move on from that local maximum.

Using classic English language literature from a hundred years ago when advertising the keyboard for programmers is faulty thinking in my opinion. Why not use code for your testing?

There is Programmer Dvorak, which solvea the right hand's excessive use. Though the numbers do get funky.

It's pretty unusual for me to just stream C++ code directly. Even when I know what I'm going to write, it doesn't come off my fingers in serial order. So for programming, I need good placement of editing commands, not characters for text entry.

It's the other way around for natural language in comments, e-mail, blog posts, etc.

C/C++ no,but it's not uncommon for me to stream of consciousness sizable blocks of Javascript or of HTML plus templating language special characters.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact