= Using/Configuring the Compose Key = <> == Introduction == 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 __U__buntu 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, OpenOffice.org, as well as many console/text only applications. The following instructions will configure a '' key,'' which will be mapped to the '''' 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: * Reconfigure the console for the used keyboard, and the character encoding. Do this in a text terminal or the console. {{{ $ sudo dpkg-reconfigure console-setup }}} * Follow these steps in the configuration: * Choose your keyboard (here a default 104 US keyboard) * If you want the !AltGr key replacement, choose one * Choose which key you would like your ''compose key'' to be mapped to. I use the '''right logo key.''' <
> I'd much rather like to use the '''left logo key,''' but that's not available in the console setting. But in the graphical window environment (KDE) that is possible. * Choose the console's encoding, set it to '''UTF-8''' * Choose what character set should be available on the console. I use '''Combined - Latin; Slavic Cyrillic; Hebrew; basic Arabic''' <
> I guess that selection should give me the wanted characters. * Choose what type of console output you'd like (do whatever you like, to be safe you can go with the given current defaults) * A new ''initial RAM disk'' for the next boot will be created now. == 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. * Start the ''KDE System Settings'' or the ''KDE Control Centre'' * ''Regional & Language'' (for System Settings) or ''Regional & Accessibility'' (for Control Centre) <
> -> ''Keyboard Layout'' * Choose your keyboard layout * Modify the ''Xkb Options'' to select/enable the ''compose key'' {{attachment:ControlKeyKDE3.png}} == 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: * Start the ''KDE System Settings'' * ''Regional & Language'' * Select the ''Keyboard Layout'' configuration * Modify ''Advanced'' options to select/enable the ''compose key'' {{attachment:ControlKeyKDE4.png}} == 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 === * Copy the setup file `/etc/X11/xinit/xinput.d/default` to `/etc/X11/xinit/xinput.d/xim` {{{ $ sudo cp /etc/X11/xinit/xinput.d/default /etc/X11/xinit/xinput.d/xim }}} * Edit the file `/etc/X11/xinit/xinput.d/xim` and set the input method for `GNOME` and `KDE` to `xim` {{{ ... GTK_IM_MODULE=xim QT_IM_MODULE=xim ... }}} * Create a link for the locale `all_ALL` (or the desired locale only): {{{ $ sudo ln -sf /etc/X11/xinit/xinput.d/xim /etc/X11/xinit/xinput.d/all_ALL }}} * After a restart of the X server everything should work. === 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: * Create a `~/.XCompose` file, and put the following lines into it: {{{ # ~/.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: : "→" U2192 # Compose - > : "☺" U263A # Compose : ) : "by the way" # Compose b t w

: "

" # Compose < p }}} * Just log out and in again (no restart necessary), and you can use your new "multi key short strokes" using the compose key to your desire. As you see this even works for creating longer character sequences. == Typing Macrons, Umlauts, Accents, ... == The '''' will be now whatever you have configured it to be, e. g. ''.'' * Macrons * '''' + '''' + '''' then '''' <
> (or '''' + '''' then '''') <
> --> āēīōū ĀĒĪŌŪ * Umlauts * '''' + '''' + '''' then '''' <
> (or '''' + '''' then ''') <
> --> äëïöü ÄËÏÖÜ * The German ''Ess-Zet'' ligature * '''' then "s" and "s" (twice the "s") <
> --> ß * More bindings can be found in `/usr/share/X11/locale/en_US.UTF-8/Compose` == Links and Further Information == * http://cyberborean.wordpress.com/2008/01/06/compose-key-magic/ * http://ubuntuforums.org/showthread.php?t=11588 * http://ubuntuforums.org/showthread.php?t=209115 * http://www.dm.ufscar.br/~sadao/freeware/linux/postinst-710.txt <
> (section on "using cedilla on english keybord/environment") * http://www.taiuru.maori.nz/publications/linux-macrons.html * http://www.seedwiki.com/wiki/takomapark/compose2 * http://wiki.linuxquestions.org/wiki/Accented_Characters * http://people.uleth.ca/~daniel.odonnell/Blog/custom-keyboard-in-linuxx11 * http://hdante.blogspot.com/2007/05/kiel-oni-skribas-typing-esperanto.html