Using/Configuring the Compose Key


The compose key is used to enter characters on the keyboard that are usually not available on the key caps. Such letters could be an "[wiki:WikiPedia/Umlaut_(diacritic) umlaut]", a "[wiki:WikiPedia/Macron macron]" or accents on letters.

The descriptions have been tested on several Kubuntu Hardy Heron 8.04.1 systems. Although information for Gnome/stock Ubuntu systems is included, some information may be not 100% precise or complete. Further information may be found in the Links and Further Information section below.

The modifications will work with (almost) all applications, including the desktop environment, browsers,, as well as many console/text only applications.

The following instructions will configure a <compose> key, which will be mapped to the <right logo> key (on most keyboards this logo is the Windows logo).

Console Configuration

To do this properly I'm trying to go the "holistic way" starting with the console:

$ sudo dpkg-reconfigure console-setup

KDE 3.x Configuration

Now we can go on and configure our windowing environment (KDE). This description uses either Kcontrol or the Kubuntu configuration tool, exposes the same option dialogue.


KDE 4.x configuration

Now we can go on and configure our windowing environment (KDE). This description uses the KDE System Settings as they're available in the K-Menu of the Kubuntu install:


Configuration for Gtk Applications (Gnome, FireFox, etc.)

Gtk (such as also FireFox) and Gnome applications use (on an Ubuntu system) usually SCIM as the input method, not XIM (X Input Method) that relies on the configurations from (X)Compose. Therefore, you will often find that the "a" and "o" macron characters can yield the female/male ordinals "ª" and "º". To still make it work, Gtk applications need to be "told" to use XIM instead.

"One Off" Configuration

For a single application you can do it by just setting the environment variable GTK_IM_MODULE for the application to be launched to xim:

$ GTK_IM_MODULE=xim firefox

More permanently that can be done for a single shell session like this:

$ export GTK_IM_MODULE=xim

This can, of course, also be persisted for a single user in your ~/.bash_profile, or for all users in /etc/environment. This is, however, the less elegant way, the more elegant way follows below.

Persistent Configuration

$ sudo cp /etc/X11/xinit/xinput.d/default /etc/X11/xinit/xinput.d/xim


$ sudo ln -sf /etc/X11/xinit/xinput.d/xim /etc/X11/xinit/xinput.d/all_ALL

Optional Tweaking of XCompose Map

Now that you're using XIM, you can further tweak the XCompose input map for further characters, or for characters in more convenient locations, etc.

To do that follow these steps:

# ~/.XCompose
# This file defines custom Compose sequences for Unicode characters

# Import default rules from the system Compose file:
include "/usr/share/X11/locale/en_US.UTF-8/Compose"

# To put some stuff onto compose key strokes:
<Multi_key> <minus> <greater> : "→" U2192 # Compose - >
<Multi_key> <colon> <parenright> : "☺" U263A   # Compose : )
<Multi_key> <b> <t> <w> : "by the way" # Compose b t w
<Multi_key> <less> <p> : "<p></p>" # Compose < p

Typing Macrons, Umlauts, Accents, ...

The <compose> will be now whatever you have configured it to be, e. g. <right logo>.

ComposeKey (last edited 2008-09-22 20:38:43 by it041227)