Has anyone seen someone use a great algorithm for layout selection that actually accounts for the more complete range of user typing?
For example, everyone makes typos and corrects them with a backspace or mod+backspace for the whole word, but this is never accounted for, so a very frequent Backspace key is very far away. Using a post-typo text corpus ignores this reality
Or allowing home row mods in a layout, what would be the algorithmic maximum across all the typing metrics?
Or allowing numbers to be in play as well, maybe hiding then behind a modifier, but in the home row or aligned in a numpad-like way on under your right hand
Or would it be better to type capitalized letters with a one-tap Shift or with a home row mod Shift? Or maybe a quick double tap on the same letter is more efficient?
Given the complexity of switching to a new layout, there is no great reason to keep all the non-alpha mistakes of the old qwerty design, the algorithms should run free from those limitations to get us to the future perfection
re: backspace etc. i've recently used dvorak+karabiner+goku on a mac to make homerow mod keys, based on gabriel-gardner's template. others have used QMK keyboards, or kmonad etc. on linux and windows
Sure, all good ideas in the meantime (and you could use right-thumb cmd/alt modifier or holdSpace as a vim-like cursor mod with the home keys as cursor and with H as backspace and G and delete and I as Enter to free your pinky (qwerty-layout))
But then dvorak is obviously not the best layout for this since it wasn't designed with all of that in mind. And neither were the home row mods themselves, for example, maybe only Shift is useful in the home row, and the others aren't used frequently enough (or maybe it's better to have numpad-mod key on the home row instead of the Windows key).
So I guess the focus of the layout collaboration effort could be on improving the algo/data, but instead we get a bunch of new layouts that only tackle a small(er)(and different) part of the problem without much of an improvement over he previous solutions (and, more importantly, with no good way to compare them). That would only leave you with the black magic of tweaking algo weights in the end :-)
P.S.
There is also https://github.com/jtroo/kanata alternative to kmonad
And re. homerow mod keys, it seems that there is an even better approach not relying on timings (which I think are impossible to resolve with full accuracy, though with per-key timings you can get pretty close), but that's not implementable within Karabiner, so someone had a homebrew Swift solution I haven't tried
But it's a pinky lateral stretch, maybe AltGr+H (win/qwerty) that use your much stronger thumb+index fingers and also allow to put Delete conveniently close is better? What would the algo say? Maybe it's also not great since it's a lateral stretch, so a better alternative would be something else where you lift your fingers?
> everyone makes typos and corrects them with a backspace or mod+backspace for the whole word, but this is never accounted for, so a very frequent Backspace key is very far away.
This! I use a variant of the classic typematrix layout [0], where there are two huge backspace keys right in the middle of the keyboard, one for each index finger. Below them, huge enter and tab keys (that one, mapped to ESC inside vim).
I used key combos [1] in QMK to map various keys to home and top row combos [2]. For example in QWERTY the combo of SD together is backspace, DF is tab, WE is escape, etc.
I also make the spacebar and key to the right of the spacebar (usually Alt) to a switch layers when held down with a thumb. This turns the left side of the board into a number [3] and symbol [4] like pad.
Advantage I find is it's much less motion and finger stress and is easily replicated on any keyboard that supports QMK while not QWERTY specific.
The author seems to want to use symbols instead of words on keys, so I feel I have to inform them that “^” is not the proper symbol for the “Control” key; rather, the standardized (ISO 9995-7) symbol is “⎈” (2388, HELM SYMBOL).
Also, a less Mac-specific symbol than “⌘” for the Meta/Command key might be “◇” (25C7, WHITE DIAMOND), which has been used ever since the old Sun keyboards.
> The author seems to want to use symbols instead of words on keys, so I feel I have to inform them that “^” is not the proper symbol for the “Control” key; rather, the standardized (ISO 9995-7) symbol is “⎈” (2388, HELM SYMBOL).
I don't think it very much matters what the "proper" symbol is if no one uses it and almost no one knows about it. Symbols are supposed to be convey meaning and part of what lends that meaning to a symbol is actual usage. Apple has successfully done that with at least several of these symbols [1], which is quite evident in that you knew what it meant and so do many others, while I've never seen the "standard" being used in literally any context.
Obviously I alone do not make up the general consensus, and perhaps in certain fields the usage of these symbols is widespread, but if it were the general consensus, people would actually be using these symbols instead of the ones you're suggesting aren't "proper."
> I don't think it very much matters what the "proper" symbol is if no one uses it and almost no one knows about it.
Well, they used the ⎇ symbol for the “Alt” key, which is also very rare, in my experience. But it is the standardized symbol. So I thought I’d contribute information about what the standardized symbols are, in the cases where other symbols were used.
You sound a bit like a language descriptivist, arguing that any word or spelling is OK so long as it is understood. I personally prefer standardized spelling and words being a bit more strict in their definitions. And, similarly, I give some weight to an ISO standard for keybord symbols, since such a standard does exist (especially when the author actually used one of those symbols already).
I am also loath to use company-specific words or symbols; I prefer neutral terms which does not have quite as much drift. I.e. I try not to “Google” or “Xerox” things. Likewise, I would avoid using a keyboard symbol exclusively used by Apple, since another symbol exists which is used by others.
> Well, they used the ⎇ symbol for the “Alt” key, which is also very rare
No, they used the ⌥ symbol, which is the option/alt key symbol also established by Apple. All of the symbols they used for their keyboard layout are Apple's symbols for a particular key.
> I personally prefer standardized spelling and words being a bit more strict in their definitions.
In order for something to be a standard it actually has to be used. A dictionary doesn't make up its own words then add it to the dictionary, then tries to tell everyone that's what they have to use. They add words that they find to be broadly used by the general public. Countries like France try to control this sort of thing, but I don't think it works all that well. People ultimately decide the language they use, especially when it comes to new phenomena.
> And, similarly, I give some weight to an ISO standard for keybord symbols, since such a standard does exist (especially when the author actually used one of those symbols already).
The author is using the symbols established by Apple. Any overlap with the ISO standard is coincidence.
> I am also loath to use company-specific words or symbols
What symbols aren't company-specific when it comes to symbols on keyboards? You even suggested in your original post to use "◇" as one of the symbols which is, shocker, company-specific. I've at least used a keyboard with such a symbol on it, but it is not used at all on keyboards today. The symbol they use in the ISO spec you're pointing towards is the "⌘." Are you sure you don't just have a distaste for Apple?
> Likewise, I would avoid using a keyboard symbol exclusively used by Apple, since another symbol exists which is used by others.
It's not used by others, though. It's not used on MacOS, Windows, Linux, or BSD in any of its menus. It's not printed on keyboards. It's not known by anyone but someone looking up ISO standards for keyboard layouts, which isn't even the established standard for keyboard layouts in a lot of the world!
Seems like a strange thing to get caught up on. This is the Mac Standard that has been around since the mid 80s. It’s well understood, far moreso than what you suggest.
Regardless, that’s not even what the article is about. The modifier keys have not been rearranged, just the characters.
I'd suggest to try Miryoku [1] on an ergonomic (split) keyboard running QMK, ZMK or KMK firmware. It's a very well though out layout using only 36 keys.
"Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout."
Miryoku has a ton of great ideas. The biggest problem I assume is that switching to a standard keyboard, when you can't plug your own, becomes a pain. Same applies to the layout from the article, of course.
YMMV but I was surprised to find the opposite. Never been able to consistently touch-type properly before, learned it through switching to a corne with a miryoku-inspired layout and I now type better on the old laptop keyboard (which is not that often) than I did before.
> I learned from guitar that the lift of the finger can be easier on it than lateral stretches
The energy you give to the string is hundreds of times more than the energy you give to the kbd (do not consider this as an exaggeration because I'm a bass player). Also lateral stretching of your pointer finger is something easy to train, I used to have that experience while learning a piano playing.
I don't understand why do anybody invent a new kbd layout after Dvorak's work? He gifted us a beautiful set of aoeui layouts. Just get used to it and help with this information to your friends who are willing to get rid of Qwerty, that's it.
Unfortunately dvorak didn’t have modern technology and algorithms to design his layout. Colemak is the modern successor and is installed on many computers already, unlike other dvorak alternatives (though not as common dvorak unfortunately).
> Unfortunately dvorak didn’t have modern technology and algorithms to design his layout.
I am fond of keyboard layouts so I beg you to name any works proving your point. Because Colemak and Workman are layouts for Ctrl-C Ctrl-V folks while August Dvorak was not bonded with need to follow somebody's muscular memory.
Worse, he Designed DVORAK for use in typewriters to keep them from jamming! (Vowels on the left ) colemak on the other hand used algorithms to put keys in the most useful places, while still maintaining muscle memory for copy paste and cut. It is very easy to look up comparisons between DVORAK and Colemak to see that Colemack is objectively more efficient.
I use DVORAK on my phone however because with two finger thumb typing and no ability to roll your letters , Having the Vowels under One thumb is more efficient.
You can’t just hand wave away the benefits of the ctrl-z/x/c/v which cannot be remapped. Each of these incredibly common and useful shortcuts must be fully abandoned or used with both hands in Dvorak, causing the right hand to continually need to find the mouse again.
I wouldn’t consider coding a keyboard layout with a lisp-esque language “easy”. Luckily, there are tools for humans, such as Ukulele [0] for macOS, or MSKLC [1] for Windows.
Since you seem interested, may I spur you in a perhaps-not-thought-of direction?
I’m currently working on a hand-wired board. Since you mention pcb development, I don’t feel that hand-wiring is too much work to mention. The soldering and electronics work is trivial (nothing small). I was attracted because it allows me to move the customization into the 3rd dimension with a Dactyl-manuform clone (I’ve actually hacked some closure together).
I’ll make sure to post where appropriate once I’m finished. I’m basically hand-wiring a corne (CRKBD, so there are guides available) only I’ve created a custom 3D manifold fit to my hand.
The first thing I changed in my custom layout was to get rid of the number row.
Having all the numbers as a toggleable numpad (but not really numpad because numpad is archaic and dumb) under the left hand has been so good. I'm never going back.
Miryoku does the same thing but the orientation is flipped vertically with the 0 below the center column, which is how it’s done on a full sized keyboard as well.
Miryoku basically has the numpad, which I still think is dumb to be quite frank since the numpad was only made like this for archaic historical reasons.
Having the 0 on the thumb is quite a good choice though. As long as one doesn't have to move outside +-1 of the home row of keys (like one has to with numpad).
This is pretty much what the Kinesis advantage has out of the box, although 0 is moved to a thumb key. I like it with the non-staggered layout there but on a normal (laptop) keyboard it's not as good IMO.
When somebody reminds me about keyboard layouts, I think about switching and wonder why didn't I do it yet, since I hate inefficiency so much. I think about it for several minutes, then I remember that I'm a vim user. Fuck.
I'm a (n)vim user as well and have been using Colemak for some time now. Since I couldn't get used to the weirdly arranged hjkl layout with Colemak, I've been using some remaps that make everything very nice to use on a Colemak layout. Feel free to message for more information.
Did you remap just hjkl or anything else? I see that there even are some vim-colemak plugins, but honestly just the idea that I'll have to think about it kinda intimidates me. Almost every key in vim has a meaning, most of them are kinda semantic (webdrtfi...), most used are on the home row too, and it's not like I think about letters anyway (funnily, yesterday I use Ctrl+y & Ctrl+e, which I didn't use for a very long time and honestly didn't even remember them, but my fingers somehow did). I feel okay about the idea that I'll have to learn to type again, but learning to use vim again, which is specifically tuned for qwerty, that feels a bit too much.
is exactly why the following is of little use and is a design mistake for heavily used keybinds
>Almost every key in vim has a meaning, most of them are kinda semantic (webdrtfi...),
Which unfortunately has persisted for ages reminding us yet again how defaults matter :(
(and due to the high frequency of their use the arrow keys shouldn't require you to move a finger off the home keys, so jkl; is better than hjkl; (in qwerty))
I'm also a vim user and I recently switched to Colemak-DH, but I didn't remap anything. It took a long time to get used to the new vim layout (longer than the time it took to learn Colemak itself), but now that I'm comfortable with it, I can be fluent without any remaps.
Don’t swap to a new layout, it’s too much work to learn. Instead, swap your K and E keys. E being common but not being in your home row is responsible for a significant chunk of the inefficiency of the QWERTY layout and even if you stop here you’ve already made a huge improvement. You’ll make typos involving K and E for a few days but you’ll adapt very quickly without ever having to go through the “learning a layout” process.
(Once you’re comfortable and not mixing them them up, if you still want more, swap J and O, then F and T, then D and A, then G and N. At that point it’s probably not worth making any more swaps, but if you want to continue you can read the article I got this information from: http://mkweb.bcgsc.ca/carpalx/?partial_optimization)
This reminds me of the Tarmak transitional layouts for learning Colemak. Tarmak has four intermediary layouts between QWERTY and Colemak, each changing a few (3-4) keys at a time. Tarmak #1 gets the N and E keys in the home row, for instance.
I ended up going cold turkey Colemak, but for those who are interested in learning a new layout Tarmak seems like an interesting way to make gradual progress without totally decimating your typing speed. Plus, it leads into a well-established layout instead of resulting in a bespoke layout you have to work on yourself.
Another type of change to consider is flipping shift for an individual key:
semicolon/colon (if your language isn’t semicolon terminated, you probably type colon way more)
hyphen/underscore (if your language doesn’t have arrow functions or kebab casing, you probably type underscore a lot more)
singlequote/doublequote (the preeminent style guide for your language probably has an opinion on which quote character to use; that should be your non-shift character)
pipe/backslash (pipe operators are heavily used in some languages, but escaping characters is common too)
The first shift swap I tried was actually tilde/backtick, but I didn’t like it - turns out I use string templating in JS more often than I need to reference the home directory.
Outside of direct swaps, one related change I have made recently is using Karabiner to set up custom commands for “modifier key pressed and released alone”. Tap left shift by itself for an opening parenthesis, right shift for closing parenthesis. Command does bracket and option does braces in a similar fashion. I’m liking it so far, once I get familiar enough that I’m not using the old way I’ll remap the original [/{ and ]/} keys to some other symbols - whichever of %^*#!@$& I use most often, probably.
In general though I would highly encourage anyone who types for a living to consider making incremental key swaps instead of changing keyboard layouts. For Mac there is Ukelele (GUI, generates new layout file your OS uses) or Karabiner (config file, daemon intercepts keystrokes and carries out substitutions - more power but you have to be okay with “intercepts keystrokes”). For Linux the functionality is there with localectl and loadkeys, and there’s probably many utilities built on top of that. For Windows there is SharpKeys, PowerToys, and AutoHotKeys. (I don’t use Linux or Windows day to day, there may be better options here).
I've relearnt keyboard layouts once and know I can do it, but I also remember how long it took to get fast on the new one and how I don't want to do that again.
Not to mention all the other issues with getting your new fancy layout to work in every operating system and app and then being really thrown when you try to type on any other "normal" person's keyboard for a minute.
It's already hard enough spending 15 minutes in every new computer game to change the default WASD keybinds to the superior ESDF.
I use several keyboard layouts and styles in parallel. Not a coice but I am forced. It is a bad thing having so many variants. Different number of keys, layouts (laptops, desktops), national variety. I can say that I am almost as quick in typing as I was when I was less experienced but used a single layout (full size international english 104 keys, Windows). All and every changes decrease the efficiency!
(role of Fn keys, placement of Fn switch key, shape of Enter, size and positioning of cursor keys, placement of simple symbols like slash/backslash, greater/smaller, @, #, [, ], `, etc., availability and placement of Ins/Del/Home/End, all can change just a bit with a new computer/keyboard system. All this without 'creative' regrouping or arrangement of the physical keys itself (like MS ergonomic keyboard). If we add the complication of shortcuts where keyboard plays an essential role and which changes constantly from one approach to an other inside and accross software (not improving! just changing.) we can see that the problem is too big already, no need to aggravate the situation further along questionable and marginal efficiency claims. There are other parts of personal computing that can use improvements if someone is bored.)
We have more than enough keyboard layouts already. Each new one reduces efficiency for those use keyboards already, not increases.
What should be done is to reduce the number, not to increase.
EDIT: Due to terminology differences I missed that my point here was indeed taken into account with this layout. Super excited to see this!
---
I think most of the efficiency functions that these kinds of efforts tend to optimize for miss the most important factor.
I've thought about this a fair amount drawing on my experience switching to dvorak 15 or so years ago and not getting the typing speed increase I was hoping for, and also from having a close friend with a PhD in piano performance. There's one thing that I've never seen taken into account by these kind of keyboard layout optimization efforts that pianists understand is very important, and that is runs. Most people seem to focus on individual finger movements, a meaningful component to be sure. But I think there's still a lot that could be gained from optimizing a layout for runs. Runs are sequences where the fingers are depressed in sequential order across the hand (possibly skipping one or more fingers). They can be played (typed) not so much by isolating individual finger movements, but by getting the hand into the correct shape in a single movement and then actually depressing keys with a single rotation of the arm/hand/wrist.
The interesting thing about optimizing for runs is that it's directly opposed to the alternating hand optimization that the dvorak layout uses. I would love to see some exploration in this area and think it could yield meaningful speedups. Unfortunately, getting proficient with a layout takes a long enough time that I'm not super likely to take the project on myself.
The article describes how he created a layout based on optimizing 'rolls', which is (I think) the same as piano runs as you describe: striking keys in sequential order across the hand. So for example 'the', 'you', 'in', and 'as' are all struck with adjacent fingers, just as you would play a piano or (as he describes) drum your fingers on a table.
He very much considers this important factor as the critical component of the layout he describes.
Oh good point, my bad. I was skimming for "runs" (more of a piano term) and missed the bits about "rolls". I also wasn't aware that this is a thing in tetris. Very cool!
I would actually disagree with hand alternation as a goal. I think optimizing first for runs (see my other comment in this thread about runs for a description) would actually allow longer periods of relaxation. If you alternate hands each key press I have the feeling that you could actually decrease the opportunity for relaxation (in the case of a fast enough typist) because as soon as one hand is done you only have the time span of a single key press before it has to activate again. However, if you can type a run of 3-4 keys with a single hand using a single rotation of the wrist, and then alternate between left hand runs and right hand runs, I think you could allow even longer periods of relaxation than single-key alternation can give.
This is incorrect. Rotating wrists or doing other rolling movements should be avoided because it can trigger RSI.
Also it's not beneficial to trade away regular shorter rest periods for a longer rest period. This is true for many activities that can cause RSI. A gentle alternation of activity and rest is recommended instead of long strikes.
Hard disagree to “Just use Dvorak”. The most common keyboard shortcuts all require two hands in Dvorak meaning that if you’re used to ctrl-c/v, you must remove your hand from the mouse for each one.
Colemak fixes this issue completely by keeping the Z,X,C,V the same as in QWERTY
Keyboard ergonomics is mostly contributed by factors other than the layout.
Switching to a different layout has a lot of complications:
- Steep learning curve: it might take months or even years to reach typing speeds of QWERTY
- Low software support: it's tricky to switch to a custom layout everywhere
Some apps and games might read physical keycodes and the only workaround is to use the keyboard with custom firmware (e.g. QMK[1])
If you're willing to improve keyboard ergonomics, check out ergonomic mechanical keyboards. Most popular row-staggered layout is horrible for hand ergonomics and it only can be fixed with a keyboard that has a different physical key layout. r/ErgoMechKeyboards[2] is a good starting point.
67 comments
[ 2.6 ms ] story [ 92.4 ms ] threadFor example, everyone makes typos and corrects them with a backspace or mod+backspace for the whole word, but this is never accounted for, so a very frequent Backspace key is very far away. Using a post-typo text corpus ignores this reality
Or allowing home row mods in a layout, what would be the algorithmic maximum across all the typing metrics?
Or allowing numbers to be in play as well, maybe hiding then behind a modifier, but in the home row or aligned in a numpad-like way on under your right hand
Or would it be better to type capitalized letters with a one-tap Shift or with a home row mod Shift? Or maybe a quick double tap on the same letter is more efficient?
Given the complexity of switching to a new layout, there is no great reason to keep all the non-alpha mistakes of the old qwerty design, the algorithms should run free from those limitations to get us to the future perfection
But then dvorak is obviously not the best layout for this since it wasn't designed with all of that in mind. And neither were the home row mods themselves, for example, maybe only Shift is useful in the home row, and the others aren't used frequently enough (or maybe it's better to have numpad-mod key on the home row instead of the Windows key).
So I guess the focus of the layout collaboration effort could be on improving the algo/data, but instead we get a bunch of new layouts that only tackle a small(er)(and different) part of the problem without much of an improvement over he previous solutions (and, more importantly, with no good way to compare them). That would only leave you with the black magic of tweaking algo weights in the end :-)
P.S. There is also https://github.com/jtroo/kanata alternative to kmonad And re. homerow mod keys, it seems that there is an even better approach not relying on timings (which I think are impossible to resolve with full accuracy, though with per-key timings you can get pretty close), but that's not implementable within Karabiner, so someone had a homebrew Swift solution I haven't tried
This! I use a variant of the classic typematrix layout [0], where there are two huge backspace keys right in the middle of the keyboard, one for each index finger. Below them, huge enter and tab keys (that one, mapped to ESC inside vim).
[0] https://www.google.com/search?q=typematrix+2020&tbm=isch
I also make the spacebar and key to the right of the spacebar (usually Alt) to a switch layers when held down with a thumb. This turns the left side of the board into a number [3] and symbol [4] like pad.
Advantage I find is it's much less motion and finger stress and is easily replicated on any keyboard that supports QMK while not QWERTY specific.
1. https://qmk.github.io/qmk_mkdocs/master/en/feature_combo/
2. https://github.com/ecliptik/qmk_firmware/blob/d79931185c2315...
3. https://github.com/ecliptik/qmk_firmware/blob/d79931185c2315...
4. https://github.com/ecliptik/qmk_firmware/blob/d79931185c2315...
Also, a less Mac-specific symbol than “⌘” for the Meta/Command key might be “◇” (25C7, WHITE DIAMOND), which has been used ever since the old Sun keyboards.
I don't think it very much matters what the "proper" symbol is if no one uses it and almost no one knows about it. Symbols are supposed to be convey meaning and part of what lends that meaning to a symbol is actual usage. Apple has successfully done that with at least several of these symbols [1], which is quite evident in that you knew what it meant and so do many others, while I've never seen the "standard" being used in literally any context.
Obviously I alone do not make up the general consensus, and perhaps in certain fields the usage of these symbols is widespread, but if it were the general consensus, people would actually be using these symbols instead of the ones you're suggesting aren't "proper."
[1] https://support.apple.com/guide/mac-help/what-are-those-symb...
Well, they used the ⎇ symbol for the “Alt” key, which is also very rare, in my experience. But it is the standardized symbol. So I thought I’d contribute information about what the standardized symbols are, in the cases where other symbols were used.
You sound a bit like a language descriptivist, arguing that any word or spelling is OK so long as it is understood. I personally prefer standardized spelling and words being a bit more strict in their definitions. And, similarly, I give some weight to an ISO standard for keybord symbols, since such a standard does exist (especially when the author actually used one of those symbols already).
I am also loath to use company-specific words or symbols; I prefer neutral terms which does not have quite as much drift. I.e. I try not to “Google” or “Xerox” things. Likewise, I would avoid using a keyboard symbol exclusively used by Apple, since another symbol exists which is used by others.
No, they used the ⌥ symbol, which is the option/alt key symbol also established by Apple. All of the symbols they used for their keyboard layout are Apple's symbols for a particular key.
> I personally prefer standardized spelling and words being a bit more strict in their definitions.
In order for something to be a standard it actually has to be used. A dictionary doesn't make up its own words then add it to the dictionary, then tries to tell everyone that's what they have to use. They add words that they find to be broadly used by the general public. Countries like France try to control this sort of thing, but I don't think it works all that well. People ultimately decide the language they use, especially when it comes to new phenomena.
> And, similarly, I give some weight to an ISO standard for keybord symbols, since such a standard does exist (especially when the author actually used one of those symbols already).
The author is using the symbols established by Apple. Any overlap with the ISO standard is coincidence.
> I am also loath to use company-specific words or symbols
What symbols aren't company-specific when it comes to symbols on keyboards? You even suggested in your original post to use "◇" as one of the symbols which is, shocker, company-specific. I've at least used a keyboard with such a symbol on it, but it is not used at all on keyboards today. The symbol they use in the ISO spec you're pointing towards is the "⌘." Are you sure you don't just have a distaste for Apple?
> Likewise, I would avoid using a keyboard symbol exclusively used by Apple, since another symbol exists which is used by others.
It's not used by others, though. It's not used on MacOS, Windows, Linux, or BSD in any of its menus. It's not printed on keyboards. It's not known by anyone but someone looking up ISO standards for keyboard layouts, which isn't even the established standard for keyboard layouts in a lot of the world!
Fair enough; I did not notice the difference.
> which is, shocker, company-specific.
I would not have proposed it if I thought it was.
> It's not printed on keyboards.
It’s printed on some keyboards: https://hhkeyboard.us/hhkb/pro-classic/sku/cg01000-296201
Regardless, that’s not even what the article is about. The modifier keys have not been rearranged, just the characters.
"Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout."
[1] https://github.com/manna-harbour/miryoku
The energy you give to the string is hundreds of times more than the energy you give to the kbd (do not consider this as an exaggeration because I'm a bass player). Also lateral stretching of your pointer finger is something easy to train, I used to have that experience while learning a piano playing.
I don't understand why do anybody invent a new kbd layout after Dvorak's work? He gifted us a beautiful set of aoeui layouts. Just get used to it and help with this information to your friends who are willing to get rid of Qwerty, that's it.
I am fond of keyboard layouts so I beg you to name any works proving your point. Because Colemak and Workman are layouts for Ctrl-C Ctrl-V folks while August Dvorak was not bonded with need to follow somebody's muscular memory.
I use DVORAK on my phone however because with two finger thumb typing and no ability to roll your letters , Having the Vowels under One thumb is more efficient.
[0]: https://software.sil.org/ukelele/ [1]: https://www.microsoft.com/en-us/download/details.aspx?id=102...
I’m currently working on a hand-wired board. Since you mention pcb development, I don’t feel that hand-wiring is too much work to mention. The soldering and electronics work is trivial (nothing small). I was attracted because it allows me to move the customization into the 3rd dimension with a Dactyl-manuform clone (I’ve actually hacked some closure together).
I’ll make sure to post where appropriate once I’m finished. I’m basically hand-wiring a corne (CRKBD, so there are guides available) only I’ve created a custom 3D manifold fit to my hand.
Having all the numbers as a toggleable numpad (but not really numpad because numpad is archaic and dumb) under the left hand has been so good. I'm never going back.
I use this layout:
Having the 0 on the thumb is quite a good choice though. As long as one doesn't have to move outside +-1 of the home row of keys (like one has to with numpad).
> it's not like I think about letters anyway
is exactly why the following is of little use and is a design mistake for heavily used keybinds
>Almost every key in vim has a meaning, most of them are kinda semantic (webdrtfi...),
Which unfortunately has persisted for ages reminding us yet again how defaults matter :(
(and due to the high frequency of their use the arrow keys shouldn't require you to move a finger off the home keys, so jkl; is better than hjkl; (in qwerty))
Not wrong there my Kinesis advantage cost more to ship to nz than to buy. It's still cheaper than buying from the local importer.
(Once you’re comfortable and not mixing them them up, if you still want more, swap J and O, then F and T, then D and A, then G and N. At that point it’s probably not worth making any more swaps, but if you want to continue you can read the article I got this information from: http://mkweb.bcgsc.ca/carpalx/?partial_optimization)
I ended up going cold turkey Colemak, but for those who are interested in learning a new layout Tarmak seems like an interesting way to make gradual progress without totally decimating your typing speed. Plus, it leads into a well-established layout instead of resulting in a bespoke layout you have to work on yourself.
semicolon/colon (if your language isn’t semicolon terminated, you probably type colon way more)
hyphen/underscore (if your language doesn’t have arrow functions or kebab casing, you probably type underscore a lot more)
singlequote/doublequote (the preeminent style guide for your language probably has an opinion on which quote character to use; that should be your non-shift character)
pipe/backslash (pipe operators are heavily used in some languages, but escaping characters is common too)
The first shift swap I tried was actually tilde/backtick, but I didn’t like it - turns out I use string templating in JS more often than I need to reference the home directory.
Outside of direct swaps, one related change I have made recently is using Karabiner to set up custom commands for “modifier key pressed and released alone”. Tap left shift by itself for an opening parenthesis, right shift for closing parenthesis. Command does bracket and option does braces in a similar fashion. I’m liking it so far, once I get familiar enough that I’m not using the old way I’ll remap the original [/{ and ]/} keys to some other symbols - whichever of %^*#!@$& I use most often, probably.
In general though I would highly encourage anyone who types for a living to consider making incremental key swaps instead of changing keyboard layouts. For Mac there is Ukelele (GUI, generates new layout file your OS uses) or Karabiner (config file, daemon intercepts keystrokes and carries out substitutions - more power but you have to be okay with “intercepts keystrokes”). For Linux the functionality is there with localectl and loadkeys, and there’s probably many utilities built on top of that. For Windows there is SharpKeys, PowerToys, and AutoHotKeys. (I don’t use Linux or Windows day to day, there may be better options here).
Not to mention all the other issues with getting your new fancy layout to work in every operating system and app and then being really thrown when you try to type on any other "normal" person's keyboard for a minute.
It's already hard enough spending 15 minutes in every new computer game to change the default WASD keybinds to the superior ESDF.
(role of Fn keys, placement of Fn switch key, shape of Enter, size and positioning of cursor keys, placement of simple symbols like slash/backslash, greater/smaller, @, #, [, ], `, etc., availability and placement of Ins/Del/Home/End, all can change just a bit with a new computer/keyboard system. All this without 'creative' regrouping or arrangement of the physical keys itself (like MS ergonomic keyboard). If we add the complication of shortcuts where keyboard plays an essential role and which changes constantly from one approach to an other inside and accross software (not improving! just changing.) we can see that the problem is too big already, no need to aggravate the situation further along questionable and marginal efficiency claims. There are other parts of personal computing that can use improvements if someone is bored.)
---
I think most of the efficiency functions that these kinds of efforts tend to optimize for miss the most important factor.
I've thought about this a fair amount drawing on my experience switching to dvorak 15 or so years ago and not getting the typing speed increase I was hoping for, and also from having a close friend with a PhD in piano performance. There's one thing that I've never seen taken into account by these kind of keyboard layout optimization efforts that pianists understand is very important, and that is runs. Most people seem to focus on individual finger movements, a meaningful component to be sure. But I think there's still a lot that could be gained from optimizing a layout for runs. Runs are sequences where the fingers are depressed in sequential order across the hand (possibly skipping one or more fingers). They can be played (typed) not so much by isolating individual finger movements, but by getting the hand into the correct shape in a single movement and then actually depressing keys with a single rotation of the arm/hand/wrist.
The interesting thing about optimizing for runs is that it's directly opposed to the alternating hand optimization that the dvorak layout uses. I would love to see some exploration in this area and think it could yield meaningful speedups. Unfortunately, getting proficient with a layout takes a long enough time that I'm not super likely to take the project on myself.
See: https://colemak.com/Hand_alternation
He very much considers this important factor as the critical component of the layout he describes.
Just use Dvorak. It's well proven to minimize finger travel.
Also it's not beneficial to trade away regular shorter rest periods for a longer rest period. This is true for many activities that can cause RSI. A gentle alternation of activity and rest is recommended instead of long strikes.
Colemak fixes this issue completely by keeping the Z,X,C,V the same as in QWERTY
I also forked a tool of github to evaluate layouts considering multiple languages (ex: 40% french 60% english) https://github.com/florianfmmartin/kb-layout-evaluation
But i have not updated it recently, take a look at original repo also ;)
Switching to a different layout has a lot of complications:
- Steep learning curve: it might take months or even years to reach typing speeds of QWERTY
- Low software support: it's tricky to switch to a custom layout everywhere Some apps and games might read physical keycodes and the only workaround is to use the keyboard with custom firmware (e.g. QMK[1])
If you're willing to improve keyboard ergonomics, check out ergonomic mechanical keyboards. Most popular row-staggered layout is horrible for hand ergonomics and it only can be fixed with a keyboard that has a different physical key layout. r/ErgoMechKeyboards[2] is a good starting point.
[1]: https://docs.qmk.fm
[2]: https://www.reddit.com/r/ErgoMechKeyboards/wiki/resources
Simply not true.