Noah Ergonomic Keyboard Layout

Layout Image

Dotan keyboard layout
Click to enlarge image

The red line indicates the split position of the MS Natural Ergo 4000 keyboard, other keyboards may split on different keys. The turquoise lines indicate the split positions relative to each block of characters. The red dots indicate suggested index finger rest positions.

The Reasoning

The goal is to keep the hands further apart in a more natural fashion, and to transfer some of the workload from the weak pinky fingers to the strong index fingers. This design is currently based on QWERTY, but I will probably change that to Colemak soon. The QWERTY version aims to be easy to learn, and puts an an emphasis on keeping the commonly-used non-alpha keys close by while pushing the uncommon ones farther away (taking programming usage into account). The Colemak version sacrifices ease of learning in order to optimize the alpha keys' positions as well.

Notes

  • I usually use split keyboards such as the MS Natural Ergo 4000, so the design split is based on that keyboard. However, non-split keyboards will also benefit from this layout. In fact, non-split keyboards were my target keyboard when designing this layout. Just be sure that your keyboard has the conventional \| key above the Enter key, and no other unusual layout changes.
  • On a non-split keyboard the Noah Ergonomic Keyboard Layout put the hands two and a half times as far apart as they normally are. That puts them slightly further apart that they are even on the MS split keyboard, however there is no tenting of the keys like split keyboards generally have.
  • On a split keyboard the Noah Ergonomic Keyboard Layout places the hands almost shoulder-length apart, which is considered ideal.
  • With the exception of the P key, all the pinky keys are the wide, easy to hit keys. This substantially reduces stress on that weak finger.
  • Programmers will appreciate having Semicolon on one hand and Enter on the other!
  • The distance between the pinky and the operating finger for standard keyboard shortcuts is reduced. This is especially noticeable for frequent Save, Cut, Copy, and Paste operations.
  • The Alt and Shift keys are juxtaposed, which is handy as this key combination is the default keyboard layout switching combination in many popular operating systems.

Needs Improvement

  • VIM needs to be remapped for the Colemak layout if I switch to that. That could be an idea-killer.
  • The Y and B keys are difficult to get to. No more than on a standard keyboard, but I would like to improve that anyway.

The Future

  • Colemak-based layout
  • Layout that utilizes the entire width of the keyboard, including the numpad.

XKB Code

  • Put this in /usr/share/X11/xkb/symbols/noah

    // Noah Ergonomic v0.3 for xkb
    // 2011-03-06 Dotan Cohen, http://dotancohen.com/ . Public domain.
    
    partial default alphanumeric_keys
    xkb_symbols "basic" {
        include "us(basic)"
        name[Group1]= "Noah Ergonomic";
        
        // Alphanumeric section
        
        key <TLDE> { [ 5,             percent     ] };
        key <AE01> { [ 4,             dollar      ] };
        key <AE02> { [ 3,             numbersign  ] };
        key <AE03> { [ 2,             at          ] };
        key <AE04> { [ 1,             exclam      ] };
        key <AE05> { [ escape                     ] };
        key <AE06> { [ grave,         asciitilde  ] };
        key <AE07> { [ minus,         underscore  ] };
        key <AE08> { [ equal,         plus        ] };    
        key <AE09> { [ 6,             asciicircum ] };
        key <AE10> { [ 7,             ampersand   ] };
        key <AE11> { [ 8,             asterisk    ] };
        key <AE12> { [ 9,             parenleft   ] };
        key <BKSP> { [ 0,             parenright  ] };
    
        key <TAB>  { [ q,             Q           ] };
        key <AD01> { [ w,             W           ] };
        key <AD02> { [ e,             E           ] };
        key <AD03> { [ r,             R           ] };
        key <AD04> { [ t,             T           ] };
        key <AD05> { [ Tab,           Tab         ] };
        key <AD06> { [ bracketleft,   braceleft   ] };
        key <AD07> { [ bracketright,  braceright  ] };
        key <AD08> { [ y,             Y           ] };
        key <AD09> { [ u,             U           ] };
        key <AD10> { [ i,             I           ] };
        key <AD11> { [ o,             O           ] };
        key <AD12> { [ p,             P           ] };
        key <BKSL> { [ slash,         question    ] };
        
        key <CAPS> { [ a,             A           ] };
        key <AC01> { [ s,             S           ] };
        key <AC02> { [ d,             D           ] };
        key <AC03> { [ f,             F           ] };
        key <AC04> { [ g,             G           ] };
        key <AC05> { [ enter                      ] };
        key <AC06> { [ apostrophe,    quotedbl    ] };
        key <AC07> { [ enter                      ] };
        key <AC08> { [ h,             H           ] };
        key <AC09> { [ j,             J           ] };
        key <AC10> { [ k,             K           ] };
        key <AC11> { [ l,             L           ] };
        key <RTRN> { [ semicolon,     colon       ] };
        
        key <LFSH> { [ z,             Z           ] };
        key <AB01> { [ x,             X           ] };
        key <AB02> { [ c,             C           ] };
        key <AB03> { [ v,             V           ] };
        key <AB04> { [ b,             B           ] };
        key <AB05> { [ backspace,     caps_Lock   ] };
        key <AB06> { [ Super_L,       Super_R     ] };//test these
        key <AB07> { [ backslash,     bar         ] };
        key <AB08> { [ n,             N           ] };
        key <AB09> { [ m,             M           ] };
        key <AB10> { [ comma,         less        ] };
        key <RTSH> { [ period,        greater     ] };
    
        key <LCTL> { [ Control_L                  ] }; 
        key <LWIN> { [ Alt_L                      ] };
        key <LALT> { [ Shift_L                    ] };
        key <SPCE> { [ space                      ] };
        key <RALT> { [ Shift_R                    ] };
        key <RWIN> { [ Alt_R                      ] };//test this
        key <RCTL> { [ Control_R                  ] };
        
        // End alphanumeric section
        
    };
  • Version History

    • Version 0.3 2011-03-06 Show layout and code
      Completely redesigned top row layout, with reversed left-hand number keys. This is because it appears that the 1 key is used an order of magnitude more than the 5 key, so I found it important to put it on the index finger. Additionally, I moved ESC to the top row and relocated the Backspace / Caps Lock key and the Win / Menu key.

    • Version 0.2 2011-03-01 Show layout and code
      Found locations for Caps Lock, Win, and Menu keys, and added the ESC key. Swapped the positions of the /? and \| keys. Renamed to Noah Ergonomic Keyboard Layout.

    • Version 0.1 2011-02-28 Show layout and code
      Psuedo-split keyboad layout based on QWERTY.



 


Noah, Ergonomic, Keyboard, Layout, QWERTY, Colemak, split The goal of the Noah Ergonomic Keyboard Layout is to keep the hands further apart in a more natural fashion, and to transfer some of the workload from the weak pinky fingers to the strong index fingers. Noah, Ergonomic, Keyboard, Layout, QWERTY, Colemak, split
[email protected] [email protected] [email protected] [email protected] [email protected]

eXTReMe Tracker