top | item 11883233

Workman Keyboard layout

103 points| b01t | 9 years ago |viralintrospection.wordpress.com | reply

125 comments

order
[+] pklausler|9 years ago|reply
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.
[+] pklausler|9 years ago|reply
Hey, I found my best evolved layout:

  K,UYP WLMFC 
  OAEID RNTHS 
  Q.';Z XVGBJ
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.

[+] pklausler|9 years ago|reply
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.
[+] Natsu|9 years ago|reply
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.
[+] pepijndevos|9 years ago|reply
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.

[+] b01t|9 years ago|reply
I'm on Dvorak currently, but on Vim, the keybindings make up for an awkward experience. How does one deal with that?
[+] ggreer|9 years ago|reply
> 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.

[+] lambda|9 years ago|reply
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.

https://github.com/mw8/white_keyboard_layout

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.

[+] lawn|9 years ago|reply
Even if you're not interested in switching keyboard layout, the writeup alone is well worth a read. THanks.
[+] zZorgz|9 years ago|reply
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.

[+] xsznix|9 years ago|reply
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...

[+] mmgutz|9 years ago|reply
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.

[+] anotherevan|9 years ago|reply
Fellow Vim user here. This has always been my reservation regarding a change of keyboard layout, too.
[+] WaltPurvis|9 years ago|reply
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.

[+] voiper1|9 years ago|reply
EXACTLY my response. Happy colemak user here!
[+] codemonkeymike|9 years ago|reply
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.
[+] nwah1|9 years ago|reply
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.

[+] sdfin|9 years ago|reply
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.
[+] jdbernard|9 years ago|reply
> 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.

[+] flogic|9 years ago|reply
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.
[+] pklausler|9 years ago|reply
It's not about speed, it's about comfort, at least for me.
[+] scholia|9 years ago|reply
Seems a little strange to concentrate so much on keyboard layouts rather than switching to a split or ergonomic keyboard....
[+] melling|9 years ago|reply
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:

http://patorjk.com/keyboard-layout-analyzer/#/main

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

https://github.com/melling/ErgonomicNotes/blob/master/keyboa...

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

https://h4labs.wordpress.com/2015/07/16/the-model-01-an-heir...

[+] zZorgz|9 years ago|reply
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.

[+] flogic|9 years ago|reply
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.

[+] anotherevan|9 years ago|reply
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.

[+] pklausler|9 years ago|reply
You can split QWERTY up all you like, but it carries its problems along. Way too much finger motion off the home row.
[+] htns|9 years ago|reply
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.

[+] pklausler|9 years ago|reply
whoa, you map Caps Lock to backspace, not control?
[+] Retr0spectrum|9 years ago|reply
Given it's stated purpose, I was surprised not to see benchmarks on things like the Linux kernel source code.
[+] pklausler|9 years ago|reply
Nobody sits down and streams out kernel code in serial order at speed.
[+] ChuckMcM|9 years ago|reply
I would have appreciated it if the simulations could be run against source code in different languages. That would be informative.
[+] jessedhillon|9 years ago|reply
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.
[+] speps|9 years ago|reply
> 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.
[+] JelteF|9 years ago|reply
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/

[+] anotherevan|9 years ago|reply
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.)

[+] pepijndevos|9 years ago|reply
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.

[+] SOLAR_FIELDS|9 years ago|reply
What methodologies did you use to help yourself learn the new layout quicker?

Do you ever think you will reach your QWERTY speeds?

[+] Graziano_M|9 years ago|reply
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.

[+] voiper1|9 years ago|reply
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

[+] funkaster|9 years ago|reply
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).