Other GNU tips

I have long been a Dvorak keyboard typist, however over time I've come to the conclusion that although it is superior in efficiency to the common QWERTY keyboard, it has serious flaws.

Most used keys are not in the most desirable locations in Dvorak, namely on the home row under the index and middle fingers etc. The Dvorak keyboard being developed in the beginning of the 20th century it seems wasn't based on a profound, from today's standpoint, statistical frequency analysis of the English language.

Therefore it seems natural to try to improve on its design.

Via serious thought and analysis I've derived the following layout, the kxkb layout:

{} `~ 9_ 7# 3% 1$ 5^ 4* 0@ 2& 6= 8+ :; []
CAPS z k m l w f u c v q '" ><
TAB S N O T R D E A I H RET ()
-| ,! j y b p g x .? /\

The process to determine the layout:

I have consulted and analyzed the following sources:

Utilizing the first link as the most important basis, we see the definitive letter usage frequencies in the English language:

Rank Letter Usage
1 e 12.58%
2 t 9.09%
3 a 8.00%
4 o 7.59%
5 i 6.92%
6 n 6.90%
7 s 6.34%
8 h 6.24%
9 r 5.96%
10 d 4.32%
11 l 4.06%
12 u 2.84%
13 c 2.58%
14 m 2.56%
15 f 2.35%
16 w 2.22%
17 g 1.98%
18 y 1.90%
19 p 1.80%
20 b 1.54%
21 v 0.98%
22 k 0.74%
23 x 0.18%
24 j 0.15%
25 q 0.11%
26 z 0.07%

Furthermore, the results of the analysis of top bigrams, trigrams and quadrigrams are important for keyboard design.

Bigrams

Rank Bigram Usage
1 th 3.88%
2 he 3.68%
3 in 2.28%
4 er 2.18%
5 an 2.14%
6 re 1.75%
7 nd 1.57%
8 on 1.42%
9 en 1.38%
10 at 1.34%
11 ou 1.29%
12 ed 1.28%
13 ha 1.27%
14 to 1.17%
15 or 1.15%
16 it 1.13%
17 is 1.11%
18 hi 1.09%
19 es 1.09%
20 ng 1.05%

Trigrams

Rank Trigram Usage
1 the 3.51%
2 and 1.59%
3 ing 1.15%
4 her 0.82%
5 hat 0.65%
6 his 0.60%
7 tha 0.59%
8 ere 0.56%
9 for 0.56%
10 ent 0.53%
11 ion 0.51%
12 ter 0.46%
13 was 0.46%
14 you 0.44%
15 ith 0.43%
16 ver 0.43%
17 all 0.42%
18 wit 0.40%
19 thi 0.39%
20 tio 0.38%

Quadrigrams

Rank Quadrigram Usage
1 that 0.76%
2 ther 0.60%
3 with 0.57%
4 tion 0.55%
5 here 0.37%
6 ould 0.37%
7 ight 0.31%
8 have 0.29%
9 hich 0.28%
10 whic 0.28%
11 this 0.28%
12 thin 0.27%
13 they 0.26%
14 atio 0.26%
15 ever 0.26%
16 from 0.26%
17 ough 0.25%
18 were 0.23%
19 hing 0.23%
20 ment 0.22%

A standard PC keyboard with a QWERTY layout now has the following key layout (ignoring the special keys, like Enter, Shift, etc.) - bold capital keys below representing the home row.

`~ 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ += \|
TAB q w e r t y u i o p [{ ]}
CAPS A S D F g h J K L ;: '" RET
z x c v b n m ,< .> /?

These are therefore the keys we will be remapping to derive the best keyboard layout in terms of effectiveness.

Determine keyboard keys rank

In order to determine just an empty keyboard keys priority, I have placed weight on the following generally accepted principles/paradigms of keyboard layout/typing effectiveness, in terms of highest speed, lowest hand and finger stress:

Based on these ideas individual keys on an empty keyboard can be assigned priority ranks in terms of efficiency when used within a layout, with 1 being the best ranked key.

47 44 42 40 38 34 36 35 33 37 39 41 43 46
26 24 16 12 14 13 11 15 23 25 32 45
8 6 4 2 10 9 1 3 5 7 31
30 28 22 18 20 19 21 19 27 29

Based on the above ranking, a pure frequency distribution of top 10 keys in the English language keyboard for typing would be:

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
H N O T d r E A I S __
__ __ __ __ __ __ __ __ __ __

Top multigrams

The top two bigrams: th, he; top trigram: the; and second top quadrigram: ther - these all indicate that the key compound THE should be a rolling thing on the right hand if possible. Thus let's try from scratch:

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ E H T __ __
__ __ __ __ __ __ __ __ __ __

Heavyweights A, O, and I

A then should be the left index finger, with O next to it.

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
__ I O A __ __ E H T __ __
__ __ __ __ __ __ __ __ __ __

Heavyweight I

But this leaves heavyweight I, which is more important than H in a ring finger position, thus indicating not a very effective keyboard design, due to the THE multigram.

Superheavyweights E and T

So we can try heavyweight E T in the top positions respectively.

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
__ __ __ T __ __ E __ __ __ __
__ __ __ __ __ __ __ __ __ __

We can get the rolling effect of HE on the right hand with an intermittent pause, which is not so bad, especially since it degrades the H into its natural rank.

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
__ __ __ T __ __ E __ __ H __
__ __ __ __ __ __ __ __ __ __

Heavyweights A and O

The heavyweights then fall naturally into their position, with no multigram conflicts and same hand acrobatics when typing.

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
__ __ O T __ __ E A __ H __
__ __ __ __ __ __ __ __ __ __

Then I, to be the reverse hand of T

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
__ __ O T __ __ E A I H __
__ __ __ __ __ __ __ __ __ __

Then N and S

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
S N O T __ __ E A I H __
__ __ __ __ __ __ __ __ __ __

Then R and D

In order for R to not be next to E as top bigrams ER and RE and hitting with the same finger would be cumbersome

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
S N O T r d E A I H __
__ __ __ __ __ __ __ __ __ __

Next 10 keys in rank

Just based on keyboard priority rank, the next 10 key layout would be:

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ m u w f l c __ __ __ __
S N O T R D E A I H __
__ __ __ y b p g __ __ __

OU bigram

Because of OU being a very common English digram, as in would, could, should etc. switch L and U.

__ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ m l w f u c __ __ __ __
S N O T R D E A I H __
__ __ __ y b p g __ __ __

This layout respects all the top multigrams nicely, with no heavy conflicts.

Now the last 6 keys

__ __ __ __ __ __ __ __ __ __ __ __ __ __
z k m l w f u c v q __ __
S N O T R D E A I H __
__ __ j y b p g x __ __

This layout seems very comfortable, home row based, no serious hand/finger acrobatics, top multigrams are respected, and is almost identical to the pure frequency based layout. Thus indicating a very good fit.

Then remainder punctuation

__ __ __ __ __ __ __ __ __ __ __ __ __ __
z k m l w f u c v q '" __
S N O T R D E A I H RET
-| ,! j y b p g x .? /\

Numbers

The natural idea is to leave the number row unchanged, however the standard keyboard has a freak number distribution, heavily slanted towards the worst finger of all - left pinky, therefor it must be rearranged.

The most two popular numbers used in typing are 0 and 1, due to the rounding and decimal based system digits. Therefore these should take the easiest keys to reach on the number row, which are directly above the E and T respectively, but rather in the middle. Thus the top two digits place is naturally:

__ __ __ __ __ 1 __ __ 0 __ __ __ __ __
z k m l w f u c v q '" __
S N O T R D E A I H RET
-| ,! j y b p g x .? /\

If the rest of the numbers are alternated, they come up nicely with even numbers on the right and odd numbers on the left side, which seems to have some logic to it:

__ __ 9 7 3 1 5 4 0 2 6 8 __ __
z k m l w f u c v q '" __
S N O T R D E A I H RET
-| ,! j y b p g x .? /\

Extended characters

Most used extended characters from the point of typing should be the parentheses, but should be one key, so these can be placed on the free, rank 32, key for the right pinky. Then the shift-accessible extended keys with priority on the number row.

Final keyboard layout:

{} `~ 9_ 7# 3% 1$ 5^ 4* 0@ 2& 6= 8+ :; []
z k m l w f u c v q '" ><
S N O T R D E A I H RET ()
-| ,! j y b p g x .? /\

This keyboard seems to be very fast, efficient, respecting the multigrams. I'll be experimenting with it.

If you have any thoughts on this, I'd like to heard them via email.

====================================================================

Czech characters extension

I have consulted and analyzed the following sources:

'" ť ň9 ů7 ž3 ř1 ý5 č4 ě0 é2 čár/háč ď
CAPS z k m l w f u c v q í á
TAB S N O T R D E A I H RET ó
-| ,! j y b p g x .? /\

To enable Czech keyboard with the following layout in Emacs, run the following after switching to a Czech layout:

(keyboard-translate ?3 ?6) ;ž
(keyboard-translate ?1 ?5) ;ř
(keyboard-translate ?5 ?7) ;ý
(keyboard-translate ?0 ?2) ;ě
(keyboard-translate ?2 ?0) ;é
(keyboard-translate ?6 ?3) ;š
(keyboard-translate ?8 ?\[) ;ú
(keyboard-translate ?: ?=) ;čárka
(keyboard-translate ?; ?+) ;háček
(keyboard-translate 39 ?9) ;í
(keyboard-translate ?> ?8) ;á

To go back, run the following after switching to an English layout:

(keyboard-translate ?3 ?3)
(keyboard-translate ?1 ?1)
(keyboard-translate ?5 ?5)
(keyboard-translate ?0 ?0)
(keyboard-translate ?2 ?2)
(keyboard-translate ?6 ?6)
(keyboard-translate ?8 ?8)
(keyboard-translate ?: ?:)
(keyboard-translate ?; ?;)
(keyboard-translate 39 39)
(keyboard-translate ?> ?>)

Archive:

kxkb-0.1


.