Home | Hand Evaluation in Bridge | C Programming | Keyboard Layout |
The Development Of The Arensito LayoutIntroductionAs 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 outAll 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: 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:
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 outThese 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
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 keysThese 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 LayoutThe image of final keyboard layout may be downloaded as .jpg or .xcf (for layers). 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 (). 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 |