www.LinuxHowtos.org

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"
EndSection

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 (141 votes) (1=very good 6=terrible)
Your rating:
Very good (1) Good (2) ok (3) average (4) bad (5) terrible (6)

back