qwerty vs dvorak vs colemak to edit Python code
Yesterday, I was intrigued by the idea of choosing a more efficient keyboard layout to work with everyday. As long as I type Python code 90% of my time, I decided to evaluate the efficiency of the first 3 most widespread keyboard layouts: QWERTY, Dvorak and Colemak. I used this excellent tool to compare the three layouts over the first 50000 characters of the webpy source code. Here are the results:
The Qwerty Keyboard Layout Vs The Dvorak Keyboard Layout
:: UP ::Overall effort
| Layout | Effort | % improvement over worst layout | |
| Qwerty | 306,509.6 | 0.0 % | |
| Dvorak | 283,868.7 | 7.4 % | |
| Colemak | 275,347.6 | 10.2 % |
:: UP ::Keys for each finger (stronger fingers should be used more often)
| Layout | Thumbs | LPinky | LRing | LMiddle | LIndex | RIndex | RMiddle | RRing | RPinky | Total |
| Qwerty | 25.9 % | 12.4 % | 5.3 % | 9.5 % | 11.6 % | 7.6 % | 5.6 % | 8.9 % | 13.2 % | 54,237.0 keys |
| Dvorak | 25.9 % | 13.0 % | 5.2 % | 8.1 % | 7.3 % | 7.5 % | 7.5 % | 8.2 % | 17.3 % | 54,237.0 keys |
| Colemak | 25.9 % | 12.7 % | 4.8 % | 7.5 % | 9.5 % | 8.4 % | 10.1 % | 6.6 % | 14.5 % | 54,237.0 keys |
| Layout | Thumbs | Left hand | Right hand | Total | |
| Qwerty | 25.9 % | 38.8 % | 35.2 % | 54,237.0 keys | |
| Dvorak | 25.9 % | 33.6 % | 40.5 % | 54,237.0 keys | |
| Colemak | 25.9 % | 34.5 % | 39.6 % | 54,237.0 keys |
:: UP ::Finger Travel Distance (only the horizontal)
| Layout | Thumbs | LPinky | LRing | LMiddle | LIndex | RIndex | RMiddle | RRing | RPinky | Total |
| Qwerty | 0.0 % | 18.1 % | 2.0 % | 10.5 % | 15.5 % | 12.1 % | 8.6 % | 9.9 % | 23.4 % | 1,441.5 m |
| Dvorak | 0.0 % | 21.1 % | 4.1 % | 3.5 % | 10.0 % | 12.5 % | 7.6 % | 10.8 % | 30.4 % | 1,210.3 m |
| Colemak | 0.0 % | 23.7 % | 2.5 % | 6.1 % | 10.2 % | 10.2 % | 9.3 % | 9.3 % | 28.6 % | 1,131.2 m |
| Layout | Thumbs | Left hand | Right hand | Total | |
| Qwerty | 0.0 % | 46.0 % | 54.0 % | 1,441.5 m | |
| Dvorak | 0.0 % | 38.8 % | 61.2 % | 1,210.3 m | |
| Colemak | 0.0 % | 42.6 % | 57.4 % | 1,131.2 m |
:: UP ::% home keys (out of all character keys plus SHIFT and ENTER, but excluding keys operated by thumbs)
| Qwerty | 20.4 % | |
| Dvorak | 33.7 % | |
| Colemak | 38.7 % |
:: UP ::% keys typed with the same finger as the previous key (excluding repeating keys like ss)
| Qwerty | 4.5 % | |
| Dvorak | 3.8 % | |
| Colemak | 3.6 % |
:: UP ::% keys typed with the same hand as the previous key (ex: in Qwerty sd or ss are included, but s s is not since you type the space with the other hand)
| Qwerty | 26.8 % | |
| Dvorak | 20.0 % | |
| Colemak | 24.6 % |
:: UP ::% keys typed with the same hand as the previous key and jumping a row (ex: in Qwerty ev is a row jump -- you jump over the middle row -- and it's awkward to type; ef is not a row jump)
| Qwerty | 10.3 % | |
| Dvorak | 5.7 % | |
| Colemak | 4.1 % |
:: UP ::% keys typed with the same hand as the previous key and in reverse order (ex: in Qwerty df or kj are typed in the easier order pinky-ring-middle-index, whereas fd and jk are in reverse order index-middle-ring-pinky, and harder to type)
| Qwerty | 15.4 % | |
| Dvorak | 11.9 % | |
| Colemak | 15.2 % |
:: UP ::% keys that need the SHIFT modifier
| Qwerty | 14.3 % | |
| Dvorak | 14.3 % | |
| Colemak | 14.3 % |
:: UP ::Pairs of consecutive keys typed with the same finger in Qwerty
| :/NewLine/ | 253 times | 0.47 % |
| de | 200 times | 0.37 % |
| tr | 158 times | 0.29 % |
| rt | 102 times | 0.19 % |
| ol | 99 times | 0.18 % |
| un | 98 times | 0.18 % |
| q\_LeftShift\_ | 87 times | 0.16 % |
| ce | 86 times | 0.16 % |
| “/NewLine/ | 81 times | 0.15 % |
| ed | 80 times | 0.15 % |
| }/NewLine/ | 62 times | 0.11 % |
:: UP ::Pairs of consecutive keys typed with the same finger in Dvorak
| ct | 196 times | 0.36 % |
| s\_RightShift\_ | 169 times | 0.31 % |
| db | 152 times | 0.28 % |
| l\_RightShift\_ | 137 times | 0.25 % |
| ‘/LeftShift/ | 133 times | 0.25 % |
| rn | 115 times | 0.21 % |
| ls | 100 times | 0.18 % |
| }/NewLine/ | 62 times | 0.11 % |
| =/RightShift/ | 59 times | 0.11 % |
| “/LeftShift/ | 58 times | 0.11 % |
| e. | 58 times | 0.11 % |
:: UP ::Pairs of consecutive keys typed with the same finger in Colemak
| :/NewLine/ | 253 times | 0.47 % |
| ue | 237 times | 0.44 % |
| db | 152 times | 0.28 % |
| e, | 89 times | 0.16 % |
| q\_LeftShift\_ | 87 times | 0.16 % |
| “/NewLine/ | 81 times | 0.15 % |
| }/NewLine/ | 62 times | 0.11 % |
| ]/NewLine/ | 46 times | 0.08 % |
| pt | 44 times | 0.08 % |
| ‘/RightShift/ | 41 times | 0.08 % |
| “/RightShift/ | 41 times | 0.08 % |
:: UP ::Key frequency in your text
| /Space/ | 14067 times | 25.94 % |
| /LeftShift/ | 4391 times | 8.10 % |
| e | 3239 times | 5.97 % |
| t | 2184 times | 4.03 % |
| s | 2170 times | 4.00 % |
| r | 1890 times | 3.48 % |
| a | 1619 times | 2.99 % |
| o | 1557 times | 2.87 % |
| l | 1530 times | 2.82 % |
| n | 1519 times | 2.80 % |
| /NewLine/ | 1511 times | 2.79 % |
| i | 1372 times | 2.53 % |
| /RightShift/ | 1357 times | 2.50 % |
| d | 1014 times | 1.87 % |
| f | 971 times | 1.79 % |
| c | 855 times | 1.58 % |
| u | 851 times | 1.57 % |
| m | 716 times | 1.32 % |
| p | 715 times | 1.32 % |
| ( | 674 times | 1.24 % |
| ) | 673 times | 1.24 % |
| . | 658 times | 1.21 % |
| ‘ | 623 times | 1.15 % |
| , | 573 times | 1.06 % |
| b | 571 times | 1.05 % |
| “ | 563 times | 1.04 % |
| \_ | 554 times | 1.02 % |
| = | 518 times | 0.96 % |
| : | 490 times | 0.90 % |
| q | 463 times | 0.85 % |
| y | 423 times | 0.78 % |
| h | 416 times | 0.77 % |
| w | 352 times | 0.65 % |
| > | 348 times | 0.64 % |
| g | 304 times | 0.56 % |
| v | 257 times | 0.47 % |
| x | 253 times | 0.47 % |
| k | 231 times | 0.43 % |
| < | 154 times | 0.28 % |
| / | 125 times | 0.23 % |
| [] | 119 times | 0.22 % |
| ; | 113 times | 0.21 % |
| 0 | 86 times | 0.16 % |
| ` | 85 times | 0.16 % |
| + | 84 times | 0.15 % |
| 1 | 81 times | 0.15 % |
| { | 80 times | 0.15 % |
| } | 79 times | 0.15 % |
| - | 78 times | 0.14 % |
| j | 76 times | 0.14 % |
| * | 72 times | 0.13 % |
| # | 69 times | 0.13 % |
| 2 | 67 times | 0.12 % |
| % | 55 times | 0.10 % |
| $ | 52 times | 0.10 % |
| 3 | 31 times | 0.06 % |
| 6 | 29 times | 0.05 % |
| 8 | 18 times | 0.03 % |
| @ | 17 times | 0.03 % |
| 14 times | 0.03 % | |
| z | 13 times | 0.02 % |
| 5 | 13 times | 0.02 % |
| 4 | 8 times | 0.01 % |
| ? | 8 times | 0.01 % |
| 9 | 7 times | 0.01 % |
:: UP ::Frequent pairs of keys in your text
| \_Space\_\_Space\_ | 9243 times | 17.04 % |
| \_NewLine\_\_Space\_ | 1233 times | 2.27 % |
| \_Space\_\_LeftShift\_ | 805 times | 1.48 % |
| /LeftShift/( | 674 times | 1.24 % |
| /LeftShift/) | 673 times | 1.24 % |
| /LeftShift/” | 563 times | 1.04 % |
| \_LeftShift\_\_ | 554 times | 1.02 % |
| se | 549 times | 1.01 % |
| ,/Space/ | 543 times | 1.00 % |
| /LeftShift/: | 490 times | 0.90 % |
| el | 405 times | 0.75 % |
| er | 377 times | 0.70 % |
| in | 364 times | 0.67 % |
| \_Space\_\_RightShift\_ | 362 times | 0.67 % |
| or | 352 times | 0.65 % |
| /LeftShift/> | 348 times | 0.64 % |
| /Space/i | 344 times | 0.63 % |
| /Space/s | 341 times | 0.63 % |
| te | 340 times | 0.63 % |
| e\_LeftShift\_ | 338 times | 0.62 % |
| =/Space/ | 332 times | 0.61 % |
| /Space/= | 321 times | 0.59 % |
| re | 306 times | 0.56 % |
| lf | 294 times | 0.54 % |
| )/NewLine/ | 281 times | 0.52 % |
| e\_Space\_ | 281 times | 0.52 % |
Actually, I was disappointed: there seem to be no clear advantage of Dvorak or Colemak, wrt QWERTY and, given the popularity of the latter, switching does not seem to be a good idea…