The ThinQu Keyboard Layout is an optimized keyboard layout I recently developed for standard keyboards. It is designed to maximize both typing speed and comfort.
It turns out to be extremely costly and difficult to build a model for typing comfort or effort. In existing studies, a regression model with several variables is usually built to measure typing effort and compare a few different layouts. The regression coefficients are either calculated by real data or purely speculated. The structures of these models are flawed due to the inflexibility of regression models and lack of data to estimate the coefficients accurately. It’s very costly to obtain real human data in typing speed and effort for multiple layouts because of the low population size and high learning cost of newer layouts. In addition, it’s very hard to measure typing effort and time is not a good proxy for effort; wasting time in waiting for other fingers to finish is more relaxing than spending time to get to the target key.
There are a couple of variables known to correlate with typing effort and I will go through the complexity of each one although it’s hard to talk quantitatively without empirical data. All frequency data come from the Norvig study.
Key location and effort
Workman‘s layout nicely gives each key an effort score. The main inaccuracy is that the N key (of QWERTY keyboard) should be rated a 2 according to the symmetry with the V key. Secondly, the effort score for the low ring finger keys should be more like a 3.5 instead of a 4. Note that due to the difference in the right hand base keys, there is an extra middle column in ThinQu which would be rated a 5 or 6.
From the diagram, we can see a strong interaction between row and finger. Missing this interaction is the major drawback in carpalx’s model and implicitly in Colemak and many other layouts.
To place the most frequent letters in the best locations to reduce finger movement, we consult the letter frequency chart, which is adjusted for the multi-letter keys th, in, qu, and tion:
Note that h loses more than half of its usage due to the th key. The in key takes away 28% of the load on i and n, alleviating the pinkies.
As implied by Workman’s mapping, index fingers should bear the most load, and the load should decrease as we move toward the pinky. The following figure confirms this by showing the frequency of using each finger. Punctuation marks and letters but not space and functional keys are included in the calculation. The load for the right pinky would increase by about 3% if Shift, Enter, and Backspace keys were included. The right hand can stand a 3% higher frequency than the left hand not just because most people are right-handed but also because the right fingers move less and stay in the home row more often.
Hand alternation vs hand rolling
Key position analysis above measures each key independently. Now we consider the interaction between successive strokes. There is no question that typing dkdkdk is easier and faster than typing dddddd due to the benefit of hand alternation. It’s also apparent that typing asdf is easier than fads due to the comfort of hand rolling, which is defined as pressing adjacent keys on the same row using adjacent fingers.
We can distinguish different kinds of hand rolling. There is inward rolling that rolls from the peripheral of the keyboard to the center (such as asdf ) and outward rolling (such as rewq). Inward hand rolling is much easier than outward rolling. Sometimes rolling on different rows is also easy, such as wef or km. It’s questionable whether inward hand rolling is more desirable than hand alternation. I suspect they have about the same speed but hand rolling is less effortful. Having this in mind, the reason I prioritized hand alternation over hand rolling in ThinQu is that it’s hard to achieve a high degree of inward hand rolling no matter how you arrange the keys and the frequency of mediocre outward rolling always increases with inward rolling.
So to maximize hand alternation, all vowels plus Y should be typed by one hand. Since six letters are not enough and too unbalanced for one hand, for each letter we can look at how often the letter is adjacent to a vowel letter or Y in the corpus:
Repeated bigrams (e.g. ff) are not counted in the calculation since they are independent of the side of the letter. The impact of multi-letter keys is mostly accounted although those keys are not shown in the table. For any letter with a frequency higher than 50%, placing it on the vowel side would decrease hand alternation (assuming we eventually balance the two hands’ load). We can place punctuation keys in the vowel side so we don’t have to place many letters there. With many vowels and punctuation keys on the right side of the QWERTY layout, we are better off placing the them on the right side for ThinQu as well. We still need at least 4 letters for the right side. We can move K, H, and P to the vowel side according to the table. We can now update this table by counting these three letters as “vowels”:
From this table, next letter to be moved to the right side should be D, but F is the one moved in the final version of ThinQu.
Besides hand alternation, finger alternation is also important for increasing typing speed. It’s especially slow when successive strokes are on the same finger and are on different rows, which requires same-finger movement. Keys are placed in consideration of limiting same-finger movement. The most frequent same-finger movement of two rows is f + in, which happens only 0.08% of the time. Bigram frequencies are useful for determining which keys should go with which fingers. The following bigram frequency table shows how often each bigram appears regardless of the order (e.g. ER is the same as RE) resulting in a symmetric matrix. To get the relative frequency, just divide by 2819.390. Note that each letter is not counted the same number of times. For example, in the word and, n is counted in two bigrams; a and d are counted only once.
The index and little fingers need to move laterally to reach some keys. Holding distance constant, lateral movement is the least comfortable type of movement. Another interacting factor is whether the adjacent finger can move with the laterally moving finger and thus reducing the lateral movement relative to the adjacent finger. For example, typing kh requires the middle finger to stay while moving the index finger to the left, whereas typing ;h allows adjacent fingers to move together to reach h, making it much less effortful.
Interactions among fingers and rows
The interaction between row and finger becomes even more important and tricky when we consider movement. The following table estimates how difficult it is to type a bigram using different fingers of the same hand on the same row assuming each finger is equally strong
| 2nd letter
So typing on different fingers can often be as difficult as or more difficult than typing on the same fingers. This table could be slightly different depending on which row it takes place in, but we will not investigate in that.
Next, we estimate how the difficulties change when the letters are on different rows for bigrams using adjacent fingers and ignoring the order. The interactions among non-adjacent fingers is less strong and is omitted from the table.
|Upper row||2||Upper row||1||Upper row||3||Upper row|
|4||Home row||3||2||Home row|
|5||Lower row||4||4||Lower row|
|Home row||2||Upper row||2||Home row||4||Upper row|
|1||Home row||1||1||Home row|
|4||Lower row||3||3||Lower row|
|Lower row||3||Upper row||4||Lower row||5||Upper row|
|1||Home row||2||4||Home row|
|2||Lower row||2||3||Lower row|
From the numbers in these two tables, we can see there is a lot of interaction among finger, row, and order for estimating typing effort and thus making it very difficult to find the best keyboard layout using linear models.
Effort vs speed
Effort and speed would be perfectly correlated if per-unit-time effort is constant. Consider the effort and speed of typing in using the in key vs using i and n keys. The time it takes to hit in is probably only 60% of that of i and n assuming the previous stroke is on other fingers. Yet the effort of hitting in may be as much as 90% of the other way because it involves finger movement. By including multi-letter keys, we can save about 5% of the time (see previous graph) but the effort saved is much less, if any. Typists whose efficiency is constrained by speed can benefit a lot from the ThinQu layout, whereas those constrained by typing effort benefit less compared to other ergonomic layouts. For the latter type of typists, the condition to justify the existence of the in key is approximately that the effort of typing one key on the upper row using the index finger is less than using the pinkies twice on the home row.
To compare effort and speed, we arrange the aforementioned factors from affecting effort the most to affecting speed the most: lateral movement, finger position relative to other fingers, position of keys, hand rolling, general finger movement, number of strokes, same-finger movement.
Why f is on the right side
F, instead of d, is on the right side for these reasons:
- To balance the work between two hands, a letter of medium frequency needs to be moved to the right side. D is too frequent for this and b is too infrequent. Keeping f (instead of b) on the left side would eventually result in an even higher load for the left pinky.
- About half of the time o precedes or follows f and since o is typed by the ring finger, this movement is not terribly uncomfortable.
- The bigrams involving a are mostly very frequent making it hard to find letters to for the right index finger besides a. F has the least bigrams with a among frequent letters.
Why Shift + in is tion
The shift state of in produces tion instead of In. We can compare the utility of each along with two more options – and and ation.
|Output||Benefit relative to tion||Cost relative to tion|
|In||~0.4% of the time, type one fewer stroke minus one row of finger movement||0.5% of the time, type three more strokes minus Shift and 1 row of finger movement|
|and||0.8% of the time, type two fewer strokes (and one fewer row of finger movement, but d is not hard to reach after typing n) minus Shift and 1 row of finger movement||0.5% of the time, type three more strokes minus Shift and 1 row of finger movement|
|ation||0.24% of the time, type one fewer stroke and one fewer row of finger movement||0.26% of the time, type three more strokes minus Shift and 1 row of finger movement|
When reasonable utilities are plugged in, we don’t see a net benefit over tion, and thus confirming the usage of tion. However, tion comes with a cost for learning to not use Shift + in for typing In.
Two biological features of the hands seem to affect how we type. The first is relative finger length ratios. The most researched digit ratio is the index to ring finger ratio. Women have relatively longer index fingers on average (see figure below) which makes it easier to type th and in. The second important variable is overall finger length. The longer the average length the easier it is to reach non-home row keys and to perform lateral movement.
It’s important to consider the genre of the text being typed as they differ greatly in the distribution of punctuation marks and symbols. In ThinQu, the symbol keys are relatively evenly distributed in the right hand but almost nonexistent in the left hand. This is a consequence of the imbalance between the number of consonant letters and vowel letters. Moving punctuation marks to the left would ultimately decrease hand alternation. The utilization of the right hand varies between 49.7% and ~52% depending on the frequency of symbols unless it’s certain symbol-heavy programming language, in which case the programming version of ThinQu is recommended. When chatting in instant messenger, Enter becomes extremely frequent, but the decreased usage of punctuation marks and Shift somewhat balances out the load for the right pinky.
When writing a dialogue, the usage of the quotation mark and period is increased. The right index finger, being the most frequently used finger, is now maximally utilized. This is why y and period should not be swapped despite all other considerations calling for a swap. If the swap happens, the right index finger becomes slightly less loaded but is much more loaded when typing symbol-heavy passages. The assignment of one popular punctuation mark per finger on the right hand side prevents any right hand finger from being overloaded.
The tradeoff between speed and the cost of learning
The introduction of th and in keys in ThinQu increases typing speed by about 5% by requiring fewer strokes. The cost of this addition is the time and effort to learn to use two new keys. We could continue to increase the complexity of the layout and input method while increasing the cost of learning. For example, we could add a dead key that allows us to enter any of the 40 most used words in two strokes (e.g. dead key + W = with). At the extreme, the expected least number of strokes needed to type a word is its entropy on the base of 48 since there are 48 relevant keys on a standard keyboard. The PMF of English words frequency can be approximately modeled as a Zipf’s distribution of power 1 with 100,000 words. (This is a conservative model as it has a thicker tail than the empirical distribution.) This entropy is calculated as:
Therefore, it’s theoretically possible to design a keyboard layout with levels of dead keys that make it possible to enter a word at an average of only 2.058 strokes. This is 57% fewer strokes than that of the QWERTY layout. However the time it takes to learn to use this layout is astronomical. The reason that there are only three multi-letter keys in ThinQu is that adding more bigrams would require the usage of dead keys (unless we move even more symbols to the Alt Gr mode) which only reduces the number of strokes for 3-letter keys and beyond. For example, typing er as dead key + an er key is still two strokes. The only key that outputs more than two letters in ThinQu is the tion key typed as Shift + in. This is the most frequent 4-gram in English with a mere frequency of 0.50%. Other 3-grams and 4-grams turn out to generate a marginal benefit at least three times smaller than tion and therefore are not implemented in ThinQu.
There are other ways to improve typing speed without adding much difficulty in learning. Auto-completion is a popular way to save strokes by having the computer type the rest of the word based on what’s typed so far. Another way is to omit frequently used letters or vowels when typing (due to their low entropy) and have the computer fill the omitted letters; for example, profile is typed as prfl. These are some of the feasible ways to improve typing speed at a low cost and perhaps is the direction of development for future versions of ThinQu.
Another possibility is to totally abandon the standard way of typing. by switching to corded keyboards in which simultaneously pressing several keys keeps every finger busy. Voice-to-text technology has made it possible to “type” at over 100 words per minute at a very low cost of speech production and some noise pollution.
5 thoughts on “The Development of the ThinQu Keyboard Layout: Factors that Influence Typing Effort”
I find this analysis intriguing and having frequent bigrams as keys is something that I am trying out as a result. A couple of questions that you have probably already thought about.
1) How did you decide the exact placement after doing all the statistics. Is this done by hand or are you using a program to do that?
2) I am typing mostly on a matrix layout and the placement of F on that format feels pretty painful for such a frequent key (it is indeed fine on a staggered layout). This is because to reach the F I have to loose contact with the most frequent key that comes next, i.e. the o. In you penalty-system the F would be on a key with score 5.
Would it for an ergodox/kinesis layout make more sense to move the D to the right hand instead? (to balance I would assume the P would swap with B with D ending up where you now have P). Or is there a more logical swap seeing the different penalties for a matrix layout compared to a staggered keyboard.
3) My first impression is that the G and M key need to be swapped. Currently typing “ng” is difficult as to reach the g I need to also move my pinky as well, which I can only do after having pressed the “n”. As this remains a frequent bigram even with the additional “in” key this seems easier to do if G and M are swapped and there appears no penalty for doing that swap if I look through your statistics?
btw) You probably have seen it already, but the Colemak-mod-dh website has a detailed comparisons of penalties for various layouts, see first figure on this page: https://colemakmods.github.io/mod-dh/compare.html The Colemak-mod-dh layout came after Workman and also favors the downwards movement for the index finger introduced by Workman.
1) I did the placement all by hand. Sometimes when facing a few plausible choices, I do a rough efficiency calculation to determine it. Currently, doing it using a program would not benefit much because there are too many variables to consider and obtain accurate empirical values, so spending time to write a program for a slight improvement was not worth it since my original goal was to make a better layout so I could type more easily.
The first kind of variable requires processing the corpus on my own, which would take too long for me to do. (e.g. consider same-hand movement when there is hand alternation: the word “god” is harder to type than say “gom” because the left ring finger moves two spaces from g to d in only two strokes. This type of movement is not captured by the bigram table because of the letter “o” in the middle). The second type of variable is about human ergonomics, such as the trade-off ratio between the effort of more finger movement and more strokes or less hand alternation. Lastly, the interaction among fingers and rows (see the section in article) would make the program too complicated. However I’m interested in writing a program that considers all of the mentioned aspects when I have time and data.
2) Yes, the F key is the main problem for a matrix keyboard. Without doing too much analysis, a new layout is to do a 3-way swap; f now at “in”; “in” now at “period key”; “period key” now at f. Moving “in” to the right index finger is something I have always thought about. (For a strict matrix keyboard instead of the ergodox, p and f need to be swapped after the 3-way swap so f stays in the lower row.) Also, swapping v and j is mildly beneficial.
I don’t see why d needs to be moved (reminder it’s at upper row of left ring) since the upper row is only slightly staggered on a normal keyboard. And I don’t think the matrix keyboard would directly cause a key to be moved to a different hand.
3) I can also feel the difficulty of typing “ng” and its frequency is 7.4 units (same unit as the bigram chart; of which 1.8 units are “gn”). The ergodox keyboard already greatly reduces the distance between N and G. Same finger movement actually would not change much with the swap. The only penalty comes from the fact that M is used more often than G by 37.1 units and is justified to be assigned to a stronger finger (the middle finger). I might have put excessive emphasis on even distribution of finger burden, which resulted in this awkward movement. Swapping G and M is the best alternative I can see.
Leaving finger burden distribution aside, another swap is between S and T, which would increase inward finger rolling by about 60% (~20 units) and only increase the frequency of same finger movement by about 3.5 units.
btw) Thanks for the link. I have not seen this great analysis and the Colemak-DH layout (which is another gem). It seems generally more accurate than Workman’s scores although still without experiments.
Many thanks for the additional clarifications and insight. I’ll have a go to see how I get along with the swap “f” -> “in” -> “period”. Other thoughts:
1) Please ignore my comment on swapping the D to the right-hand; that came from not seeing the above swap you suggest to do for f. The thinking behind it was that if I swapped P and B to resolve it I needed a more frequent key on the right hand, which was D.
2) Instead of writing your own analyzer you could try the optimizer written for ADNW (adnw.de), which generates very similar alternating layouts as you have here. You find the download for that optimizer here: http://509.ch/opt.7z That optimizer is able to frequency statistics from you own corpus; able to do trigram-optimization and you can put in your own key penalties and desired finger-balance. Obviously your comment on the output never fully converging due to the amount of variables still applies.
To be able to do the analysis taking into account “th”, “in” and “tion” you could replace those with other symbols that normally don’t appear in the corpus to be analyzed, which should not be too hard to do using standard Unix tools. Only thing that might need some thinking is to make sure you use symbols that belong together for “in” and “tion” as those would need to end up on the same key.
btw) Don’t be put off by everything appearing to be in German for adnw. The second half of the file Anleitung.pdf in the above archive is the English manual and is all that is needed to get going.
Thank you for the optimizer. I will definitely look into it when I have time as I’m curious about the result.