## Tuesday, August 24, 2004

### Keyboards

My first obession with keyboards was when I bought two german IBM Model M keyboards. Before Model M, I used the cheapest Cherry keyboard available, and before the Cherry I used and AT/XT keyboard which had a switch at the back to toggle between AT and XT PCs. The XT/AT keyboard is a monster in size, but it was my second keyboard and it has *click*, a quality which is missing from modern keyboards.

The keyboard I would like to have does not exist, nor would it be supported by current software. It would be like the old keyboards at university (eg. Stanford, MIT) computers. Those keyboards had an extended character set, eg. they supported entering λ, ∧ and ∨ directly, not latex style \lambda \wedge, \vee

Such a keyboard would probably look like the Knight keyboard or the Space Cadet keyboard. Though it might produce cokebottles and one may need quadruple bucky to enter some characters. Mr. Crunchly might complain.

Using Emacs you will inevitably stumble upon the Meta Key Problem, most keyboards do not have a meta key, (i think SUN keyboards have one, but it is not labelled as such). So the Alt key is used instead. However Meta is just one out of three, due to MIT & Lisp Machine heritage Emacs can also handle Super and Hyper, but unless you have a very very exotic keyboard you won't have them. If you have a keyboard with windows keys you could make more use of them than most users do, not mimick windows behavior but use them as Meta, Super and Hyper instead (which still gives you the option to use them as “windows” keys). If you do not have these extra keys, you are bound to rebind other keys. So, do you really use CapsLock? Do you need two Alt/Ctrl keys?

Supposing the answer is no to both questions, you can fiddle around with xmodmap & xkeycaps. The most common thing seems to be swapping Ctrl and CapsLock, so that Ctrl is next to “a”.
If you use an non-american keyboard there is even more you can do to ease programming, like making parens and other often used brackets more accessible.

The other reason why I'm writing this is to point to John McCarthys paper EFFECTIVE INTERACTIVE USE OF LARGE CHARACTER SETS