Same finger bigrams

3 January 2018

This is a weighted analysis of same-finger usage.

The probability that a letter will follow another given letter is used to evaluate layouts by which letters pairs are on the same fingers. We multiply this figure by the percentage frequency of the first letter, in English.
We add the probabilities in both directions, for example "er" and "re".

There are some exceptions: We only look at lower case, and if the second letter is on the same key as the first, we ignore that pair.

The idea is to see how much a finger has to fly around, and if the two letters are on the same key (as in the split-case layouts) then it doesn't have to fly between them.

The metric does not measure how far the finger has to fly, just that it has to. I'll look at adding distance, row jumps, inward rolls, outward rolls, to this metric if possible.

RankLayoutScore
1seelpy-1.en.ergolinear8.01
1seelpy-1-1.en.ergolinear8.01
3seelpy-1-4.en.ergolinear8.09
4seelpy-1-8.en.ergolinear18.13
5seelpy-1-22.en.ergolinear33.99
5seelpy-1-17.en.ergolinear33.99
7essie-2.en.matrix43.76
8lydell-anishtro.en.ergodox51.21
9proxkb-thumbshift.en.ergodox51.26
9proxkb.en.ergodox51.26
11yoruian.en.ergodox52.06
12beakrak-1-2.en.ergodox52.59
13maltron-us-90.en.ergodox55.30
13maltron-us.en.ergolinear55.30
15maltron-us-90-mod-Andreas.en.ergodox55.74
16dvormax.en.ansi56.29
17beakl-clp-0.en.matrix59.87
18hieaqmtsrn.en.ansi68.17
19adnw.en.ansi68.97
20rsthd-2.en.ergolinear68.99
21noname-30.en.ansi69.81
22hieamtsrn.en.ansi70.72
23opuiany.en.ergodox70.86
24widely-alternating-A.en.ansi72.40
25arensito.en.ergolinear72.94
25arensito-kinesis.en.ergodox72.94
25arensito.en.ansi72.94
28blou.en.ansi73.17
29balance-twelve.en.ansi74.70
30seruxie.en.ansi76.15
31beakl-modified.en.ergodox78.09
32culemak-mod-Ian.en.ansi79.65
33culemak.en.ansi79.68
34mtgap-mod-joey2216.en.ansi81.30
35hoogendoorn.nl.ansi81.32
35juli19.en.ansi81.32
35pietergen-1.en.ansi81.32
38colemak-mod-DH-full.en.ansi82.48
38colemak-ultra-wide-vanilla.en.ansi82.48
38colemak-thumbshift2.en.ergolinear82.48
38colemak-wide.en.ansi82.48
38colemak.en.ansi82.48
38colemak-textblade.en.ansi82.48
38colemak-rshift-alttgr.en.ansi82.48
38colemak-jjt2.en.ergodox82.48
38colemak-programmer.en.ansi82.48
38colemak-rshift-altgr-enter.en.ansi82.48
38codemak.en.ansi82.48
38colemak-kinesis-advantage.en.ergodox82.48
38colemak-thumbshift.en.ergodox82.48
38mk-2-staggerfix.en.ansi82.48
38colemak-2.en.ergodox82.48
53adnw-mod-keen.en.ansi85.06
54m2-tweak.en.ansi85.41
54x1-ou.en.ergolinear85.41
56cole-e.en.ergodox85.51
57sorenk.en.ansi85.94
57sorenk-1.en.ergolinear85.94
59colibius-august.en.ansi86.92
60kolemak.en.ansi89.30
61cole-shift-e.en.ergodox89.51
62yrinaquo.en.ergodox89.51
63beakrak-1-1.en.ergodox90.88
64mtgap-thumbshift-2.en.ergolinear93.05
64mtgap.en.ansi93.05
64mtgap-thumbshift.en.ergodox93.05
67oneproduct.en.ansi93.18
683r.en.ergolinear93.74
69dsend-thumbshift.en.ergodox94.41
70x1.en.ansi94.70
70x1.en.ergolinear94.70
70x1.en.ergodox94.70
70r1-p.en.ansi94.70
70x1-tweaked.en.ergolinear94.70
70alice-7499-WIP.en.ansi94.70
70beakl-4-mod-Ian-AltGr-3.en.ansi94.70
70m1-2.en.ansi94.70
70m2.en.ansi94.70
70a7489-kle6882-WIP.en.ansi94.70
70a7429-kle7007-WIP.en.ansi94.70
81marsan-english.en.ergodox94.96
82einbinder-1975-mod-Ian.en.matrix95.42
83schizoKBD-shifted.en.ansi95.74
84embizone.en.ansi96.21
85beakrak-mod-Ian.en.ergodox97.46
86juyanith.en.ansi98.17
87beakl_opted1.en.ergodox101.54
88oistd.en.ansi101.98
89pietergen-2.en.ansi102.91
90mtgap-nisa.en.ansi103.65
91colemak-lite.en.ansi104.43
92beakrak.en.ergodox104.85
93hein-rightshift.en.ansi105.26
93hein.en.ansi105.26
95solemak.en.ansi106.05
95solemak-rightshift.en.ansi106.05
97einbinder-orthogonal.en.ergodox107.14
98beakl-4-mod-Ian-1.en.ergodox107.78
99mtgap-lering.en.ansi107.83
100colemak-mod-Fox.en.ansi107.83
101mtgap-3-5.en.ansi110.14
102colman.en.ansi114.94
103beakl-opted36.en.ergodox117.51
103beakl-opted36.en.ansi117.51
105x6.en.ergolinear118.69
106mtgap-iaet.en.ansi118.75
107mtgap-2-0.en.ansi119.16
107mtgap-2-0-altgr.en.ansi119.16
109niro-rightshift.en.ansi120.07
109niro.en.ansi120.07
111arinh.en.ansi120.12
111dickens-lsf.en.ansi120.12
113another-method-NON.en.ansi124.71
113another-method-NON-mirrored.en.ansi124.71
115x4.en.ergolinear124.93
115m3.en.ansi124.93
115x4.en.ansi124.93
115x5.en.ergolinear124.93
115s2.en.ansi124.93
115r2-p.en.ansi124.93
121haeik.en.ansi127.96
122capewell.en.ansi128.75
123x6-1.en.ergolinear129.32
124mtgap-asrt.en.ansi130.88
125colemak-uk.en.ansi131.00
126dvorak-mod-Kengo.en.ergodox132.00
127mtgap-tea.en.ansi132.85
128beakl-opted4.en.ansi133.71
128beakl-opted4.en.ergodox133.71
128beakl-opted4-alt.en.ergodox133.71
128beakl_stretch.en.ansi133.71
132antcolony.en.matrix136.23
133bvofrak-1.fr.iso145.05
134seelpy-1-lowscore.en.ergolinear148.18
135colemak.hu.iso148.56
136hieaqdtsrn.en.ansi152.86
137t-ht02a.en.ergodox153.93
138acemak1.en.ansi154.22
139typehack.en.ansi154.80
140hrnia.en.ansi155.26
141dvorak-mod-Ian.en.ansi156.17
141dvorak-mod-Ian-2.en.ansi156.17
143vukeys.en.ansi157.64
143vukeys-1.en.ergolinear157.64
145box-x.en.ansi159.28
146pieter-saeio.en.ansi160.23
147colibius-august-mod-Ian.en.ansi161.21
148x2.en.ergolinear165.23
149hieamtsrn-wide.en.ansi165.69
149hieadtsrn.en.ansi165.69
151mtgap-rots.en.ansi167.65
152x7-2h.en.ergolinear170.70
152x7-1h.en.ergolinear170.70
154heiadtsrn-wfgv.en.ansi172.41
155p_nr.en.matrix173.29
156eNNe-9640PM.en.ergodox175.23
157karrenbauer-oulasvirta-mod-Ian.en.ansi175.58
158colemak.et.iso178.16
159bvofrak.en.ansi179.38
160klausler.en.ansi181.35
161burroughs-bower.en.ansi183.61
162s1.en.ansi183.70
162m1.en.ansi183.70
164p_nr-mod-Ian.en.matrix184.10
165tallus.en.ansi186.24
166beakl_opted3.en.ergodox186.88
167beakl-10.en.matrix189.63
168goettl-brugh-julstrom.en.ansi194.48
169right-pinky-friend.en.ansi195.83
170dvorak-mod.en.ansi196.04
170dvorak-caps-backspace.en.ansi196.04
170dvorak.en.ergolinear196.04
170dvorak-programmer-ordered-numbers.en.ansi196.04
170dvorak-hackers-ordered-numbers.en.ansi196.04
170dvorak.en.ansi196.04
170dvorak-original-numbers.en.ansi196.04
170svorak-r-kinesis-asr.sw.ergodox196.04
178amuseum.en.ergodox196.05
179x2-AltGrHspace.en.ergolinear197.70
179x2-wip.en.ergolinear197.70
181minimotion.en.ansi198.17
182beakl-8-mod-Ian.en.matrix199.50
183huiea-mod-Ian.en.ansi200.49
184tarmak4.en.ansi200.95
185x2-HaltgrSpace.en.ergolinear203.99
186dangvu.en.ansi204.90
187dvorak-untangled.en.ansi206.73
188aoeyk.en.ansi207.49
189halmak-2-2.en.ansi208.64
190workman.en.ansi212.57
190workman-programmer.en.ansi212.57
192rick.en.ansi214.22
193alphametric.en.ansi215.00
194essie-3.en.ergolinear220.24
195cry.en.matrix221.92
196burroughs-bower-mod-Ian.en.ansi223.59
197zoinx.en.matrix224.21
198light-anderson-mod-Ian.en.ansi225.47
199huiea.en.ansi225.55
200balanced.en.ansi227.15
201beakl-8.en.matrix229.78
202beakl-5.en.matrix231.88
203tarmak3.en.ansi232.49
204bepo.fr.iso232.76
205x1-2.en.ergolinear234.34
206oiseau.en.ansi235.91
207light-anderson-mod-Ian-2.en.ansi243.22
208minimotion-mod-ElAzharty-Azmi-Suliman-mod-Ian.en.ansi246.65
209x6-mod-Sc0ty-NonGr.en.ergodox246.84
210vukeys-swapped-mod-Ian-2.en.ansi250.06
211essie-3-wip-2.en.ergolinear250.45
212asset.en.ansi255.14
213beakl-ez.en.matrix256.32
214beakl-7.en.matrix260.09
215halmak-2.en.ansi260.32
216threelayout-kla.en.ergodox262.35
217x6-2h.en.ergolinear262.61
217x6-1h.en.ergolinear262.61
219keyboardsamurai-july.en.ansi262.89
220x6-5h.en.ergolinear262.90
220x6-3h.en.ergolinear262.90
220x6-4h.en.ergolinear262.90
220x7h.en.ergolinear262.90
224anglian.en.iso269.72
225beakl-9.en.matrix269.93
226dvorak-mod-Capewell.en.ansi270.65
227ttast.en.ansi273.40
228eaton.en.ansi274.34
229iaenh.en.ansi279.68
230beakl-7-mod-Ian.en.matrix282.11
230newden-mod-Ian.en.ansi282.11
232balanced-v.en.ergodox283.96
233thumb-o-board-tweaked.en.ansi284.80
234einbinder-10-finger.en.ansi288.89
235rusk-mod-Ian.en.ansi291.77
236dvorak-mod-Kaeteker.en.ansi292.57
237rhythmic.en.ansi294.83
238gupta-whrl.en.ergolinear295.54
239krush-200.en.ergolinear299.03
240halmak.en.ansi300.00
241schizoKBD-AltGrSpc.en.ansi302.26
241schizoKBD-shifted-AltGrSpc.en.ansi302.26
243minimak-12key.en.ansi302.37
243minimak-4key.en.ansi302.37
243minimak-8key.en.ansi302.37
246qwpr-no-altgr.en.ansi305.08
247qwerak.en.ansi308.41
248tarmak2.en.ansi311.85
248syperk-qwfrj.en.ansi311.85
250yak.en.ansi315.17
251beakl-clp-1.en.matrix325.04
252parkinson.en.ansi329.61
253qfmlwy.en.ansi335.18
254syperk-qwjrf.en.ansi337.56
254tarmak1.en.ansi337.56
256liigol-mod-Ian-2.en.ansi341.29
257colemak-mod-Ian.en.ansi345.34
258rusk.en.ansi346.60
259as-in-red-hot-mod-Ian.en.ansi349.79
260widePDK-custom.en.ansi350.67
261codemakx.en.ansi350.73
261qgmlwy.en.ansi350.73
261qgmlwy.en.ergolinear350.73
264romberg.en.ansi351.05
265essie-3-wip.en.ergolinear353.73
266x2-HspaceAltgr.en.ergolinear361.79
266x2-20161107.en.ergolinear361.79
268light-anderson.en.ansi365.96
269liigol-mod-Ian.en.ansi366.79
270liigol.en.ansi370.09
271qgmlwb.en.ansi370.91
272carpalxq.en.ansi374.89
273jan.en.ansi376.03
274s3.en.ansi385.21
275mcgunnigle-scientific.en.ansi400.79
276white.en.ansi403.45
277mcgunnigle-peoples-rehomed.en.ansi406.31
278adore.en.ergodox410.58
279jeff.en.ergodox417.08
280nawfal.en.ergolinear418.18
281combinational.en.ansi428.12
282fargas.en.iso430.47
283a-joy.en.ansi431.66
283a-joy-rehomed.en.ansi431.66
285antibracket-no-numrow.en.ansi436.61
286colemak-mod-Ian-2.en.ansi436.93
287chin-programmer.en.ansi439.98
287chin.en.ansi439.98
289qwerty-untangled.en.ansi445.37
290siwei.en.ansi446.36
291phynnboi-asdtg.en.ansi446.58
292blick-mod-Ian.en.ansi452.89
293ward.en.ansi453.06
294de_correspondent.nl.ansi461.86
295jppe.en.ansi463.84
296qwerty-row-swap-mod-Ian.en.ansi480.69
297rike.en.ansi481.16
298dreymar.en.ansi481.81
299colemak-jph.en.ansi483.74
300savard.en.ansi483.90
301harbaugh.en.ansi487.37
302rotsw.en.ansi493.67
303pittard.en.ansi496.91
304qwerty-wide-programmer.en.ansi501.45
305terakasorotany-mod-ian.mg.ansi503.17
306norman.en.ansi503.58
306norman.en.ergodox503.58
308cyberswarm-mod-Ian.en.ansi504.62
309plum.en.ergolinear519.91
310qwertz.de.iso524.24
311qwerty-row-swap.en.ansi525.73
311qwerfj.en.ansi525.73
311capewell-qwerf.en.ansi525.73
311qwerty.es.iso525.73
311qwerty-programmer.en.ansi525.73
311qwerty.sv.iso525.73
311qwerty-p.en.ansi525.73
311qwerty.en.matrix525.73
311qwerty.en.ansi525.73
311qwerty.dk.iso525.73
311nasiraj.en.ansi525.73
311qwerty-wide.en.ansi525.73
311qwerty-kinesis-advantage.en.ergodox525.73
311qwerty-thumbshift.en.ergodox525.73
311qwerty-rehomed.en.ansi525.73
326typematrix.en.ansi533.79
327azerty.fr.iso546.31
328harrison.en.ansi547.24
329qwyrfm.en.ansi549.70
330qwuio.en.ansi553.42
331armel-mod-Ian.en.ansi571.20
332qwerty.et.iso573.79
333dvorak-onehand-right.en.ansi579.17
334qwerty-rehomed-ian.en.ansi583.12
335walker.en.ansi583.67
336qwerty-typewriter.en.ansi588.85
337qwerty-revised.en.ansi595.35
337ferguson.en.ansi595.35
339banaji.en.ansi610.39
340streitz.en.ansi614.13
341hoke.en.ansi620.46
342tyler.en.ansi622.72
343blick.en.ansi622.76
344ashley-gudyr.en.ansi627.25
345fitch.en.ansi643.67
346neo2.en.ansi644.32
347qwerty-sux.en.ansi666.04
348qwkrfy.en.ansi675.88
349qwerty-q-layout.en.ansi684.19
350terakasorotany.mg.ansi704.66
351ina-dv.en.ansi726.53
352cyberswarm.en.ansi739.17
353qwerty-top-row-thumbs.en.ansi751.13
354as-in-red-hot.en.ansi752.51
355mcgunnigle-perfect.en.ansi753.51
356wong-oiuea.en.ansi755.65
357qwerty-mod-noah.en.ansi757.51
358trotman.en.ansi769.26
359savard-vertical-alpha.en.ansi775.70
360keymacs.en.ansi795.57
361wong-poiea.en.ansi865.30
362kurriss.en.ansi865.74
363armel.en.ansi870.66
364dvorak-mod-ElAzharty-Azmi-Suliman-mod-Ian.en.ansi889.46
365rowell.en.ansi970.18
366orthographic.en.ansi973.73
367culemak-mod-Ian-hp.en.ansi980.51
368speedkeys.en.ansi986.98
369reverse-qwerty.en.ansi988.53
370abcdef.en.ansi1,115.40
371wolcott.en.ansi1,176.21
372dvorak-onehand-left.en.ansi1,237.05
373tnwmlc.en.ansi1,273.44
374mcgunnigle-peoples.en.ansi1,757.11