Oneproduct:
Sorry to necro this thread, but I’m very, very interested in hearing how things are going now that you've used your layout for a while (like so interested that I made a GH account specifically so I could join in on this thread). I also have a couple of questions related to your layout, and hopefully you can help me understand.
I’ve been doing tons of research on keyboard layouts since I want to learn touch typing and get away from my QWERTY hunt-and-peck. I’ve looked at and experimented with a whole bunch of layouts (Dvorak, Colemak, MTGAP, the Carpalx ones, Arsentio, Capewell) and yours seems to be the one I’m liking the most because of its combination of super high alternation with good inward rolls. From my experience and research, it seems like travel distance is overemphasized in most analyses (e.g., Carpalx), as is finger balance (to an extent). I think things that need to be optimized for go in the order of:
1. low same finger in the typing of digrams
2. high alternation AND inward rolling (not one or the other but both). I personally like middle-index and pinky-index rolls best, and then ring-middle after that. I’m not as big fan of pinky-ring or pinky-middle, but I think the latter one is less uncomfortable than the former.
3. low finger travel distance
4. low outward rolling, with the exception of index to middle (which I have found to be significantly less bad than other outward rolls).
5. low trigram “cycling” on same hand typing, e.g., “afs” or “ljk” on QWERTY. This is because such movements necessarily involve opposite directional motion and are easy to mess up.
6. Finger layout preferences (probably the most subjective heuristic). I’m going to go through mine below.
- I like workman-style positions: bottom row for index (without extension), top row for middle/ring. I find this makes more of a difference on pure staggered layouts than matrix layouts (TypeMatrix, Planck) and staggered column layouts (ergodox, Kinesis)—but it is still more favorable even on columnar layouts since it seems to conform more to natural hand positions.
- I also favor bottom row pinky versus top row pinky (for similar reasons as the workman finger preferences—better hand position overall), something I was pleased to find holds in your updated layout (i.e., P, K have higher occurrence frequencies than their respective top counterparts, B, Q).
- In terms of lateral index extension versus top row index extension, I think lateral (homerow) extension is better (i.e., “g” in QWERTY is better than “r”). This holds for W and M on your layout, and perhaps U and , on the other side too (I’ll talk about that again later).
- Finally, I find the bottom row positions for the ring finger to be the second worst space on the board behind top row pinky, which is reflected in your layout too (with Z and ?). The ring finger is the most “dependent” of all the fingers, and getting it to go down smoothly without messing with the middle finger, e.g., is something I struggle with more than the bottom corner with the pinky.
Overall I was super psyched when I saw your layout because it follows my finger preferences to the letter. I think my reasons for having these preferences are more than simply subjective, but each person has their own comfortable positions for their particular hand size and morphology. I was just surprised to find a fully optimized layout that perfectly lined up with mine.
7. Balancing finger load. I agree with you and PieterGen that the middle fingers are “underrated,” and feel that layouts should have pretty even balance between middle and index fingers (lower frequency letters on the index reach keys, e.g., “b” and “y” in QWERTY, with higher frequency letters on “i” and “e” QWERTY keys, should lead to pretty balanced loads). Your updated layout has the index doing more on the left, and then the middle doing more on the right (probably because that’s where E is), but it’s not crazy unbalanced on either side. The pinkies shouldn’t get quite as much as the rest, but they shouldn’t be nearly as babied as they are in the QGMLWB layout from Carpalx, in my opinion, where they get about half as much as most other layouts..
8. Finally, my last heuristic is balanced hand load. In my opinion this is not particularly useful on its own because you can have balanced-ish hand loads with low alternation (a la Colemak), but there’s no need to try to unbalance it for any reason. It should be “good enough” naturally as a by-product of optimized hand alternation.
Feel free to comment on any of the heuristics—good, bad, or otherwise. This is just what I’ve come to from my own experimentation and through a lotta hours of research. I’m now going to move into some of the questions I had regarding your layout. Most of these are from things you mentioned in the thread, but a couple come from me.
1) At the top you say “I also made a few changes where the layout became more similar to some other layouts (for familiarity) where there was a very minimal decrease in heuristic viability.” Could you tell me what these changes were? IMO, it doesn’t seem worth compromising efficiency to make transition easier for some small demographic of people, but I don’t want to misjudge what you’re saying. I hope the changes were really small, otherwise the perfectionist part of me is going to have a fit
2) Later on you also say “While trying my layout now I just realized that it's fairly uncomfortable to do 2-grams with H(vowel) which are very common. That's likely why MTGAP puts N with the vowels instead of H. I might try to fiddle around with something similar.” Did you ever go anywhere with this? I saw later that you said “but any consonant that you put with the vowels other than H results in around 5% less alternation,” which seems like an acceptable reason to leave it as is. There will always be tradeoffs.
3) Did you ever compare your layout to “Balance 12” by Sasha Viminitz (or the updated version)? You can see the layouts down in the comments on this page here:
https://mathematicalmulticore.wordpress.com/the-keyboard-layout-project/. I’ve copied the two I am interested in below. These were the only other layouts I was seriously considering other than yours and MTGAP, but since you’ve already made a good case why yours is better than MTGAP, I would be curious to see how these two stack up. She said she tried to optimize hand alternation and inward rolls at the expense of finger/hand balance, which lines up with my heuristics, as does your design philosophy.
Balance 12:
\ / # $ % ^ & * _ +
B Y O U @ K D C L P Q { }
H I E A ; M T S R N V
X [ ] : ! W G F J Z
1 2 3 4 5 6 7 8 9 0 – =
b y o u ‘ k d c l p q ” —
h i e a , m t s r n v
x ( ) . ? w g f j z
Updated Balance 12:
\ / # $ % ^ & * _ +
B Y O U @ V C D L P Q { }
H I E A ; F S T R N K
X [ ] : ! W G M J Z
1 2 3 4 5 6 7 8 9 0 – =
b y o u ‘ v c d l p q ” —
h i e a , f s t r n k
x ( ) . ? w g m j z
4) Did you ever research punctuation frequencies? I haven’t been able to find any good information on the internet about them, but it is the only place where you might possibly change something on your layout for the better, depending. There were some possibilities I thought of, so see what you think:
- Case 1: The comma has higher frequency than U. In this case, you could try swapping the U and the comma on your updated layout, which would give you the nice ou digram roll like MTGAP has. I was really curious if you had tried this, because that roll was something that made MTGAP look appealing. It would also put “you” as one nice inward roll, and IIRC you mentioned that you liked having that word easily typable for IM’ing and whatnot.
- Case 2: The comma has a higher frequency than the period. Since we are in agreement about the workman positions, this would seem to suggest that you should swap the comma and the period since the bottom index position is superior to the top index position.
- Every other case: Anything else would really depend on how valuable/harmful switching for the ou digram turns out to be.
I’m sorry this got long, but I’m really interested in this topic, and I don’t have the technical wherewithal to run the optimization algorithms myself (I don’t even know how to pull something from github
). I don’t want to dump work on you just for my benefit, but if you are interested, could you answer some of my questions anyway? It’s for the greater good of humanity