Keyboard Configuration and Usage
 cb | cs | debian | bridge | irc | df7cb | projects | stuff  

Typing With Ten Fingers

Many people happen to use only something like six fingers for typing. Using the others is astonishingly easy. See the Ten Finger Page.

X11 Keyboard Modmaps

The keyboard is the most important input device, and I have spent quite some time to set up my X11 keyboard layout. I prefer the QWERTY layout because it makes programming a lot easier over the QWERTZ layout that is common in Germany. I've put the German umlauts (ÄäÖöÜüß) on the combinations AltGr-A, AltGr-a, and so on. Unfortunately, every vendor uses his own keycodes, so there are different files for different architectures. The files are loaded with 'xmodmap .xmodmap-name'.
  • .xmodmap-pc: PC layout
    Of course, the Control key is in the rightTM place, replacing CapsLock (which noone need anyways). There are several other new keys, e.g., the dead_anything keys for typing all those funny characters. The meta keys are available on the HHKB (see below).
  • .xmodmap-sun: Sun (Type 4/5) layout
    A light version for Sun keyboards. The arrow keys on the number pad are redefined (Left instead of KP_Left) to make Netscape recognize them on Sun Type 4 keyboards.
  • .xmodmap-ncd: NCD (N97) layout
    I sometimes use NCD X terminals, this is a small modmap for these.

Detecting the Keyboad Type

There is no straightforward way to detect the type of keyboard that is connected to the X server. I've written a small program to check the X server vendor string to decide whethere a PC, sun, or NCD keyboard is used. Of course, this is not infallible, but at least it's a starting point. (If you have a better idea, please let me know.) Put one of the following lines into your .xsession (or .xinitrc) to use the program:
  • xkbd load
  • XKBD=`xkbd` && xmodmap .xmodmap-$XKBD
  • . xkbd && xmodmap .xmodmap-$XKBD

Happy Hacking Keyboard (HHKB)

The HHKB is a very small keyboard by PFU. Some time ago, I wrote a keyboard layout description for xkeycaps.

 Christoph Berg | Page last changed Wed Sep 13 17:31:04 2006 CET