Workman Keyboard layout
viralintrospection.wordpress.com
viralintrospection.wordpress.com
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.
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:
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". :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.
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.
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.
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.
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...
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.
>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.
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.
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.
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.
https://github.com/grompe/kbdasm/commit/fd595046ffa996f5e309...
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.
It would be nice to see for comparison purposes.
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.
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 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?
- 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.
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
alias ao='ls'
alias aoe='ls -l'
alias aou='ls -a'
alias aoeu='ls -la'
Problem solved!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.)In the last comparison, the results are given as QWERTY = 16653m and Workman = 88027m. This suggests that QWERTY is significantly better!
I 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.
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.
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.