A compose key, also called multi key, is a part of the computer keyboard that is—or behaves like—a kind of special dead key. Thus, unlike a modifier key, which must be held down, the compose key can be released before the following key stroke. The effect of the compose key is to convert to a dead key every specified key that is pressed after it. The next (or even a later) keypress triggers the insertion of an alternate character, typically a precomposed character or a symbol.
On the keyboard
Being a dead key, the compose key only needs one key position. This is ideally in the Base shift state, while the other key positions may be attributed to other characters or dead keys. On the other hand, with respect to compact keyboards, the compose key may also be hidden in one of the present classic dead keys, for example ^Q. More generally, any dead key may be programmed to compose much more than what it is expected to produce, a principle that is already used for multiply diacriticized characters. Having one dedicated compose key on every keyboard, regardless of the number of other dead keys, proves however to be the most useful option.
For ergonomics, the preferred place for the Compose key is Right Alt, especially on keyboards that do not use Right Alt as AltGr. If they do, the user might eventually prefer to have Compose on Left Alt, which was already the place used first in history (an option that today should lead to place the lefthand Alt on Left ⊞ Win, and this on ≣ Menu, so that the reality-based prioritization of these keys would match the order of removal on compact keyboards, where an ≣ Menu key is often found but not Right ⊞ Win). Alternately, the Compose key may be placed on Right (or left) Ctrl, but this is poor ergonomics because the little finger, thus used for Compose, is also used to hit many other keys which are likely to occur next in sequence.[Is this a fact or an opinion?] The problem is the same if Compose is placed on ⇪ Caps Lock, a key which if disliked, would better host the left ⊞ Win key rather than any most frequently used key as Compose will be.[Is this a fact or an opinion?]
As actual keyboards can manage key rollover, the compose key does not really have to be released before the subsequent keystrokes. This makes it possible for experienced typists to enter composed characters rapidly. The typing speed is increased if the compose key can be acted with one thumb while other fingers are already about to hit the keys of the sequence.
At the beginning, the Compose sequences followed handwriting and the overstrike technique. For example, striking Compose, followed by n, and then ~, produced the character ñ. This order is still in use, but multidiacriticized characters are hard to obtain this way.
The inverse order is known from standard dead keys as present on the last typewriters and as used today on computer keyboards: Compose~n for ñ. Likewise, striking Compose, followed by O (or o), and then C (or c), will produce the copyright symbol ©. This allows typing Compose^'a, for ấ.
There is no intrinsic limit on combinations or sequence length, which only should respect the rules of mnemonics and ergonomics. For example, U+278C ➌ DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE might be inserted when the following sequence is typed: Compose@%$3. This example is based on the use of @ for all circled characters, % after @ for all negative circled (displaying in white on a colored disk) and $ for sans serif. The choice of % for "negative" can be made with respect to ergonomics on a U.S. English keyboard. For UK, the whole sequence could be Compose@-=3.
Despite its name, the compose key and the software that supports it don't really compose anything, unlike the old overstrike technique that allowed to literally compose diacriticized characters. The key might as well be called a "super dead key". Nevertheless, its name says very well the principle of the mnemonics that makes Compose so useful to increase the number of available characters without urging users to learn any set of more or less complicated codes. Here's another example: Compose<3 for ♥. In Alt+NumPad entry on Windows, it's straightforward Alt+3―one of the exceptions among the hard-to-learn ASCII or Unicode codes for precomposed characters, punctuation and symbols.
Compared to classic dead key
The advantage of a compose key pops up when compared to single dead key performance. Since the dead key registry (deadlist) starts with a limited set of (typically) simply diacriticized characters, supplemental characters’ input sequences seem cryptic, such as ¨S for ß. Reminding this one is quasi-automatic because typing German on a non-German keyboard layout needs a ¨ dead key all the way long. The compose key instead allows typing ComposeSS for ß, thus needing one more keystroke (two of them being eventually a double stroke).
Let's take another example: U+2154 ⅔ VULGAR FRACTION TWO THIRDS is most easily entered by Compose23, whereas a single dead key solution turns out to be something like ~W (as ~3 would be used for ⅓). Therefore, the compose-key solution is easier to remember. Otherwise, users need to learn that vulgar fractions are in what may conveniently be called the Tilde Group, and scatter down the keyboard.
The disadvantage of the compose key is that its use requires one more keystroke whenever the goal is such as composed characters with one or two diacritics, which are more easily entered by dead keys. This limits its appeal to the input of characters that are not typically precomposed, or at least, that may not be obtained with a number of dead keys. Effectively, many keyboard layouts provide direct access to a set of most frequent precomposed characters for locale language support. This highlights that the usefulness of a compose key grows as targeted characters are more peculiar and not currently occurring in the local script.
Even if virtually, every dead key may "compose" something if chained (e.g. ~23 for ⅔, when ⅓ is inserted by ~13), the keyboard layout is easier to understand when all complex composed characters are together on one unique dedicated compose key. There are no intrinsic restrictions on combinations, so the use of all printing characters opens the way to lots of most memorable sequences. Thus, compose keys support far greater numbers of characters than dead keys do usually.
The Compose Character key was introduced by engineers at Digital Equipment Corporation (DEC) on the LK201 keyboard, available since 1983 with the VT220 terminal. Its virtual key name was META. The keyboard included an LED indicating that a Compose sequence is on-going. This was placed in the LED flag row, above the Do key, which was placed together with a Help key above the six miscellaneous commands and the inverted T keys.
In 1987, Sun Microsystems released the Sun4, the first dedicated Unix workstation that had a compose key. On the keyboards of Sun Type 5 and 6 workstations, the Compose LED is placed in the keycap (see picture below).
While the group of command keys between the alphanumerical block and the numerical keypad, and the "inverted T" arrangement of arrow keys, both innovations also first provided on the DEC keyboard, have become world standard, the compose key by contrast disappeared, because it has not been copied by IBM and Apple Inc. At its place, we find today double modifier and system keys filling up the bottom row of our keyboards. Consequently, a move to reimplement the compose key based on individual projects lead to a panel of OS related and freeware solutions, among which a number of utilities and keyboard drivers.
Occurrence on keyboards
The compose key is found on the LK201 family of keyboards from DEC and its successors. The key is also found on keyboards from Sun Microsystems.
Because Microsoft Windows and OS X do not support a compose key by default, the key does not exist on most keyboards designed for modern PC hardware. When software supports compose key behaviour, some other key is used. Common examples are the right-hand Windows key, the AltGr key, ⇧ Shift+AltGr, or the right-hand Ctrl key.
ISO/IEC 9995-7 designed a graphical symbol for this key, in ISO/IEC 9995-7 as symbol 15 "Compose Character", and in ISO 7000 "Graphical symbols for use on equipment" as symbol ISO-7000-2021. This symbol is encoded in Unicode as U+2384 ⎄ COMPOSITION SYMBOL.
The compose key is most popular on Linux and other systems using the X Window System. X header files call the Compose Key the "Multi_key". On Xorg the default Compose Key is ⇧ Shift+AltGr, while pressing AltGr before ⇧ Shift is the "fourth keyboard level modifier". As this is rather inconvenient (especially for keyboards without an AltGr) it is common to select a keyboard layout where another key such as the right-hand Ctrl, ⌘ or ⊞ Win is mapped to the compose key, this option is normally available in the settings of the desktop environment. Additionally, the X keyboard driver does not allow the key used for Compose to also function as a modifier.
On Microsoft Windows a few programs such as PuTTY provide compose-key support. To emulate the compose key for all software, keyboard shortcut utilities are often involved. There are also a number of open source utilities (such as WinCompose, AllChars, Compose-Keys or Compose). Installable keyboard layouts (such as this one) are available that contain a compose key assigned to one of the keys like Ctrl or AltGr. They work by using the dead key chaining feature that is more commonly used to input letters with multiple diacritics. Such keyboard layouts can also be programmed directly in C which is the language Windows drivers are written in, compiled using the free of charge Windows Driver Kit, and packaged using the free of charge Microsoft Keyboard Layout Creator 1.4, compatible up to the latest versions of the OS.
Mac OS X
Although the Cocoa text input system allows entry of many alternate and accented characters natively in OS X, a true compose-key solution isn't built in. At least one has been implemented using the Karabiner utility. That works with all applications, as does the use of keyboard drivers where Compose is implemented using the dead key chaining feature.
The main difference in the compose-key support between Linux and the utilities on Windows and Mac OS X on one hand, and the keyboard driver based solutions on the other hand, is in ease of customization. With the former, the user can edit the keyboard layout file at any time with immediate effect, while a driver needs to be recompiled—a process that is however rather easy to achieve and is worthwhile given the performance of this solution. Indeed, the relevant tables are simply edited in a spreadsheet, repasted into the source, and the newly compiled driver is pasted into the system folder. Alternately, uninstalling the existing driver and installing the new version avoids to have to close all applications and to reboot the machine.
Common compose combinations
The table shown below contains the current default common compositions for X.Org 7. Other compositions may work, based on the de facto Sun/DEC/Falco standard. For modern systems which support customizable compose sequences and Unicode, the table below is far from complete.
- "Linux Keyboard Text Symbols: Compose-Key Shortcuts". FSymbols. 2013-07-24. Retrieved 2015-07-07.
- Wust, J. 'Mach' (2015-06-29). "U.S. custom Keyboard Layout". SourceForge. Retrieved 2015-07-07.
- "Compose Key on Windows". Earthwithsun.com. Retrieved 2015-07-07.
- "Setting up a Real Compose Key on Mac OS X". Lol Engine. 2012-06-18. Retrieved 2015-07-07.
- "Enter european accented characters on an american keyboard". ZoneO Software. June 2006. Retrieved 2015-07-07.
- "Windows Keyboard Layouts". Microsoft Developer Network.
- "p1060628". WickensOnline. 2007. Retrieved 2015-07-07.
- "LK201_large_keycodes.jpg" (JPEG). The NetBSD Project. Retrieved 2015-07-09.
- "Add a Virtual Compose Key to Your PC". Windows.Appstorm. Retrieved 2015-07-07.
- "LK201 Keycodes and Keyboard Divisions". The NetBSD Project. Retrieved 2015-07-09.
- "p1060631". WickensOnline. 2007. Retrieved 2015-07-07.
- Burrows, Jim (2009-09-21). "Inverse-T History". Nerd Corner. Retrieved 2015-07-09.
- "Compose Key". Ubuntu. Retrieved 2012-07-10.
- van Geloven, Sander (2012). Compose Key Sequence Reference Guide 2012. Utrecht, the Netherlands: Hellebaard. ISBN 1-4681-4110-4.
- Monniaux, David. "UTF-8 (Unicode) compose sequence". Retrieved 2015-07-15.
- Linux Compose Key Sequences with equivalent Unicode mappings