Home Hand Evaluation in Bridge C Programming Keyboard Layout

The Development Of The Arensito Layout

Introduction

As I was working with LaTeX in the autumn of 2000, I found out that the qwerty layout was incredible difficult to use when I wrote a lot of special chars (like '\', '^', '_', numbers, ...). So instead of working with the project, as I should have, I started to improve my keyboard layout. As of 1. of January 2001 I now have and use a layout I am very satisfied with.

The alphabet layed out

All my desicion on layout has statistical foundation; One of the first things I did when I started out was collecting written documents (text files) so I could analyse the english language. I searched the net and found the below texts, which you may download as a compressed archive data.tar.bz2:

$ ls -lh data.tar.bz2 
-rw-------  1 hakon users 1.1M 2004-09-11 20:17 data.tar.bz2
$ tar jvtf data.tar.bz2 
drwx------ hakon/users       0 2004-09-11 20:17:18 data/
-rw------- hakon/users  135781 2004-02-17 14:53:09 data/thesis.text
-rw------- hakon/users  146442 2004-02-17 14:53:09 data/Sophal.text
-rw------- hakon/users   21036 2004-02-17 14:53:09 data/dissent.text
-rw------- hakon/users  174347 2004-02-17 14:53:09 data/chap2.text
-rw------- hakon/users   77806 2004-02-17 14:53:10 data/ego.text
-rw------- hakon/users 1389452 2004-02-17 14:53:10 data/slxen.text
-rw------- hakon/users 1775681 2004-02-17 14:53:10 data/ppdel10.text
-rw------- hakon/users   38978 2004-02-17 14:53:10 data/putnam.text
-rw------- hakon/users  723937 2004-02-17 14:53:10 data/prin1.text

There are probably better collections representing the english language, but I hope (and think) they will not alter the results in any way. From the above texts, the distribution of letters are as follows:

Disttribution of
letters

The 8 most used letters total up to 65 % of the letters (See figure). These most frequent letters are a r e n s i t o. Note also that these 8 letters are far more used than the 9'nth most used character, the h. For information, the letters '.' and ',' are also shown in the figure. Other special characters (the most frequent is ' " ') are at most as frequent as z, j and q. So the basic layout will consist of the 26 english letters, and also '.' and ','. I decided to allow 5 characters on the index-finger, and 3 characters on the rest of the fingers. The basic layout is:

                    Left Hand        Right Hand

Upper row:        u  u  u  u           u  u  u  u
Home row:         H  H  H  H  h     h  H  H  H  H
Lower row:        l  l  l  l  l     l  l  l  l  l

Where the capital H's are some permutation of arensito. The layout found by trial and error and exclusion principles satisfies:

  • It was the layout that minimized the probability of using the same finger for two consecutive keypresses.
  • The work done by the pinkies are far less than the work on the other fingers.
  • The amount of work is evenly disributed between the left and right hand.

Within the above restrictions, I finally wanted to maximize the probability of having two consecutive keystrokes happen next to each other. This keeps the fingers rolling and increases the typing speed (Dvorak was wrong!).

                    Left Hand        Right Hand

Upper row:        q  l  ,  p           f  u  d  k
Home row:         a  r  e  n  b     g  s  i  t  o
Lower row:        z  w  .  h  j     v  c  y  m  x

                  |  |  |   |        |    |  |  |
                  |  |  |   |        |    |  |  |
                     |  |                 |  |  
P(column)       7.4        15.3     13.9        8.6
in percent         11.9 15.5           12.2 15.2

                   (50.1 %)            (49.9 %)

The special characters layed out

These characters will now be layed out: # | & { } , ? [ ] _ < > $ % ` ' / - 0 : \ 1 ( ) = ^ ~ " 6 7 8 ! . 9 + @ * 2 3 4 and 5 . For no other reason than being three cool symbols I included ±, « and » to the final layout , though these have been given no priority in the layout, and are added after the layout of these other special characters are set. I wanted to have a layout of the special chars that would put the most frequently used close to my fingers.

This is achieved by using Alt Gr. For instance, in my final layout Alt Gr + a produces a ; . To layout the chars I collected a lot of textfiles/programs that where written in

  • C/C++ (253217 Bytes)
  • Java (1883475 Bytes)
  • Latex (6509190 Bytes)
  • SuSE Linux user manual (1389452 Bytes)
  • Matlab (748324 Bytes)
  • Lots of numbers (39075189 Bytes)
  • Perl (857046 Bytes)
  • Python (1063558 Bytes)
  • Xml (524207 Bytes)

and averaged over the frequency of the extracted special chars. I also compared this to frequencies in ordinary text. As , . " ' where used frequently in ordinary text, these are found on the final layout in unmodified states. The most frequent special chars are (in sequence of decreasing frequency) - 1 0 ( ) / = ; : 2 3 < \ 9 _ 5 > 4 * 6 7 8 + {} [ ] # $ %@ ! ? & ` ^ | ~. We should not only place the special characters by their order of frequency, but in such a way that the final layout is easy to use and remember. The placement of the digits are quite important. 1. They should be placed on as many fingers as possible to increase the typing speed. 2. There should be some kind of consistent ordering and placement of them, since that would make it easier to remember where the digits are. 3. Characters that are often typed together with digits should be near, especially the . but also the + - / * ( ) = < > and %. The resulting layout, in the Alt Gr modified state:

                    Left Hand        Right Hand

Upper row:        {  }  [  ]           _  <  >  $ 
Home row:         ;  /  -  0  :     \  1  (  )  =  
Lower row:        6  7  8  9  +     *  2  3  4  5

A note to the above: The Enter will be placed on the right hand, and characters that often are followed by Enter (especially { } ; and :) have therefore been placed on the left hand.

Because of the many special characters, one has to introduce more keys. I have added one next to the pinky on each hand, and two others (that will appear in the final layout). The above layout lets you have the most used special characters under your fingertips!

The control characters and the modifiers keys

These include Escape, Page Up, Up, Down, Page Down, Home, Right, Left, End, Backspace, Delete, Enter, Tab, Back Tab, Control, Alt/Meta, Space, Alt Gr and Shift. I wanted espesially to have Backspace and Return closer than they are in an ordinary keyboard. My hope was to get the keys Backspace, Delete, Enter, Control, Alt/Meta, Space, Alt Gr and Shift on my thumbs, but with the keyboard produced today this is impossible ( except for special keyboards like the Kinesis or the Maltron ). The Space of the ordinary keyboard could be split into five keys, but ... why on earth is the Space key that large ?? What it means for my layout of the modifier keys is that these will be put under the palm. A not-so-elegant solution, but it works for me.

Final Layout

The image of final keyboard layout may be downloaded as .jpg or .xcf (for layers).

arensito keyboard
layout

You should save your old key layout definitions as a file loadable by xmodmap before trying the layout. It is simplest using the xkeycaps program. When that is done download the arensito file and just run xmodmap arensito. If you are as comfortable as I with the new layout, making a link ln -s arensito .Xmodmap will ensure you allways start up with this layout.

Second Version (2001-08-08)

After som thought, I have found an alternative layout that places more keys under the thumbs. The benefits of this layout is that you do not have to move your whole palm as much as one needed in version 1, when Control, Alt and Shift where placed under the palm. Also, the placement of the Alt Gr caused some pain when I was programming alot. But I have noticed that it is now more strainfull to use the arrows, Pg Up, etc. Which keys should be put under the thumbs? All keys that are used before/after any character (space, delete, backspace, enter, tab, esc) or used in combination with any key (alt, control, alt gr, shift). On the Kinesis keyboard each thumb access 6 keys, while on the Maltron keyboard each access 8 keys, so on these two physical layouts we could put these keys on the thumbs. But it seems to me that the thumbs cannot effectively access all these, for instance space is frequently used before/after shift/alt gr, shift/alt gr is frequently used before/after backspace/delete and backspace/delete is frequently used before/after space. In my second version of the layout I am able to let the thumbs access 5 physical keys.

The new layout may be downloaded as .jpg or .xcf (Gimp).

arensito keyboard layout, version 2

The file loadable by xmodmap is called arensito2. On my keyboard, I have removed the keys that I do not use in the layout. In order for your thumbs to have easy access to the Alt-, Shift-, Space- and Control- keys, remove the spacebar and replace it by a normalsized key. On my keyboard I have just removed the spacebar, as I am able to push the spacebar-button without replacing any physical keys.

Home Hand Evaluation in Bridge C Programming Keyboard Layout
Håkon Hallingstad MyEmailAddress Valid XHTML 1.0! Valid CSS!
Last modified: Sat Sep 11 20:21:02 CEST 2004