An AI designed keyboard layout (2021)
github.com
github.com
Similarly with "s" and "d" -- pretty much every verb can be conjugated to end with either an "s" or a "d", so if you press "d" when you meant to press "s" or vice versa, it probably remains a valid verb, and thus is harder to catch.
For these purposes, my ideal layout would have interchangeable letters sufficiently far apart from each other to make typo detection+resolution easier. The most commonly used letters should be surrounded by the least commonly used letters so that, for instance, if you "jqb" I know you meant "job" and not, say, "jib".
This would also make swipe typing on phones far easier to use, as it would be much less ambiguous which letters you were aiming for.
I'd never thought of optimizing a layout so that typos are obvious nonsense. At the same time, I think I'd find a way regardless.
Some real examples include:
"Any update on your free/busty time?" instead of busy.
"It is just milf kitty indigestion" instead of mild.
You just have to hope your client or coworker makes typos too, and finds amusement in it.
For "improving Dvorak", that was solved back in 2004 with Capewell-Dvorak [4].
To the author: what is supposed to be AI here? I don't see a mention of a ML method or neural network here, is it "just" an evolutionary algorithm like CarPalx, AdNW and MTGAP (not that it's bad)?
[1] https://deskthority.net/wiki/Alternative_keyboard_layouts
[2] https://deskthority.net/wiki/Alternative_keyboard_layouts#Ad...
[3] https://mathematicalmulticore.wordpress.com/category/keyboar...
[4] https://deskthority.net/wiki/Alternative_keyboard_layouts#Ca...
Having multiple minds working at the same problem is great, but not engaging with prior art diminishes the value of their own work IMO.
https://en.wikipedia.org/wiki/Evolutionary_algorithm
Are you using "AI" to mean "deep learning"?
The built in Dvorak on the Mac has an option to let the keys go back to normal for CMD usage, though I prefer learning them as typable letters than physically located chords.
I'm typing on neo [0] and it's no problem at all.
Welcome to the wonderful world of everyone whose countries native layout doesn't have a dedicated key for /, like most of europe.
For example I can't do Ctrl + ] because I need AltGr to produce ] and that won't work with Ctrl. Also I cant do Ctrl + ` because ` is dead key for me (it appears only after I type space or any other character).
On a Mac, you can use ⌘ keys as QWERTY, but have Dvorak for everything else. Like the other comment, this sounds like someone who hasn't given an alternative keyboard layout a serious try.
In addition: I see you’re a Mac user. The kind of person willing to try this layout is probably willing to reassign all those keystrokes, which is easy (but tedious) on the Mac.
I experiment around with my layouts and keyboards a little bit so I am probably out of touch.
I have 16 layers of possible keys activated by thumb chords (though in practice my brain runs out of awareness of different combos far before my ~1000 unique keys). So I just dedicate a layer to this pseudo-qwerty.
Need to get around to writing that emoji layer...
It is problem both for MacOS and Windows, my examples will be for Windows, but MacOS has exactly the same problem.
Imagine, you have two keyboard layouts installed: English (standard one, QWERTY) and Russian (standard one, ЙЦУКЕН, but it doesn't matter).
Typical shortcut for "Open File" is Ctrl+O (O is English O). This key in QWERTY is on top row, on the right part of keyboard. Russian layout has letter Щ on same key. You can press Ctrl+O when English layout is active or you can press Ctrl+Щ when Russian layout is active, it will work the same: activate Ctrl+O shortcut, and shows you "Open File" dialog.
Now Imagine you have combination of English Dvorak layout and same Russian ЙЦУКЕН layout.
Open File shortcut now uses DIFFERENT KEYS in DIFFERENT LAYOUTS. When Dvorak is active you need to press Ctrl+O, where "O" is in the middle row, on the left. This key is Russian "Ы" in ЙЦУКЕН layout. Sounds good so far. But when Russian layout is active you need to press... Can you guess? No, not Ctrl+Ы (where Russian "Ы" in ЙЦУКЕН is same key as English "O" in Dvorak), but Ctrl+Щ, as if your English layout is still QWERTY.
It is sick. It makes using shortcuts almost impossible - shortcuts become dependent on current active language!
And what is worse, some programs (Google Docs is one example) refuse to use Ctrl+Ins/Shift+Ins and requires Ctrl+C and Ctrl+V for clipboard operations.
As a Dvorak user on macOS for ~12 years, I do believe it's an issue. I use "Dvorak - QWERTY ⌘" as my daily driver and while it works for most applications, it's infuriating for those it doesn't. Sometimes keyboard shortcuts are control/option based without using command, so it's still in Dvorak mode.
In Gimp, the New Image shortcut is ⌘-N, which doesn't work. I have to press physical L, which is the key for N in Dvorak. This is common. The apps seem to do some lower-level key detection. https://gitlab.gnome.org/GNOME/gimp/-/issues/3352 I think Fusion 360 does similar, though I don't have it installed at the moment. I have also had trouble with remove desktop applications, which is kind of to be expected but another downside.
When the layout is at the hardware level, the OS only ever sees the actual keycode for the N key, instead of an "L" which is later transcribed into "N" by the OS's layout map.
If you lisp, you might want easily accessible parenthesis. In C, semicolon is useful. Bash uses dollar and sharp a lot.
Apple's CMD-C/CMD-V is one of the least ergonomic patterns I've encountered in keyboard design compared to CTRL-C/CTRL-V. Yes, I know you can remap keys from within macOS, but it is a nightmare if you are using VNC + Windows Remote to access other machines (granted, that isn't a common use case, but it is mine).
Pinky-C/Pinky-V/Pinky-Esc is a valid pattern for I would guess lots of developers who were raised on Atom/Sublime/VSCode.
Let me explain. While Latin alphabet has only 26 letters, many languages have more of them. For example, Russian alphabet has 33 letters. Therefore, to fit these letters there must be 7 more keys. But we also need two keys to switch layouts - so in total there should be 9 extra keys.
Sadly, manufacturers (including Apple that claims to "think different", but in this case thinks exactly the same as PC vendors) don't want to add even a single key, instead they put extra letters onto keys with symbols, so you have to switch layouts to type those symbols. Furthermore, several characters like period or comma are located on different keys in different layouts. Guess, how easy it becomes to make a mistake.
Switching layouts is inconvenient. Instead of having two dedicated keys for switching to each language, OS vendors add single switching combination like Shift + Alt (Windows) or Cmd + Space (Mac). Also, on keyboard itself there is no indication that these keys can switch layout.
One could argue that it is difficult to find more space on laptops. Well, I think that this can be solved somehow. For example, one could add an extra row. But it is absolutely possible on desktop PC keyboards, and yet nobody is doing this.
Realistically, it's the opposite - they look to reduce and minimize keys; Home/End/Pg keys, arrow keys, all are being mangled/reduced/moved/killed. Every manufacturer wants to make its own bespoke layout for every model they make seemingly, presumably in a valiant effort to make muscle memory thing of the past :-) . Standards are for wussies!
There's a bunch of things like that which would have a bigger impact if they could be measured but are ignored by this methodology.
I use standard Dvorak, but thumb keys are the real game changer (the Kinesis introduced me to them) so CMD keys that act as backspace and enter when used alone are good, as is using space as a shift key to get numbers and symbols.
Two keys (j+k) at once for esc and : and home row mods are other quantum leaps.
Oh and the data is from non-ortholinear keyboards, so will be skewed for non staggered keyboards.
- I have been using standard german QWERTZ for about 42 years now, in average certainly not less than 3 hours every day. I was originally educated in proper 10 finger blind typing in a dedicated typing school as part of my typesetter apprenticeship. I am typing really fast. Today I am even using "daskeyboard ultimate" - a completely unlabeled keyboard. Is it really possible to improve 42 years typing practice with a new layout?
- Is it possible to be proficient in two keyboard layouts at the same time? I have a partial answer myself. For one, I managed to learn standard Emacs shortcuts (a lot of them!) some of which contradict common OS shortcuts (like copy/paste etc) and I have both sets in muscle memory and I can seamlessly switch between both sets as I switch applications (most of the time that is). And I use three computers with three OSs (Linux, Win, Mac) with one keyboard per Synergy software. Same layout for the standard characters, but different OS specific layouts for special characters like "@", "€" etc. I can seamlessly switch between them as well and that is the reason for the unlabeled keyboard. A labeled keyboard would show only one layout and puzzle me if I had to enter special characters for another. So, while I know I can handle some number of characters in alternate layouts in muscle memory - will this be possible for the entire character set as well?
- If you get accustomed to a non-standard keyboard layout, isn't it a problem if you have to use some other computer (where you cannot change the layout) for whatever reason, for example in an Internet cafe?
This keyboard sure looks extremely nice! The price tag, though!
On the other hand, the keyboard is my main tools of trade, and the perfect solution is certainly worth a price between 250 to 400 bucks.
I would want to try the hardware before doing the investment. That could actually be a business: renting out keyboards for evaluation.
[0] https://keeb.io/collections/iris-split-ergonomic-keyboard
If you want to dip your toes into custom keyboards, I'd recommend finding some 60%-ish board with hotswap switch sockets, since that will let you experiment with the choice of switches before you have to worry about soldering anything. Plenty of 60s are available as kits, or just interchangeable parts.
It also alleviated some RSI for me (which was why I bought it originally). It's excessively customizable—I honestly probably don't get as much use out of it as I could. You can basically assign a key to anything, including compound keys, macros, etc. And then on top of that, there are several layers you can swap between. So you have a button to press, and it swaps out the entire arrangement for some other keymapping (either momentarily or toggled). I got the RGB version too, so on top of that, you can customize per-key colors, which is helpful to map out keybindings when you're switching layers. (e.g. mine switches from blue to purple when I switch to my second layer).
It's really neat, and I would definitely invest if you're typing 8+ hours a day like me.
The switch was not to hard and in the beginning I kept using my QWERTZ keyboard. After about a year I decided to stick with it and bought a QWERTY keyboard.
Having to switch back to the QWERTZ layout of coworkers is a little awkward but it's not too bad.
I still think it’s one of the best layouts; others bring up the home row but Dvorak had a lot of other factors at play too. If you’re interested, I highly recommend this 1972 article[0] on the layout, it’s quite a story.
One benefit of learning blind without ever using labels was that I can jump on any computer with a qwerty keyboard, switch to Dvorak, and just start typing. I have never ran into a computer that actively prevented me from switching keyboard layouts, and I even have a word processor that comes with Dvorak as an option. Bear in mind, I am still typing on a QWERTY keyboard, but if I type the letter Q, it outputs on the computer a comma.
Most modern games can detect alternate layouts and remap keys automatically, and for those that can’t it’s not difficult to remap them.
Back to the question of switching though. I went five years exclusively using Dvorak and not QWERTY, and for me that was fine. I will papers, I was programming, and I would simply just switch to Dvorak when I went on a computer that was not my own. The few times I did have to use QWERTY, I would just hunt and Peck. However, I ended up getting a job where they did a lot of deskside support for various clients, and of course I could not just change the keyboard layout on them. At some point, I realized, that I was able to switch my mindset when typing in qwerty, and suddenly I was just as proficient as I used to be in Corti then in Dvorak. You have to have kind of an active change in your brain similar to if you are speaking in a different language. If I’m on a qwerty keyboard I’m in “qwerty mode” and on Dvorak, default mode.
I must warn you, even after two weeks and 40 words per minute, I found Dvorak so comfortable I didn’t even care about my typing speed anymore and stopped doing typing drills. Consequently, while I am capable of using a qwerty keyboard for short periods of time, I find typing on one so uncomfortable that if given the opportunity I just switch to Dvorak. Obviously I would not do this on a client’s computer, but an Internet café is fair game.
I must also warn you that since Dvorak actively spreads the load across all fingers, your pinky may get sore when you first start only because those muscles aren’t used to being used. If you’re interested in reading my experience, I wrote about it in 2010[1].
[0] https://web.archive.org/web/20190125034817/http://infohost.n...
[1] https://aj.ianozi.com/2010/12/switched-keyboard-layouts.html...
One regret: like the parent commenter, I stopped drilling early when "fast enough". Then I asymptoted to comparable speed to my qwerty days (and greater comfort), but worse accuracy. Years later some further drilling was worthwhile to end up actually better at typing than in qwerty.
Overall I'd say the Dvorak/qwerty diff was enough to justify choosing Dvorak when you start to learn touch typing, but probably not for switching later.
The increment of improvement from Dvorak to a newer layout seems considerably smaller still, and I'd weigh that against universality of support.
I have a wildly different experience, most games never manage to detect my AZERTY keyboard, and some don’t even let me remap easily (case in point, stranded deep does not even let you remap or see controls during the tutorial, which was a truly awful experience). Nowadays I force qwerty during games to avoid issues caused by developers not understanding that there are different layouts out there.
1. For me it took about a year or so until I surpassed my QWERTY typing speed with certainty. I typed about 80-90 wpm on QWERTY and currently type at about 90-100 wpm on neo.
2. Yes, it's not a big issue. I rarely type QWERTY nowadays, but whenever I have to it clicks after a few minutes and I can type at maybe 70% the speed I typed at before. I'm certain were I to use it more, I would be able to type both at my "native" speeds. I also relearned all my emacs shortcuts pretty quickly. Using emacs is harder on QWERTY now, but fortunately I pretty much never have to do that now.
3. Due to 2, it's not really a problem. The actual problem is the other way round. You cannot easily give someone else access to your computer. It can be a bit annoying to change keyboard layouts each time someone else wants to quickly use your computer.
Hope that gives some perspective.
This is really fast and a true improvement. I am currently at 90 wpm and do not feel I could improve that much (German has special characters äöüß and a lot of capitals).
> I rarely type QWERTY nowadays, but whenever I have to it clicks after a few minutes and I can type at maybe 70% the speed I typed at before.
Interesting, so it might actually be possible to have multiple sets of muscle memory for the same thing!
> It can be a bit annoying to change keyboard layouts each time someone else wants to quickly use your computer.
Someone else will face much more difficulties using my computer than just the keyboard layout. 30 years of customization have made my computer very individual. ;-)
Thanks for sharing!
Yeah, insane!
> People looking into Dvorak are often warned that it isn't a magic bullet to make them faster, only possibly more comfortable.
That is an important point!
First, being fast in a competition is not only a question of fast finger movement, but also endurance and ability to focus. I would classify myself as a "burst" typer - pretty fast (about 460 characters per minute), but only for a short time. Because my typical typing operation is throwing out emails, short reports, jotting down notes and typing junks of code. I am lacking endurance when it comes to continouos typing. Sean Wrona certainly has everything it takes!
And then, of course, comfort is a coequal factor. Comfort means health! Because, when I look at Sean Wrona's shoulders I see a serious malposition. It might not originate from typing, but if it does than the comfort factor has been neglected.
So you are right! Improvement in comfort/health might justify an alternative keyboard layout, even if some speed is lost.
I feel like switching between the two isn't always 100% painless with a small lag time especially if I've been away from one or the other a few days while using the other one predominantly. But generally it's not too bad. The worst of it being typing on my laptop, messaging friends late at night and having a sudden forgetfulness which is easily overcome by just looking at the keyboard for a moment while typing till my hands remember.
It took me a long time to get there, though. As soon as I started learning dvorak I lost most of my proficiency in qwerty and for a long ramping up time measured in weeks, I would be terrible in both. Muscle memory is strong. I kept having to figure out which layout I was using at the muscle/nerve level. So learning a new layout, especially when you've been typing so long, will be a hit on your productivity and will be a lesson in humility (at least it was for me as I naively assumed it would be easy). I'm a touch typist who doesn't look at the actual keys much, if that helps.
The only thing that bothers me about typing in dvorak is that a lot of games or programs want to use WASD or hjkl to control a game or to move the cursor around. I have learned to use dvorak in vim without issue, but if I'm playing a roguelike (angband, for example) I'll switch back to qwerty to make it easier. On the plus side, it completely solved the problem I was having, which was pain in my pinky fingers and the side of my hand. That went away after I added dvorak and never came back.
I hit backspace with my ring finger because while it does require flexing the wrist a bit, it doesn't require any stretching or arm movement (on my hand). I play piano, and figuring out which fingers to use is a big deal to minimize stretching that can lead to tension.
So for anyone stretching their hand or fingers to reach keys, I'd suggest you give a longer finger a try. I touch type also, but never use my pinkies for anything on the number row.
Here's an experiment: stretch your hand out as wide as you can and try to move your fingers up and down. Doesn't work so great. Now leave your fingers relaxed, like they are laying on a ball and try the same motion. Much easier!
When I hit Backspace, my index finger is on the bottom edge of the 0 key, where 0, O and P intersect, because my index finger is shorter than my ring finger. While hitting Backspace, all my fingers are straight - no hand stretching. I do have pretty big hands, so that's a factor too. If I wanted to (I don't!) I could leave my index finger on J and reach backspace with my pinkie by twisting my wrist. Or I can leave it on J and stretch to reach BS with my ring finger, but that's an uncomfortable stretch that would put my head in an uproar within a day.
The motor cortex can be "reprogrammed" (that's a metaphor) pretty easily. You already have the muscle memories, you just need to lay in a new "key map" (that's also a metaphor.)
I'll give you an example of what's possible: I was playing ukulele and a friend of mine said something about playing left-handed (I'm a righty.) I paused, went into a light trance, "rewired" my motor skills from left to right and vice versa, and then opened my eyes, turned over the uke, and started playing left-handed. It took maybe twenty seconds.
(I'm not saying the above to show off. I'm not special. Anyone can do this, you just have to learn how to operate your own nervous system.)
Still, switching hands is super impressive. Were you already ambidextrous?
> Were you already ambidextrous?
Nope. I'm right-handed.
Subjectively, I "went in", went through the fingers one-by-one remapping the motions, then opened my eyes, turned over the ukulele, and started playing. It was a little rough compared to the other way for a few moments and then it tightened up and was the same quality. My friend who was watching me was pretty impressed too, but I swear it was easy.
Same thing with martial arts. A friend of mine ran a kung fu studio for many years. I came by to visit one day and participated in an intro class. I could "lay in" the movements he was teaching by imitation and then repeat them perfectly. Again, everyone was impressed and said things like, "I've never seen anyone learn so fast." but it wasn't really learning the way people do it. Just like a computer doesn't need to "learn" a program, it just loads and runs. The real learning already happened back in the day when I learned-to-learn using hypnosis.
It's pretty cool to be able to do this stuff, but as with everything, there are trade-offs: my problems now are boredom and loneliness. I lot of days I feel like a time-traveler from the future. If only people would get a clue and stop running around doing things the hard way...
In my experience with dvorak no after testing for two years I had the same wpm as qwerty. If you can touch type you have maxed out your speed, the tiny reduction in travel time for your fingers just doesn't add up to anything measurable.
> Is it possible to be proficient in two keyboard layouts at the same time?
I can switch between mac and pc layout no problems, but when I learned to touch type on dvorak I forgot how to do it with qwerty. When I used a friends computer with qwerty I was searching for every key with two fingers hovered over the keyboard like a raptor. Maybe others can do it but I defiantly couldn't and found it very embarrassing to not be able to touch type.
> If you get accustomed to a non-standard keyboard layout, isn't it a problem if you have to use some other computer.
Yes! You look like its your first day using a computer. Once I could touch type I didn't really care what the key caps said and its fairly easy to switch between dvorak and qwerty on windows and I don't use other peoples computers often so it wasn't a deal breaker.
The only benefit I seen from using dvorak was that no one else could use my computer, as soon as they realised it wasn't qwerty they ran.
It takes practice. I switched to Dvorak around 2001/2002, and my QWERTY typing speed dropped from 50-60wpm down to about 10. But I then spent a lot of time in offices and labs where I didn't have control over the computers, they were closer to "kiosk" systems (single-user). I could have added Dvorak, but it would have been a bit rude. If I forgot to change it back it would create confusion. If I had a keyboard shortcut to switch layouts, it could create confusion. And having to manually change it was too tedious to bother with, for me. So I just sucked it up and used Dvorak on my own workstation and at home, and QWERTY in the lab environments. I got my QWERTY speed back up to 50-60, and my Dvorak speed never dropped below 100.
Definitely NO, the reasons I have written down in another branch of this topic. Maybe your grandkids would have a chance to get rid from a layout with "typewriter" word on an upper row for some marketing goals.
> - Is it possible to be proficient in two keyboard layouts at the same time?
I know a guy who uses Programmer Dvorak for emacs and QWERTY for rest of his life. It is hard to understand why he is doing so but I know this is possible. Maybe he just wants to get rid of anything except emacs :)
> - If you get accustomed to a non-standard keyboard layout, isn't it a problem if you have to use some other computer (where you cannot change the layout) for whatever reason, for example in an Internet cafe?
Yes, typing QWERTY is a problem for me, but there are not any Internet cafes nowadays. I mean if I need to enter my email into somebody's device I will do it in one-finger mode while everybody thinks I am kidding. If it is needed to write more than one line on somebody's PC there are always some ways to negotiate.
I can no longer type in Querty, though I have no trouble using swipe keyboards on phones. I'm a faster typer now.
But the real benefit is that it no longer hurts to type. Typing in Querty hurt my hands after a while to the point where I couldn't type or use a mouse. Typing in Colemak fixed that, even though most of my work is on my non-ergonomic Macbook keyboard.
But the pain after a few hours typing was horrible, until I moved to Colemak.
"The name is a combination of HAL-9000, as a reference to the layout being designed by an AI. And, Dvorak as a gratitude to Mr. Dvorak for his dedication to the layouts optimizations process. The letter m in between is just to make it sound nicer. Or is it!?..."
I suppose the "m" is for MadRabbit, the author. Nice touch.
My first thought was that he had put "Colemak" into the word mix. (<https://colemak.com/>)
CarpalX is a linear parametrized model with configurable parameters and weights for different types of strokes, so you can weigh the effort. You on the otherhand have made measurements of your hand movement. Very impressive and valuable! In the explainer [2] you mention the datasets briefly skipping over specifics:
- Are the hand-movement metrics a measurement of the center of the hand from an video-based object detector?
- Do you have individual finger detection too (doubt it is very precise due to occlusion)? My guess is relative hand movement is a good approximation of overall finger movement though.
- Any typing effort model based on this data will not be applicable to ortholinear or alternative layout boards such as a split hand (Ergodox, Corne, Moonlander or Plank).
- You briefly mention removing any manually determined effort-based objectives (like those in CarpalX) from the genetic algorithm optimization. You say they are highly similar to the purely trigram data-driven approach, but I am still very curious to see the results with these objectives included.
I am not trying to put you down though: It is still very commendable to research a better layout for the most common staggered 60% lay-out. I have been keylogging myself for three years now and will definitely try out your approach though, looks very promising!
The symbol layers were copied from the Neo2 layout, which afaik were arranged manually.
Even though they can claim movement is decreased, having little finger hitting ctrl at the original location for hundreds to thousands of times is never a fun. It’s ergonomically bad.
500wpm apparently!
To me, it looks way too error prone (3D movement per key... wat) and english only.
I honestly wondered whether it was a stunt from Cards Against Humanity or The Onion.
But if not, you got me curious.
And there seem to be training manuals etc.
> QWERTY - 0% (baseline)
> Dvorak - +77%
> Colemak - +84%
> Workman - +101%
> Halmak - +134%
If author considers Colemak and Workman more efficient than Dvorak, I should not even to give this layout a try :) because I have tried these and can not report such experience. Probably it is because I am a piano player since 2016 and the fingers which are weak on average people are not that weak for me. Another rebuke to mention is that Halmak is not compatible with Programmer Dvorak. That idea of 7531902468 and three pairs of brackets, braces, parentheses (all paired symbols except diamond braces) is extremely handy while programming.
AFAIK, 7531902468 is also August's gem of mind, can your AI/HAL/whatever to design a layout with that row and at least [{}(=*)+] cluster untouched?
Another issue is the dataset used for evaluation here. If they used a sample of the regular English language, that's likely to differ from the sort of typing that a programmer does, not just in punctuation, or it's likely to differ for those who type other languages.
It's a shame the cost of learning a new layout is so high, because there's so much scope to optimise for each person, what they type, how they type.
Haven't you mean the cost of _creation_ a new layout? Learning is super easy for any non-QWERTY person because since you have managed to realize that default layout is bad - you have all freedoms possible to fix this obstruction. Sometimes the number of freedoms is too high, that's why it is so hard to create a layout which will be really used by anybody. What about learning a new layout per se - the cost of getting rid of QWERTY in my opinion is doubling for every year of touchtyping QWERTY or QWERTY-like layouts. Layout is something that you will be carrying in all your muscles for the rest of your life but after your first switch you will not consider switching layout that hard especially if you really love your new one.
> Another issue is the dataset used for evaluation here.
A beauty of a layout is kind of a beauty of a girl - it must be measured by heart, not by numbers. Layout is something that you will be carrying in all your muscles for the rest of your life. I do not respect any attempts to fix QWERTY (like Colemak and Workman) because QWERTY is so broken that there are no reasons to fix it (coining more and more of fancy metrics usually) except if QWERTY sits too deep in your muscles. And there is not much difference in using three rows of symbols when somebody either programs or writes a letter to his lovely ones.
> You make a good point about finger strength, not something I had considered.
Maybe yes but maybe I haven't disclose my opinion fully. I used to touchtype Dvorak way before some musical instruments gave additional strength for my fingers and I do not remember any desire to rearrange any letters.
There are lots researches going on for enhancing QWERTY, based on rearranging as few keys as possible. They usually are based on: the datasets, somebody's opinions about finger strength, some ideas of alternation of fingers or hands, now AI has joined to the army of fancy metrics. I do not respect any attempts to fix QWERTY (like Colemak and Workman) because QWERTY is so broken that there is no good reason to fix it, except of for users who have QWERTY sitting too deep in their muscle level.
The Halmak's idea of punctuation in the middle of the board is really interesting, I haven't see this idea on any layout I have tried. But my message is that layouts must be created not by complicated calculation's call but by heart's call.
This reminds of my situation. I'm not a piano player, and I used to type with basically two fingers (plus thumb for space and pinky for ctrl/alt/shift). Since I've started trying to use more fingers, I've noticed that using a traditional, non split keyboard, is more painful, because it requires me to twist my wrists sideways. With my old way of typing, I would move the whole hand instead, so the wrist angle would stay roughly the same.
I have never used a split (which almost always is an ortholinear and not requires any twist) but my experience tells me than I am twisting not a wrist but only one finger, while 9 others just resting on a home row. I do not understand how it is possible to touchtype while you are twisting your wrists because if your index fingers lose the home row - you have to look at kbd to find it again.
BTW I have noticed that touchtyping on laptop may be harder than on dedicated kbd because comfortable position of display may require an uncomfortable position of wrists and touchpad (if enabled) does even bigger mess.
The only way I've ever used a laptop with a position of the display kinda comfortable while also being able to type was with a bed tablet [0]. I've always actively avoided laptops with numpads, so the keyboard was always well-centered, at least as much as a desktop one, so no issue with staying on finding the home row.
[0] Something like this: https://www.amazon.fr/Cooper-ordinateur-portable-r%C3%A9glab...
I've been using this (almost) and had forgotten it was from the programmer's Dvorak, but surely it must be:
7531980246
Surely programmers start counting from 0 and use 0 more often than 8.
So interesting that me and you are using the same argumentation for different positions of all even digits. Maybe it is just a matter of habit, for example my layout for my mother language is heavy modified for some reasons I do not want to put on debate.
75319 80246
I have two thumbs. Why not use them? My right spacebar is space, my left is enter. I have never done anything else so profoundly productive to my computer.
I've got Space, Bk Space, Shift/(, and Alt on left thumb cluster; Enter, Tab, Shift/), and Esc/Ctrl on the right thumb cluster. Pinkies have far less to do now.
I really should do something better with the thumb cluster, particularly that third easy to reach key.
I have Win/Esc left of 'a' and Win/' right of ';', and Ctl/z and Ctl// in the z// positions. The whole lower row is basically unused. Win because I use i3wm and use Win a lot for window navigation.
` 1 2 3 4 5 6 7 8 9 0 - =
c l r b z ; q u d j [ ] \
s h n t , . a e o i ' \n
f m v w ? y g x k p
11 7 13 14 13 13 9 19 , 45 | 55
Symmetry: 61 Evenness: 81
Overheads: F:37%, H:12%, S:9%But at some point I realized that I now have to adapt all the bindings - without a solution to this, I'm not willing to try out different stuff. I need vi to work out of the box, especially because I also use the vi-bindings in tmux, zsh and firefox. Sigh.
Looks really interesting though.
At the most basic level, you could simply have the keyboard layout change whenever Ctrl, Alt, or Meta/Super is pressed...
In the end I switched back to qwerty for 3 reasons:
1. keyboard shortcuts ending up in weird places and behaving inconsistently between programs (at least on Windows, some of them seemed to respond to the physical key rather than the letter).
1b. so for games i'd be used to WASD but WASD ended up in different places so I'd either have to remap the keys in every game, or switch to QWERTY while using them. Same with browsers, the Ctrl+N and Ctrl+T ended up in weird places I somehow never got used to.
2. different preferences in terms of how my hands work and how comfortable each key is to access. (e.g. i'd rather move up a row than reach to the middle of the keyboard. Minor but it adds up with use.)
3. frequently switching devices. I think there was no QGMLWY support for MacOS (but I also recall rearranging my keyboard keys -- perhaps I had switched to Colemak at that point because it was built in.)
[0] http://mkweb.bcgsc.ca/carpalx/
Also somewhat related, regarding programming comfort specifically, something I thought was cool is swapping the numbers and symbols in Vim, so you can access symbols without Shift. I don't use Vim but I kind of wish there was a system-wide toggle for that kind of thing. (Maybe with AutoHotKey, and then porting it to HammerSpoon or whatever the cross-platform one was called :)
I have a Moonlander and have it totally tricked out so I have no problem with qwerty hotkey locations. It's basically just the time delta to grind a new layout. When I learned Dvorak around 2009, it took me about a month to reach parity. It might be even faster this time around since I'm constantly messing with my layout with small tweaks and having to relearn muscle memory.
Also if you aren't using some kind of layer scheme to map things like ~./()= up/down/left/right to home keys, you are really missing out :p
In Halmak, the vowels are clustered around the right hand rather than the left. Like BÉPO, the punctuation is reachable with index fingers. There is some difference with the home row consonants, but otherwise this looks like an interesting layout.
Although BÉPO is a French layout, I’ve found it works well for English – despite giving space to accented characters that are not often used in English.
[0] https://bepo.fr/wiki/Accueil (in French) [1] https://en.wikipedia.org/wiki/B%C3%89PO
I've managed to get up to around 50 wpm coming from 75 wpm with normal qwerty without touch typing (just 6 finger freestyle). I've still some time to go to get over my initial typing speed. A really cool thing about colemak for me is replacing caps lock with backspace, which in itself is getting rid of so much finger/hand-travel, but that can obviously also easily be hacked into qwerty as well.
To this point, I don't know if I would recommend switching to anyone for the following reasons:
- You will slowly use muscle memory of normal qwerty, which can become quite awkward whenever you forced to use another computer. It's not like you cannot type it anymore, but you will be quite slow and inaccurate when typing. However, these situation barely exists for me in everyday life.
- Learning the new layout is quite a feat that takes time and daily dedication. I decided early on to use the new layout in my job (frontend dev) which definitely speed up adoption for me but also slowed me down considerably for some days. Even then it will take quite some time to get back to your initial speed.
- Depending on your profession, typing speed may not at all be a bottle neck. This is true for me as a software developer, where you spend the most time thinking about how to solve problem before typing them in small chunks.
- Wrt touch-typing, I weirdly found out for myself that it can actually cause some wrist and hand strain rather than protect from it. To me it feels that by using a lot more muscles to type it also increases chance of wear-and-tear. This is especially true for the pinkies for me, which I never used much for typing before.
Good thing about colemak wrt keyboard shortcuts is that it only changes letters (no symbols, punctuation, etc.) and then as few letters as possible to still achieve the best finger travel. In practice that means that many shortcuts stay the same, e.g. the common ones as CTRL-Z/X/C/A/Q/W etc.
I sort of did the switch as a self-experiment after being intrigued by all the science behind optimized layouts, and also to challenge myself to learn a new skill for the new year. I wanted to learn touch typing after decades of freestyle typing which I increasingly noticed was very error-prone. I figured that learning a new keyboard layout at the same time is a very good opportunity.
Not sure if I will stick to colemak permanently but so far it's still fun to try to gradually improve on it.
Switching between dvorak and a qwerty keyboard was impossible even tho I knew how to touch type on both.
The big win from my dvorak experiment was learning that when coding typing speed doesn't matter. I spend more time thinking about my code than implementing it, removing shortened non descriptive variables or functions with long winded names has improved my productivity immensely.
The main difference with other layouts is that I take finger length into account. (Eg. the pinky is usually much shorter than your ring finger, so putting them all on the same row means your ring finger need to curl up more and less relaxed). Also tried to reduce changes to the most common shortcuts we (programmers) use.
Feedback welcome!
I understand "keyboard layout" often means just changing the position of the keys on existing hardware, but perhaps we shouldn't be so limited, particularly when we can experiment with alternative layouts on touch devices.
Improved comfort is the primary purpose.
(You can remap, but you must also remap your muscle memory)
The only problem is that if you also use a non-latin layout, it will do a remapping to the latin one for shortcuts. This latin layout was always qwerty under macOS. So, in the end, I've built with Ukulele a custom layout and that was it.
Lately, I sometimes think about going back to QWERTY just to simplify my life; mouse avoidance has been more important to me than keyboard layout switching, I think. But at this point, it would be as much a pain to go back as it was to switch in the first place.
⌘