You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+86-66Lines changed: 86 additions & 66 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,10 @@
1
1
# Arno's Engram key layout
2
2
3
-
The [Engram layout](https://github.com/binarybottle/engram-layout) is an optimal keyboard layout for touch typing in English created by [Arno Klein](https://binarybottle.com), with open source code.
3
+
The [Engram layout](https://github.com/binarybottle/engram-layout) is a keyboard layout optimized for comfortable touch typing in English created by [Arno Klein](https://binarybottle.com), with open source code to create other optimized key layouts.
4
4
5
-
6
-
Q I O U D N L Y Z
7
-
P H E A T S R C X
8
-
B J K G M F W V
5
+
J U O Y W S M Q Z
6
+
H I E A T N R C X
7
+
P K G D L F B V
9
8
10
9
The Shift key accesses characters (top) that look similar to the numbers:
11
10
@@ -20,21 +19,14 @@ and accesses related but less common punctuation (top):
20
19
Swapping the Backspace and Caps lock keys completes the layout:
21
20
22
21
23
-
~ ! = ? + $ @ ^ & % * < >
24
-
# 1 2 3 4 5 6 7 8 9 0 [ ] Caps
25
-
26
-
Tab Q I O U ' " D N L Y Z - /
27
-
Back P H E A , . T S R C X Enter
28
-
Shift B J K G ( ) M F W V Shift
22
+
~ ! = ? + $ @ ^ & % * < >
23
+
# 1 2 3 4 5 6 7 8 9 0 [ ] Caps
29
24
30
-
Ctrl Fn Cmd Alt Space Alt Ctrl Arrows
25
+
Tab J U O Y ' " W S M Q Z - /
26
+
Back H I E A , . T N R C X Enter
27
+
Shift P K G D ( ) L F B V Shift
31
28
32
-
# Contents
33
-
1.[Rationale](#rationale)
34
-
2.[Comparison with other key layouts](#comparison)
According to the [Keyboard Layout Analyzer](http://patorjk.com/keyboard-layout-analyzer/):
70
62
71
-
"The optimal layout score is based on a weighted calculation that factors in
72
-
the distance your fingers moved (33%),
73
-
how often you use particular fingers (33%),
74
-
and how often you switch fingers and hands while typing (34%)."
75
-
63
+
"The optimal layout score is based on a weighted calculation that factors in the distance your fingers moved (33%), how often you use particular fingers (33%), and how often you switch fingers and hands while typing (34%)."
64
+
76
65
## Factors used to compute the layout <aname="factors">
77
66
-**N-gram letter frequencies** <br>
78
67
@@ -89,45 +78,51 @@ According to the [Keyboard Layout Analyzer](http://patorjk.com/keyboard-layout-a
89
78
-**Speed** (unordered interkey stroke times) <br>
90
79
"Estimation of digraph costs for keyboard layout optimization", A Iseri, Ma Eksioglu, International Journal of Industrial Ergonomics, 48, 127-138, 2015. <br>
91
80
_NOTE: Speed data were only used for exploration of early key layouts._
92
-
81
+
93
82
## Guiding criteria <aname="criteria">
94
83
95
-
1. Assign 24 letters to keys that don't require lateral extension of index or little fingers.
96
-
2. Group letters for common command shortcut keys (F,C,Z,Y,X,V) close together.
97
-
3. Assign punctuation to keys that require lateral extension of index or little fingers.
98
-
4. Assign easier-to-remember characters to the shift-number keys.
99
-
5. Arrange letters so that more frequent bigrams are faster and easier to type.
100
-
6. Balance finger loads according to their relative strength.
101
-
7. Promote alternating between hands over typing with the same hand.
102
-
8. Promote little-to-index-finger roll-ins over index-to-little-finger roll_outs.
103
-
9. Avoid extending nearer, shorter fingers to upper rows.
104
-
10. Avoid using the same finger.
105
-
11. Avoid the upper and lower rows.
106
-
12. Avoid skipping over the home row.
107
-
84
+
1. Assign 24 letters to keys that don't require lateral extension of index or little fingers.
85
+
2. Group letters for common command shortcut keys (F,C,Z,Y,X,V) close together.
86
+
3. Assign punctuation to keys that require lateral extension of index or little fingers.
87
+
4. Assign easier-to-remember characters to the shift-number keys.
88
+
5. Arrange letters so that more frequent bigrams are faster and easier to type.
89
+
6. Balance finger loads according to their relative strength.
90
+
7. Promote alternating between hands over typing with the same hand.
91
+
8. Promote little-to-index-finger roll-ins over index-to-little-finger roll_outs.
92
+
9. Avoid extending nearer, shorter fingers to upper rows.
93
+
10. Avoid using the same finger.
94
+
11. Avoid the upper and lower rows.
95
+
12. Avoid skipping over the home row.
96
+
108
97
## Summary of steps and results <aname="summary">
109
98
110
-
- Step 1: Optimize arrangement of the 12 most frequent letters across left and right sides
111
-
- Step 2: Arrange the most common command shortcut characters on the right side
112
-
- Step 3: Optimize arrangement of all remaining letters
113
-
- Step 4: Add punctuation marks and characters above similar-looking numbers
99
+
- Step 1: Distribute the 8 most frequent letters (4 vowels, 4 consonants) to the left and right
100
+
- Step 2: Add command shortcut characters on the left or right
101
+
- Step 3: Distribute 8 of the remaining letters to the left and right
102
+
- Step 4: Optimize arrangement of all letters on the left and right
103
+
- Step 5: Arrange punctuation marks and characters in easy-to-remember places
114
104
115
-
### 1. Optimize arrangement of the 12 most frequent letters across left and right sides
105
+
### 1. Distribute the 8 most frequent letters (4 vowels, 4 consonants) to the left and right
116
106
117
-
I selected 12 of the strongest key locations for the 12 most frequent letters in the English language (excluding C, which we group with other common command shortcut characters):
107
+
**E, T, A, O, I, N, S, R**, H, L, D, C, U, M, F, P, G, W, Y, B, V, K, X, J, Q, Z
118
108
119
-
**E, T, A, O, I, N, S, R, H, L, D**, C, **U**, M, F, P, G, W, (Y), B, (V), K, (X), J, Q, (Z)
109
+
My goal was to arrange 24 of the 26 letters in finger-column keys (requiring no lateral movements) with 2 columns reserved for punctuation between the left and right sides. Our optimization algorithm splits the 8 most frequent letters across left and right sides:
120
110
121
-
An optimization algorithm splits the 12 letters across left and right sides, and then arranges the 6 letters on each side.
111
+
- - O - - S - -
112
+
- I E A T N R -
113
+
- - - - - - - -
122
114
123
-
The resulting arrangement has all vowels on the left and the most common consonants on the right (except for H):
115
+
This algorithm also generates a mirror image of the above arrangement:
124
116
125
-
- I O UD N L - -
126
-
- H E AT S R - -
117
+
- - S -- O - -
118
+
- R N TA E I -
127
119
- - - - - - - -
128
120
121
+
In all of the following steps, we build a layout from both arrangements but only show the top arrangement for clarity.
122
+
These initial arrangements are very reasonable, as they place letters of decreasing frequency in positions of decreasing finger strength, and roll in for most common bigrams: IO, EA, IE, NT, ST, RT (not TR or NS).
123
+
129
124
#### **Details** <br>
130
-
I set an initial location for E and T, the most common letters, with E on the left side and T on the right side, to encourage a balance of typing across left and right hands, and to reduce the number of permutations to compute (3,628,800 for 10 letters). Each permutation corresponds to a unique arrangement of letters, and its score is the average of the scores for all possible pairs of letters (bigrams) in this arrangement. The score for each bigram is a product of the frequency of occurrence of that bigram and the factors Flow, Strength, and Speed:
125
+
The optimization algorithm finds every permutation of a given set of letters (40,320 for this intial set of 8), maps these letter permutations to a set of keys, and ranks these letter-key mappings according to a score reflecting ease of typing key pairs and frequency of letter pairs (bigrams). The score is the average of the scores for all possible bigrams in this arrangement. The score for each bigram is a product of the frequency of occurrence of that bigram and the factors Flow, Strength, and Speed:
131
126
132
127
**Flow**: measure of ease of a finger transition from the first in a pair of letters to the second
133
128
@@ -149,31 +144,56 @@ Finger strengths are based on peak keyboard reaction forces (in newtons) from "K
149
144
150
145
**Speed**: normalized interkey stroke times
151
146
152
-
These are left-right averaged versions derived from the study data below, to compensate for right-handedness of participants in the study:
147
+
These are left-right averaged versions derived from the study data below, to compensate for right-handedness of participants in the study (we used this data for early experimentation):
153
148
154
149
"Estimation of digraph costs for keyboard layout optimization",
155
150
A Iseri, Ma Eksioglu, International Journal of Industrial Ergonomics, 48, 127-138, 2015.
156
151
157
-
### 2. Arrange the most common command shortcut characters on the right side
152
+
### 2. Add command shortcut characters on the left or right
153
+
154
+
I experimented with common command characters (Z,X,C,V) on the left, a familiar location (with Q on the right):
155
+
156
+
- - O - - S - - Q
157
+
- I E A T N R - -
158
+
Z X C V - - - -
158
159
159
-
- I O U D N L Y Z
160
-
- H E A T S R C X
160
+
and with command characters on the right (with Q on the left):
161
+
162
+
Q - O - - S - Y Z
163
+
- I E A T N R C X
161
164
- - - - - - - V
162
165
163
-
- Typing a command shortcut is usually done by holding the Command/Control key with the left little finger, potentially the weakest, while simultaneously stretching and tapping the shortcut letter with the same hand. By placing the command shortcut key on the far right side, this encourages one to type the Command/Control key with the left hand and the shortcut with the right hand.
164
-
- Z is the least frequent letter and is placed in the worst position.
165
-
- Undo (Z) & Redo (Y), and Cut (X) & Copy (C) pair well together. Y is to the left of Z and C to the left of X because they are more frequent letters.
166
-
- Common bigrams with Y and C (LY, CT, NC, SC, CR) are easy to type.
166
+
Rationale for placement on the right:
167
+
168
+
- Z is the least frequent letter and is placed in the hardest-to-reach position.
169
+
- Z & Y (Undo & Redo), and X & C (Cut & Copy) pair well together.
170
+
- Moving command shortcuts to the right puts C & V (Copy & Paste) in closer proximity to a Ctrl key, or it enforces two-handed Ctrl operations when using the harder-to-reach left Ctrl key.
171
+
- Q is the least frequent remaining letter, and is placed in the hardest-to-reach remaining key location.
172
+
- Q is in the upper left key in the QWERTY layout, so will be easy to remember.
173
+
174
+
### 3. Distribute 8 of the remaining letters to the left and right
167
175
168
-
### 3. Optimize arrangement of all remaining letters (as in Step 1)
176
+
*E, T, A, O, I, N, S, R*, **H, L, D**, [C], **U, M, F, P, G**, W, [Y], B, [V], K, [X], J, *Q*, [Z]
177
+
178
+
### 4. Optimize arrangement of all letters on the left and right
179
+
180
+
I applied the same algorithm as in Steps 1 and 3, but to each side separately (to make it computationally tractable), then to the remaining letters, and finally to the command characters on the left side.
169
181
170
-
E, T, A, O, I, N, S, R, H, L, D, C, U, **M, F, P, G, W**, (Y), **B**, (V), **K**, (X), **J, Q**, (Z)
182
+
The top-scoring full layouts had vowels on the left side and command characters on either side:
183
+
184
+
J U O Y W S M Q Z score: 0.04264
185
+
H I E A T N R C X
186
+
P K G D L F B V
171
187
172
-
Q I O UD N L Y Z
173
-
P H E A T S R C X
174
-
B J K G M F W V
188
+
Q U O YW S M J Z score: 0.04264
189
+
H I E A T N R C X
190
+
P K G D L F B V
175
191
176
-
### 4. Add punctuation, and characters above the number keys
192
+
K U O Y W L G B Q score: 0.04263
193
+
H I E A T R S N J
194
+
V Z X C D M F P
195
+
196
+
### 5. Arrange punctuation marks and characters in easy-to-remember places
177
197
178
198
**Frequency of punctuation**
179
199
@@ -192,9 +212,9 @@ These sources helped guided our arrangement:
192
212
193
213
Resulting in:
194
214
195
-
Q I O U ' " D N L Y Z
196
-
P H E A , . T S R C X
197
-
B J K G ( ) M F W V
215
+
J U O Y ' " W S M Q Z
216
+
H I E A , . T N R C X
217
+
P K G D ( ) L F B V
198
218
199
219
Shift accesses similar-looking characters above the numbers:
0 commit comments