Saturday, June 12, 2010

A Discussion on Keyboard Layouts

Recently, I've taken a look at my keyobard, and realized I wish it had more keys. More function keys.

First, let's take a look at the standard US 104 key QWERTY keyboard. This is the keyboard that virtually every American knows (and knows no other).

Here's a diagram of the standard US keyboard layout. Virtually every American keyboard looks like this, if not exactly like this (Click on the images to see more than just the left-hand side):

This is derived from the IBM 3270 terminal keyboard layout, here's a picture:

Notice the extra row of function keys at top, as well as the ten command keys to the left.

Sun's US layout of their workstation keyboard is extremely similar to your standard US PC keyboard, adding volume control keys above the number pad, as well as taking the 3270's lefthand command keys and adding a big "Help" key above it, to the left of the Escape key.

While these are good keyboards, as a programmer, I want lots of keys. I want to bind the leftover keys to various functions of my editor, or OS - for example, a dedicated key for search-and-replace, instead of a keystroke involving shift keys (e.g. Control-F or Control-Shift-F).
Also good would be more keys for typing in extended scripts, as to use Greek symbols, or advanced mathematical symbols. A good keyboard that comes close is the "Space Cadet" keyboard that was popular at MIT a long time ago; it was used on Lisp machines running MIT's "Incompatible Timesharing System", an early mainframe OS. The keyboard they used:

If you look at the Space Cadet keyboard, there are multiple shifts, labeled "Shift", "Greek", and "Top", enabling at least 5 symbols per key. The "L" key, for instance, could produce both upper- and lower-case Roman letter L, as well as upper- and lower-case Greek letter Lambda, and finally, a double-arrow symbol if used with the "Top" key.

Combining the extra typography features of the Space Cadet keyboard, with the familiarity of the US keyboard, and adding features of the Sun and IBM terminal keyboards, leads you to what I believe is the ultimate keyboard layout for programmers accustomed to the US keyboard layout:

If you look at this final layout, it have the left-hand editor keys of a Sun keyboard, as well as the shiftable modes these keys provide on the 3270 keyboard, as well as the Sun "Help" key, the full Greek and mathematical character set of the Space Cadet keyboard, as well as the Space Cadet's full shift key set - "Control", "Meta (Alt)", "Super", and "Hyper", as well as a "positive" and "negative" diamond key - usually used as "Meta" on Sun keyboards, the full 24 function keys of the 3270 keyboard as well as it's adjusted directional keys that no longer look like a Tetris piece, as well as your common PC editing keys - Insert, Delete, Home, End, Page Up, and Page Down are all in their typical places. Also, the number pad has extra keys to make entering formulas and other mathematical errata much easier. Also, of note, that this keyboard's keys have all the symbols for the various keyboards it is derived from - for example, the "Super" key - which is what X11 maps the Windows key - has the Mac "⌘" symbol on it's front side - which is also good because the Windows key maps to this key on Mac OS X (when using USB keyboards). Note that the left-side command keys have all the Sun command labels, as well as some of the 3270's labels on the front side of the keys, that there is an Alt Gr on the right, that the left Control is labeled "Reset" on it's front-side, matching the key on the 3270's keyboard, as well as other front-side etchings for 3270 compatibility.

One key that I find unusal is the angle-bracket key. I've seen it once on a French keyboard I once had, being between "Z" and the left "Shift", but it's addition here would be quite useful, especially when writing SGML-derived markup.

In all, this ultimate keyboard has 148 keys, and while I do not believe that it has ever been manufactured, I would be willing to pay for it if it were to be made. This is one impressive layout indeed.

No comments: