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").
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!
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.
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.
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].
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)
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.
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.
> 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.
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.
> 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.
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.
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.
>> 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.
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.
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.
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:
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.
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 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.
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.
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.
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]
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.
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.
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'.
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.
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.
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.
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).
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.
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)
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:
QYOU, XRDCW
PIEA. VHTSN
K;JG_ ZLBFM
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.
> 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.)
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.
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.
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.
This is why my own custom keyboard remapped Alt to another "shift level". So, for example, Alt+s and Alt+d remap to ( and ) respectively on my keyboard. I have all the other special characters on there too.
Strangely enough, pressing Alt feels easier to me than pressing shift, so I prefer typing special characters over capital letters.
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.
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.
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.)
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.
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.
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.
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.
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.
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.
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.
> 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.
127 comments
[ 3.0 ms ] story [ 194 ms ] threadI tried a few times and gave up.
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).
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.
[1]: http://www.kaufmann.no/roland/dvorak/
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.
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.
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.
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.
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.
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.
QWERTY was designed to prevent jams. The myth is that it was intended to slow the typist down.
It's the typebars that get jammed, not the keys. Although when the typebars jam they keep the key depressed.
It would be nice to see for comparison purposes.
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...
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.
All that said, I fully encourage any mucking about with keyboard layouts. There are quite a few variables that can be tweaked.
Besides, people also use laptops and may not want to swap their keyboard.
> 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.
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.
[1] https://xsznix.wordpress.com/2016/05/16/introducing-the-rsth...
When I use a regular keyboard, I feel hunched up in the shoulders with elbows held tight to my abdomen, by comparison.
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.
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.
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". :PJust 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.
Coworker once said "dude, you only use one command".
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.)
Strange.
Though not worse than ln on Dvorak, that's true.
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.
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 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.
Strangely enough, pressing Alt feels easier to me than pressing shift, so I prefer typing special characters over capital letters.
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.
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:
I've used Dvorak for about a decade, and have never looked back. It occasionally annoys colleagues, but I have 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.)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.
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.
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.
In the last comparison, the results are given as QWERTY = 16653m and Workman = 88027m. This suggests that QWERTY is significantly better!
There is Programmer Dvorak, which solvea the right hand's excessive use. Though the numbers do get funky.
It's the other way around for natural language in comments, e-mail, blog posts, etc.
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.
Do you ever think you will reach your QWERTY speeds?
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.
* 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...
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.