I've been using Colemak on my ErgoDox for about 9 months. Prior to that I'd never left QWERTY. My reading this weekend has taken me to a number of topic all of which lead me to be curios. I finally looked up the alternative layouts (including odd ones like BU-Teck) and read the reasonably convincing logic behind the workman layout.
However, all of these layouts seem to assume the standard keyboard. Workman at least provides a weighting diagram for grid/matrix boards but assumes all peripheral keys will remain the same. When I noticed that this continued to give more preference to comma than to full stop I immediately felt that was a mistake. I then wondered about frequency of punctuation in English and felt someone should at least
attempt to intermingle the keys according to frequency. Even if it's purely an intellectual excercise/thought experiment that never makes it into an actual board.
That lead me to these wiki articles:
https://en.wikipedia.org/wiki/Letter_frequencyhttps://en.wikipedia.org/wiki/Punctuation_of_EnglishI combined their findings with a few assumptions to produce this combined list:
Rank | Key | Keystrokes/1000 |
0 | Space | 130 |
1 | E | 127.02 |
2 | T | 90.56 |
3 | A | 81.67 |
4 | O | 75.07 |
5 | I | 69.66 |
6 | N | 67.49 |
7 | . | 65.3 |
8 | S | 63.27 |
9 | , | 61.6 |
10 | H | 60.94 |
11 | R | 59.87 |
12 | '" | 51 |
13 | D | 42.53 |
14 | L | 40.25 |
15 | Shift | 33 |
16 | Shift | 33 |
17 | C | 27.82 |
18 | U | 27.58 |
19 | M | 24.06 |
20 | W | 23.61 |
21 | F | 22.28 |
22 | G | 20.15 |
23 | Y | 19.74 |
24 | P | 19.29 |
25 | - | 15.3 |
26 | B | 14.92 |
27 | V | 9.78 |
28 | K | 7.72 |
29 | ;: | 6.6 |
30 | ! | 3.3 |
31 | J | 1.53 |
32 | X | 1.5 |
33 | Q | 0.95 |
34 | Z | 0.74 |
My assumptions were:
- Space is used 130 times per 1000 key strokes based on a statement in the wiki article 'slightly more frequent than e'. From other web pages I think 150 would have been more accurate, but that doesn't matter really. Either way it's the most frequent key.
- Space should be on the thumbs and treated as one finger, even though the workload can be halved between the thumbs.
- Upper case letters and symbols require the use of shift a bit more frequently than full stop (period).
- Because shift would be required on both hands to avoid clashing with other keys on the same finger, I have halved its freqency and entered it twice
- I could not find a comparison of number freqency to letter frequency, so I've left those out of the equasion. In fact I couldn't find a general frequency of numbers, only specific cases like telephone numbers or in pi. I therefore ignored them on the assumption that there'd still be a dedicated row of numbers in numeric order from left to right.
- Finally, I gave preference to the right hand over the left because I use a left handed mouse. Right handers should flip the whole layout
Determining the layout, I started with workman's weighting for grid boards:
4 | 2 | 2 | 3 | 4 | 4 | 3 | 2 | 2 | 4 |
1.5 | 1 | 1 | 1 | 3 | 3 | 1 | 1 | 1 | 1.5 |
4 | 4 | 3 | 2 | 4 | 4 | 2 | 3 | 4 | 4 |
Then broke it down into much finer detail based purely on my own preference:
| 26 | 14 | 12 | 20 | 30 | 29 | 19 | 11 | 13 | 25 | |
32 | 8 | 6 | 4 | 2 | 18 | 17 | 1 | 3 | 5 | 7 | 31 |
34 | 24 | 22 | 16 | 10 | 28 | 27 | 9 | 15 | 21 | 23 | 33 |
Then let excel place the keys for me:
| B | L | '" | W | ! | ;: | M | R | D | - | |
X | S | N | O | T | U | C | E | A | I | . | J |
Z | P | G | Shift | H | K | V | , | Shift | F | Y | Q |
For pure typing, that's probably quite good. However, we are using computers, not typing on electronic typewriters. Therefore additional elements should be taken into account. For my second version there are some additional assumptions:
- We should attempt to account for the increased frequency of v, c, x, z, b, I and y due to paste, copy, cut, undo, bold, itatlic and redo respectively.
- I assigned an increase of 1-10 per 1000 for each of these keys. Unfortunately I have no data on the frequency of these so this is gut feel
- I also increased shift by one rank so that it would end up on the same finger position for both hands, but also because it is used in some command chords like shift-tab
In most cases this just shifts the priority of a given key by one place.
The resulting matrix is:
| P | L | '" | W | ;: | K | M | R | D | V | |
! | S | N | O | T | U | C | E | A | I | . | X |
Q | B | F | Shift | H | Z | - | , | Shift | Y | G | J |
This still doesn't account for frequency of Enter, Backspace, Ctrl, Alt, Win, App, Tab, Backspace, ? and various other keys. Nor does it do anything about avoiding common same finger bigrams. However, it looks interesting enough to make me chuck it into
KLE. A board built with this layout might look something like this:
More
["!\n1","@\n2","#\n3","$\n4","%\n5","^\n6",{w:2},"Escape","&\n7","*\n8","(\n9",")\n0","_\n-","+\n="],
["?\n/","P","L","\"\n'","W",":\n;",{w:2},"App","K","M","R","D","V","|\n\\"],
["J",{c:"#65af4c"},"S","N","O","T",{c:"#cccccc"},"U",{w:2},"Tab","C",{c:"#65af4c"},"E","A","I",">\n.",{c:"#cccccc"},"X"],
["O","B","F","Shift","H","Z",{w:2},"Win","_\n-","<\n,","Shift","Y","G","Q"],
["Ctrl","Alt","Enter","Del",{w:2},"Space",{w:2},"BackSpace",{w:2},"Space","Del","Enter","Alt","Ctrl"]
I can't help but call this the SNOT layout thanks to that word being the home keys for the left hand.
I'm extremely interested to get other peoples views on this layout, on the steps I took to generate it etc.
I would also love to be pointed to an analyzer that will calculate the bigrams and same-finger-units for me. The workman designer must have used one but I cannot find a link.