In about May 1990 I bought some Northgate OmniKey keyboards at a junk shop in Sunnyvale. They were brand new, but no longer “modern”, because the function keys were on the left hand side, like the old PC keyboards. Now the PC AT had taken over, and its keyboard had the function keys at the top, and the much more important Caps_Lock key had displaced the Ctrl key. I and two of my colleagues, James “Jox Emacs” Cox and Rhodri Davies, all preferred the older layout, particularly the location of the Ctrl key, so I bought one for each of us.
I grew to like the keyboard not just for the layout, but also for the feel. A couple of years later I left Tandem, I negotiated with James and Rhod and took all three keyboards with me. I still have them, but they're getting old and bouncy, and some of the keys stick.
Northgate had gone out of business round about the time I bought the first keyboards—indeed, that's probably why I found them in the first place—so it wasn't easy to buy new ones, though I did find a couple on eBay later. Some years later I found a similar keyboard, the Avant Stellar, which was supposed to be a direct replacement. They do look very similar:
The Avant Stellar has more function keys where I can't use them, but annoyingly this stupid inverted T cursor keypad. I've never understood why people changed to that.
The keyboard is programmable: you can change the layout of just about any key. I had long since lost the software, which was for ancient versions of Microsoft “Windows”, though I note it's http://www.cvtinc.com/products/keyboards/software.htm. But you can (and often unfortunately frequently must) reprogram it directly from the keyboard. Here's an overview:
To reset all key bindings, press the right Ctrl key (which I'll call Rctrl here) four times, then the ! key (Left Shift and 1), then x. The LCDs will flash for a while. When they stop, the keyboard is in the default configuration. You don't need to press anything else to exit. You probably need to do this before remapping.
To set the keyboard in programming mode, press the right Ctrl key (which I'll call Rctrl here) four times, then the ! key (Left Shift and 1), then r. The ! echoes. To exit, press Rctrl again.
To remap a key, press the key with the binding you want followed by the key you want to have this binding (this is the opposite of what my instructions say). To exit, press Rctrl, which I suppose means you can't assign Rctrl to any other key.
Here's what I do to assign the keys as shown on the photo above. The key names below refer to the position of the key caps above. The Caps_Lock key is in fact set to Super_L (the so-called “Windows” key).Rctrl-Rctrl-Rctrl-Rctrl-!r
To explain: the key with the cap marked ` was intended to be the Super (“Windows”) key, whose cap I moved to top left to what Avant Stellar intended to be the Esc key. See below for the remapping of PrintScreen.
It's possible to reassign the Rctrl key. In this case, you can't enter the programming mode or keyboard reset as described above. Instead, find a non-running computer, plug the keyboard in and hold down the default Esc key (the one on its own between F12 and SF1), then power up. When you release the key, the keyboard resets to default configuration, apparently in the same way as Rctrl Rctrl Rctrl Rctrl ! x.
Somehow the keyboard still has problems. In the past I've had it continually forget its bindings, and there's something funny about the timing. In Emacs, I frequently issue the sequence c-x c-s c-a (save file and return to beginning of line). For some reason, the c-x appears to frequently get lost, so Emacs sees c-s (search forward). I've also frequently seen the Ctrl key get stuck “on”, and at least once the non-existent Caps_Lock key got stuck on, which is pretty fatal. I had to change keyboard to fix it. I've now found a place to put it on the keyboard, so that I can turn it off if it turns itself on by itself.
People have suggested to me that I should just leave the keyboard with the default mapping and do the remapping with xmodmap. That's a good idea, but it doesn't work: even if I remap the Caps_Lock key, the keyboard honours it and doesn't pass the keycode on to the computer, so effectively the remapping doesn't work. It sounds tempting to remap just that one key, but that way Ctrl and Alt generate the same keycode, so there's no way for xmodmap to differentiate between them.
The other problem is that when the Ctrl function gets stuck on, it makes an innocuous Alt-Backspace (which I use in Emacs to delete words backwards) into a Ctrl-Alt-Backspace, which terminates the X server. You'd think you could solve that problem by removing the “Terminate Server” functionality from that key combination, but that doesn't work: it stops anyway. Instead, I have remapped the Backspace key to the PrintScreen key (which I don't use), and then mapped it to the correct keycode.
Here's a diff of my modified key map. The keycodes may not match other keyboards, but the differences should be useful:
|Greg's home page||Greg's diary||Greg's photos||Copyright|