edit this article

Revival of the Compose Key a.k.a. Multi_Key

Many users are on a keyboard layout which does not allow to type other characters than those printed on the keys. There are some workarounds with so-called "deadkeys" so that you can type characters with accents, but that does not enable you to type all characters in your locale.
On many Unix-machines you can find a "Compose Key" on the attached keyboard. With that special key you can "compose" the desired character. For instance, typing the sequence <compose> <"> <a> will result in the Umlaut ä. Or take <compose>></> <o> for a danish ø. With X it is no problem to declare any key as the Compose Key, or "Multi_Key" as it is called in the internal routines. Just remember that a keyboard sends only keycodes, and that it is unimportant which keycode represents a given character or special key.
To enable the Compose Key you have to alter your /etc/X11/xorg.conf. There are other ways, like using xmodmap or its successor setxkbmap, but the global configuration with the xorg.conf ensures that the Compose Key will be available to all users. I recommend the right "Windows Key" (just one of the two on your keyboard enabled should be enough):
Code Listing 1: Enable the Compose Key in the xorg.conf
# Your section in xorg.conf about the keyboard looks similar to this: 
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
Option "XkbOptions" "compose:rwin"

After you restart X, you should be able to type the characters in the example above. To only temporarily test this new setting, you may try e.g. the command
setxkbmap -model pc104 -layout us -option compose:rwin

A complete list of available Compose Key characters with their description can be found in the file /usr/X11R6/lib/X11/locale/<your_character_enocding>/Compose.
From http://www.gentoo.org/news/en/gwn/20041206-newsletter.xml
rate this article:
current rating: average rating: 1.9 (143 votes) (1=very good 6=terrible)
Your rating:
Very good (1) Good (2) ok (3) average (4) bad (5) terrible (6)