Keyboard Technology, It's Hack All the Way

By Xah Lee. Date: .

So in my study of keyboard, over the past 30 years, i kinda felt its all hack. Actually, it is perhaps the defining characteristics of Engineering.

QWERTY Hack to Prevent Key Hammer Jam

First such discovery is qwerty (vs dvorak) (to prevent key hammer jam).

[see Dvorak Keyboard Layout]

Physical Key Arrangement Stagger Hack

Then, the physical key arrangement (the stagger). (due to, in mechanical typewriter, the levers underneath each key need to be aligned equidistant)

[see Keyboard Design Flaws]

Capital Letters, Shift Gears Hack

Then, the birth of Shift key, that shifts gears, which became our modifier keys in computer keyboard, specifically designed to emulate the typewriter gear shifting.

Key Electronic Circuit Hack: Ghosting and N-Key Roll Over

Then (out of order): why there's key ghosting and “n-key roll over”. (due to cost saving measures in electronics. Minimize the diodes by ways of “matrix”).

[see N-key Rollover (NKRO) and Ghosting]

Hack: Hold Key to Repeat

People do want holding down a key to repeat, thus, IMB created the key protocol to do that. That is, when a key switch is on, after some micro second, it sends on off on off on off on off signals.

The hold key to repeat is actually also a hack to begin with. It was IBM PC AT that invented this hack. In one of their keyboard protocol. Like, if you think switch in electronics, it is either on or off. It really should not repeatedly send on off on off signals, at least not at the hardware level. That should be the operating system's job.

Is there bad consequences of this hold to repeat hack? Yes. If you look at the code to control keys in JavaScript, it's a logical mess, especially in conjunction with Modifier keys that actually requires hold. This is also true in operating system frameworks that control keys.

About every few years, i discovered some behavior of keyboard was a hack.

Emacs and Vim keybinding Hack

and, the whole shebang of emacs default keys faak and vim default keys faak (hjkl and others such as $ etc). (due to lisp machine keyboard for emacs and adam terminal for vi) and the why how vim “modal” way was developed (due to, back then, u have to give a command to tell comp to update the screen).

Gamer WASD Navigation Keys Hack

And, the gamer's navigation keys, why is it WASD, and not say ESDF. (due to the need for adjacency with capslock, shift, etc for run, crouch, fire, etc.)

It's faaaking hack all the way!

Xah Keyboard Guide