Ultimate Keyboard Layout

Perm url with updates: http://xahlee.org/comp/ultimate_keyboard_layout.html

Ultimate Xah Keyboard Layout

Xah Lee, 2011-01-04

xah keyboard layout v0.2

Xah's keyboard layout, draft, version 0.2.


  • Letter key arrangement based on Dvorak Keyboard Layout.
  • Key location are primarily based on the map between key's usage frequency and location comfort, with as much scientific evidence as possible.
  • Caps Lock, Num Lock are eliminated.
  • No obsolete keys such as Pause/Break, SysRq, ScrLk, Insert.
  • One single keypress for frequently used operations: Copy, Paste, Undo, Open, New, etc.
  • Rotary knob for instantaneous sound level control. No need to press Volume Up key 10 times or take several seconds to hold it down.
  • Rotary knob for sound level eliminates the need for a extra Mute button.
  • No keys for Sleep, Log Off, Power On/Off, that are confusing and never used or used at most few times a day.
  • Keys for numbers arranged in a square in the middle. No need to hold Shift key. No need to turn on Num Lock. Faster touch-type numerical data entry than the traditional top row. No need to move hand over to extra number pad.
  • Major improvment over conventional keyboard for programers. Most frequently used symbols do not need Shift key to enter. Symbols arranged according to use frequency in computer language source code.
  • Split key groups for each hand, so you don't have to bend inward. Similar to standard ergonomic keyboards e.g. Microsoft Keyboard 4000.
  • Each hand can reach all keys easily without stretching. In traditional PC keyboard, the right pinky has to strech to reach several keys: Backspace ' - [ ] \. (similar to Kinesis.)
  • The vertical column is straight. Allows straight up/down finger movement. They are not slanted in a irregular way like in traditional PC keyboard. (similar to Kinesis.)
  • Designed for English and other major world languages (e.g. Chinese pinyin, Spanish, Portuguese, German, French, other Euro langs that relies on a latin based alphabet with extra characters.). (The Alt or one of the Alt should be AltGr for inputing special chars such “è ü á ñ ç € ¿”. The exact character map for AltGr yet to be designed) This layout should be more efficient than any local language layout.
  • This layout should be better than Kinesis or Maltron, or other fancy ergonomic keyboards.


  • The yellow colored keys are modifier keys.
  • The command key ⌘ is also the Win logo key.
  • Software should be able to remap any of the modifer keys.
  • This keyboard must not rely on software to work for basic functions. It should be plug-n-play without installing any software or the need to switch to a different keyboard layout in OS. (more reserch here on feasibility)
  • This physical key keyboard layout is designed to be manufactured both as full-sized keyboard with full height keys, but also for labtops as flat keys. (the arrow key section may need to be relocated to reduce width)
  • I think it should aim at mass production to the mass market, if at all economically possible. (as opposed to marketing to high-end consumers e.g. over $100 keyboard) e.g. use cheap parts and cheap manufacturing tech. (e.g. rubber dome switches)

Some design notes:

  • The little gabs in various places are critical. Must not be removed. They make it possible to feel the key location without visual contact. When manufactured, the different sections of the key must be easily distinguished both by eye or by touch. Also, the little positional offsets on some key groups are critical for the same reason. The keyboard must not become a uniform grid.
  • The special keys, such as F1, F2, Copy, etc, must be actual keys, using the same switch mechanism as letter keys. They must not be some rubber buttons. The F keys or Undo, etc keys are intened to be pressed repeatedly too, just like normal keys.
  • The rotary knob on upper right has dual function. For sound level control, and when pressed, it is play/pause button.
  • The ⌧ key should function identical to clicking the X to close window. The key labeled “Close” is intended to close current file, tab.
  • The labels for the letters should be lower case, not caps.
  • There should not be a qwerty version. This makes it simple.
  • This is not intended to be a radical design. It is intended to be cheap and mostly compatible with PC keyboard, but offers major improvements by some simple changes of the worst aspects.


  • Write a script that generate statistics on punctuation symbols use frequency from computer language source code. Categorize by lang: C, C++, C#, Java, php, visual basic, perl, python, javascript, lisp, bash. And do a report together too.
  • Add keys for “zoom in”, “zoom out”, “Browser”, “calculator” and possibly also “app1”, “app2”.
  • Do research on letter frequency of other langs. pinyin, spanish, Portuguese, German, French.
  • Do research to find out all non-ascii chars used in other langs. Their frequency. Check the Bepo, pt-Nativo layouts, also check International Keyboard Layouts.
  • Write complete account on various design issues.

Some quick char frequency based on few files of javascript, perl, python. (90% being js) This is probably the general pattern for all langs too.

. 2323
( 2281
= 2097
, 1961
| 1208
[ 1130
/ 939
+ 693
- 677
0 638
{ 581
1 436
& 352
^ 319
# 284
* 274
$ 188
! 164
% 50
@ 18