Best keyboard layouts by efficiency

8 January 2018

This page shows the best computer keyboard layouts for English and programming, according to their efficiency score.

The efficiency is calculated from the distance measured using Den's modified scoring (which includes vertical distance) on Keyboard Layout Analyzer.

For a given input text, we assume that a finger would need to move one key width (plus down and up and back) for each character in the text. So the distance is calculated as (number of characters * (19 + 4 + 4 + 19) mm). This is then compared to the actual distance measured, and turned into a percentage.

It's quite possible for a layout to achieve over 100%, especially the split-case designs and other AltGr designs which have more than one lower case letter on a key.


RankLayoutEfficiency %
1seelpy-1-4.en.ergolinear128.80
2seelpy-1-8.en.ergolinear128.71
3seelpy-1-1.en.ergolinear128.21
4seelpy-1-22.en.ergolinear127.82
5seelpy-1-17.en.ergolinear127.81
6seelpy-1.en.ergolinear127.37
7seelpy-1-lowscore.en.ergolinear127.37
83r.en.ergolinear124.93
9x6-2h.en.ergolinear121.92
10x6-3h.en.ergolinear121.92
11x2-20161107.en.ergolinear121.18
12x2-HspaceAltgr.en.ergolinear121.18
13x2-HaltgrSpace.en.ergolinear121.18
14rsthd-2.en.ergolinear120.95
15x7h.en.ergolinear120.70
16x6-1h.en.ergolinear120.50
17x6-5h.en.ergolinear120.48
18x6-4h.en.ergolinear120.48
19arensito.en.ergolinear120.21
20einbinder-1975-mod-Ian.en.matrix119.90
21sorenk-1.en.ergolinear119.81
22nawfal.en.ergolinear119.72
23vukeys-1.en.ergolinear119.56
24t-ht02a.en.ergodox119.43
25maltron-us.en.ergolinear119.41
26colemak-thumbshift2.en.ergolinear118.10
27proxkb-thumbshift.en.ergodox117.94
28arensito-kinesis.en.ergodox117.34
29x4.en.ergolinear117.26
30x1-tweaked.en.ergolinear117.20
31x1-ou.en.ergolinear117.10
32x1.en.ergolinear117.10
33x1.en.ergodox116.90
34x6-1.en.ergolinear116.83
35x5.en.ergolinear116.31
36einbinder-orthogonal.en.ergodox116.30
37x6.en.ergolinear115.85
38eNNe-9640PM.en.ergodox115.81
39essie-2.en.matrix115.77
40mtgap-thumbshift-2.en.ergolinear115.57
41lydell-anishtro.en.ergodox115.27
42x1-2.en.ergolinear115.20
43colemak-thumbshift.en.ergodox114.75
44x2-AltGrHspace.en.ergolinear114.42
45x2-wip.en.ergolinear114.42
46x2.en.ergolinear114.36
47x4.en.ansi114.27
48cole-shift-e.en.ergodox114.16
49x1.en.ansi114.08
50maltron-us-90-mod-Andreas.en.ergodox113.83
51x6-mod-Sc0ty-NonGr.en.ergodox113.79
52proxkb.en.ergodox113.76
53maltron-us-90.en.ergodox113.67
54qgmlwy.en.ergolinear113.46
55beakl-4-mod-Ian-1.en.ergodox113.44
56cole-e.en.ergodox113.38
57mtgap-thumbshift.en.ergodox112.90
58beakl-clp-0.en.matrix112.53
59dsend-thumbshift.en.ergodox112.48
60plum.en.ergolinear112.37
61arensito.en.ansi112.29
62beakl-4-mod-Ian-AltGr-3.en.ansi112.24
63schizoKBD-shifted.en.ansi111.95
64opuiany.en.ergodox111.90
65balanced-v.en.ergodox111.78
66amuseum.en.ergodox111.31
67a7429-kle7007-WIP.en.ansi110.94
68a7489-kle6882-WIP.en.ansi110.88
69yrinaquo.en.ergodox110.38
70alice-7499-WIP.en.ansi110.16
71m1.en.ansi110.07
72threelayout-kla.en.ergodox109.72
73colemak-jjt2.en.ergodox109.57
74dvorak.en.ergolinear109.38
75colemak-rshift-altgr-enter.en.ansi109.21
76beakl-5.en.matrix109.05
77yoruian.en.ergodox108.70
78essie-3.en.ergolinear108.65
79adore.en.ergodox108.38
80beakl-ez.en.matrix108.33
81jeff.en.ergodox108.20
82colemak-2.en.ergodox108.18
83essie-3-wip-2.en.ergolinear107.84
84beakl-opted36.en.ergodox107.61
85beakl_opted1.en.ergodox107.44
86mk-2-staggerfix.en.ansi107.41
87cry.en.matrix107.35
88beakl-7-mod-Ian.en.matrix107.22
89essie-3-wip.en.ergolinear107.19
90r2-p.en.ansi107.15
91r1-p.en.ansi107.05
92m2-tweak.en.ansi107.03
93beakrak-mod-Ian.en.ergodox107.03
94beakl-opted4.en.ergodox106.97
95m1-2.en.ansi106.93
96m2.en.ansi106.93
97m3.en.ansi106.79
98p_nr.en.matrix106.19
99p_nr-mod-Ian.en.matrix106.19
100x7-1h.en.ergolinear105.56
101x7-2h.en.ergolinear105.55
102colemak-kinesis-advantage.en.ergodox105.30
103beakl-opted4-alt.en.ergodox104.83
104krush-200.en.ergolinear104.82
105norman.en.ergodox104.78
106svorak-r-kinesis-asr.sw.ergodox104.00
107beakl-10.en.matrix103.31
108colemak-rshift-alttgr.en.ansi102.85
109marsan-english.en.ergodox102.78
110gupta-whrl.en.ergolinear102.69
111niro-rightshift.en.ansi102.31
112solemak-rightshift.en.ansi101.74
113beakl_opted3.en.ergodox101.74
114beakrak-1-1.en.ergodox101.47
115beakl-opted36.en.ansi101.37
116beakrak.en.ergodox101.26
117zoinx.en.matrix101.04
118hieaqmtsrn.en.ansi100.98
119beakl-9.en.matrix100.96
120aoeyk.en.ansi100.94
121minimotion-mod-ElAzharty-Azmi-Suliman-mod-Ian.en.ansi100.90
122beakl-7.en.matrix100.80
123widely-alternating-A.en.ansi100.48
124colemak-wide.en.ansi100.47
125beakl-modified.en.ergodox100.26
126beakl-8.en.matrix100.22
127beakl-8-mod-Ian.en.matrix100.22
128hein-rightshift.en.ansi100.17
129mtgap-2-0.en.ansi100.16
130fargas.en.iso100.15
131rotsw.en.ansi100.09
132culemak-mod-Ian.en.ansi100.05
133hrnia.en.ansi100.03
134culemak.en.ansi100.00
135mtgap-rots.en.ansi99.93
136kolemak.en.ansi99.86
137niro.en.ansi99.81
138mtgap-tea.en.ansi99.79
139iaenh.en.ansi99.72
140mtgap-3-5.en.ansi99.71
141mtgap-nisa.en.ansi99.67
142mtgap-asrt.en.ansi99.65
143dickens-lsf.en.ansi99.56
144bvofrak.en.ansi99.51
145hoke.en.ansi99.50
146liigol-mod-Ian-2.en.ansi99.48
147mtgap-iaet.en.ansi99.45
148eaton.en.ansi99.44
149oistd.en.ansi99.43
150hieadtsrn.en.ansi99.40
151sorenk.en.ansi99.37
152burroughs-bower.en.ansi99.37
153hieaqdtsrn.en.ansi99.36
154dvorak-mod-Capewell.en.ansi99.35
155hieamtsrn-wide.en.ansi99.33
156dvorak-mod-ElAzharty-Azmi-Suliman-mod-Ian.en.ansi99.32
157solemak.en.ansi99.25
158burroughs-bower-mod-Ian.en.ansi99.23
159vukeys.en.ansi99.23
160dangvu.en.ansi99.22
161as-in-red-hot-mod-Ian.en.ansi99.21
162balanced.en.ansi99.21
163capewell.en.ansi99.18
164colibius-august-mod-Ian.en.ansi99.15
165yak.en.ansi99.14
166colibius-august.en.ansi99.03
167colman.en.ansi99.02
168jppe.en.ansi98.97
169colemak-jph.en.ansi98.97
170colemak-mod-Fox.en.ansi98.95
171liigol.en.ansi98.92
172keyboardsamurai-july.en.ansi98.92
173norman.en.ansi98.85
174minimotion.en.ansi98.84
175arinh.en.ansi98.83
176halmak-2-2.en.ansi98.81
177halmak.en.ansi98.81
178colemak.en.ansi98.81
179colemak-uk.en.ansi98.81
180cyberswarm-mod-Ian.en.ansi98.79
181halmak-2.en.ansi98.76
182liigol-mod-Ian.en.ansi98.76
183colemak-lite.en.ansi98.76
184mtgap-mod-joey2216.en.ansi98.72
185acemak1.en.ansi98.69
186colemak-mod-Ian.en.ansi98.69
187codemak.en.ansi98.68
188s1.en.ansi98.64
189heiadtsrn-wfgv.en.ansi98.61
190box-x.en.ansi98.58
191workman.en.ansi98.57
192colemak-programmer.en.ansi98.56
193klausler.en.ansi98.55
194workman-programmer.en.ansi98.52
195beakl-clp-1.en.matrix98.50
196blick-mod-Ian.en.ansi98.44
197colemak-mod-DH-full.en.ansi98.43
198hieamtsrn.en.ansi98.39
199dvorak-mod-Kengo.en.ergodox98.37
200colemak-ultra-wide-vanilla.en.ansi98.35
201widePDK-custom.en.ansi98.33
202s3.en.ansi98.30
203qwerak.en.ansi98.30
204tallus.en.ansi98.26
205oiseau.en.ansi98.24
206dvorak-mod.en.ansi98.24
207asset.en.ansi98.19
208dvorak-mod-Kaeteker.en.ansi98.18
209dvorak-mod-Ian-2.en.ansi98.18
210dvorak-mod-Ian.en.ansi98.18
211dreymar.en.ansi98.10
212light-anderson-mod-Ian-2.en.ansi97.85
213mcgunnigle-perfect.en.ansi97.81
214colemak-textblade.en.ansi97.77
215keymacs.en.ansi97.76
216hein.en.ansi97.75
217romberg.en.ansi97.75
218blou.en.ansi97.69
219ashley-gudyr.en.ansi97.67
220vukeys-swapped-mod-Ian-2.en.ansi97.64
221antibracket-no-numrow.en.ansi97.60
222thumb-o-board-tweaked.en.ansi97.46
223mtgap.en.ansi97.43
224mtgap-2-0-altgr.en.ansi97.07
225colemak-mod-Ian-2.en.ansi97.05
226balance-twelve.en.ansi97.05
227huiea-mod-Ian.en.ansi96.90
228antcolony.en.matrix96.84
229savard.en.ansi96.77
230juyanith.en.ansi96.74
231adnw-mod-keen.en.ansi96.69
232light-anderson-mod-Ian.en.ansi96.61
233haeik.en.ansi96.59
234beakrak-1-2.en.ergodox96.59
235pittard.en.ansi96.56
236oneproduct.en.ansi96.53
237einbinder-10-finger.en.ansi96.51
238noname-30.en.ansi96.37
239seruxie.en.ansi96.34
240s2.en.ansi96.30
241rusk-mod-Ian.en.ansi96.11
242embizone.en.ansi95.98
243anglian.en.iso95.91
244mcgunnigle-scientific.en.ansi95.83
245carpalxq.en.ansi95.75
246qwpr-no-altgr.en.ansi95.72
247pietergen-2.en.ansi95.65
248qgmlwb.en.ansi95.63
249juli19.en.ansi95.60
250pietergen-1.en.ansi95.60
251hoogendoorn.nl.ansi95.49
252another-method-NON-mirrored.en.ansi95.49
253rusk.en.ansi95.47
254qgmlwy.en.ansi95.33
255another-method-NON.en.ansi95.32
256right-pinky-friend.en.ansi95.31
257codemakx.en.ansi95.24
258white.en.ansi95.23
259tarmak4.en.ansi95.20
260as-in-red-hot.en.ansi94.87
261dvormax.en.ansi94.73
262blick.en.ansi94.53
263tyler.en.ansi94.52
264pieter-saeio.en.ansi94.44
265ward.en.ansi94.43
266dvorak.en.ansi94.21
267jan.en.ansi94.16
268dvorak-caps-backspace.en.ansi94.15
269goettl-brugh-julstrom.en.ansi94.05
270dvorak-original-numbers.en.ansi94.04
271dvorak-hackers-ordered-numbers.en.ansi94.02
272dvorak-programmer-ordered-numbers.en.ansi94.02
273alphametric.en.ansi93.72
274rick.en.ansi93.61
275typehack.en.ansi93.47
276qwerty-row-swap-mod-Ian.en.ansi93.39
277neo2.en.ansi93.20
278dvorak-untangled.en.ansi93.19
279a-joy-rehomed.en.ansi92.65
280minimak-12key.en.ansi92.59
281newden-mod-Ian.en.ansi92.13
282mtgap-lering.en.ansi92.08
283adnw.en.ansi91.80
284beakl-opted4.en.ansi91.71
285de_correspondent.nl.ansi91.43
286kurriss.en.ansi91.13
287qwyrfm.en.ansi90.55
288cyberswarm.en.ansi89.82
289wong-oiuea.en.ansi89.13
290rhythmic.en.ansi89.03
291chin.en.ansi88.81
292chin-programmer.en.ansi88.78
293qfmlwy.en.ansi88.32
294minimak-8key.en.ansi88.02
295tarmak3.en.ansi87.54
296ferguson.en.ansi87.31
297harrison.en.ansi87.22
298qwerty-row-swap.en.ansi87.19
299ina-dv.en.ansi87.12
300karrenbauer-oulasvirta-mod-Ian.en.ansi86.69
301qwkrfy.en.ansi86.66
302huiea.en.ansi86.46
303syperk-qwfrj.en.ansi86.14
304qwerty-revised.en.ansi86.02
305wong-poiea.en.ansi85.98
306syperk-qwjrf.en.ansi85.92
307tarmak2.en.ansi85.87
308ttast.en.ansi84.75
309wolcott.en.ansi84.49
310a-joy.en.ansi84.33
311qwerty-rehomed-ian.en.ansi84.26
312harbaugh.en.ansi84.09
313savard-vertical-alpha.en.ansi83.96
314capewell-qwerf.en.ansi83.94
315speedkeys.en.ansi83.90
316combinational.en.ansi82.92
317orthographic.en.ansi82.77
318qwuio.en.ansi82.47
319parkinson.en.ansi82.38
320culemak-mod-Ian-hp.en.ansi81.55
321phynnboi-asdtg.en.ansi81.53
322schizoKBD-AltGrSpc.en.ansi80.63
323schizoKBD-shifted-AltGrSpc.en.ansi80.37
324rike.en.ansi80.09
325tarmak1.en.ansi80.03
326minimak-4key.en.ansi79.64
327qwerfj.en.ansi78.66
328mcgunnigle-peoples-rehomed.en.ansi78.40
329siwei.en.ansi77.82
330armel-mod-Ian.en.ansi77.80
331beakl_stretch.en.ansi77.26
332qwerty-thumbshift.en.ergodox76.31
333armel.en.ansi76.27
334fitch.en.ansi75.38
335qwerty-q-layout.en.ansi74.68
336qwerty-rehomed.en.ansi74.65
337walker.en.ansi74.50
338banaji.en.ansi73.56
339qwerty.en.matrix73.52
340rowell.en.ansi73.18
341mcgunnigle-peoples.en.ansi72.67
342qwerty-wide-programmer.en.ansi72.10
343qwerty-kinesis-advantage.en.ergodox72.10
344light-anderson.en.ansi72.05
345qwerty-wide.en.ansi70.71
346abcdef.en.ansi70.67
347qwerty-typewriter.en.ansi70.35
348qwerty-p.en.ansi70.13
349qwerty-programmer.en.ansi69.51
350nasiraj.en.ansi69.35
351qwerty.en.ansi69.35
352streitz.en.ansi69.27
353qwerty-sux.en.ansi68.32
354qwerty-untangled.en.ansi67.17
355reverse-qwerty.en.ansi66.51
356qwerty-top-row-thumbs.en.ansi64.89
357trotman.en.ansi63.23
358qwerty-mod-noah.en.ansi62.27
359tnwmlc.en.ansi60.86
360typematrix.en.ansi60.48