Add a Virtual Compose Key to Your PC

In this round-up, I review three utilities that give the user the ability to input accented and other non-ASCII characters on a PC. They are FreeCompose, AllChars, and Unichars.

Entering these “special” characters on a PC can be awkward. A keyboard has room for only so many keys. There are two ways to input these characters: Alt codes on Windows, and Compose characters on workstations. There are other ways, of course, but those two ways make a telling contrast. The first is arguably the ugliest while the latter is arguably the most elegant.

The Big Blue Way

The use of Alt codes on the PC dates all the way back to the original IBM PC. The user would hold down the Alt key while entering a sequence on the numeric keypad (while the Number Lock key was on). The sequence had to correspond to a character code for the current language. For English-language PCs, this was code page 437.

For example, holding down the Alt key while typing 0196 on the numeric keypad would enter a capital A-with-umlaut, or Ä, as soon as the Alt key was released. To get a lower-case o-with-circumflex (ô), the sequence was Alt+0244. Try it yourself, if you’re using a Wintel PC. They still work.

Even though this requires memorizing a large number of apparently arbitrary digits, a lot of people learned how to type accented characters in exactly this way. So many people learned this way that Microsoft was forced to keep the feature even after the BIOS was abandoned for all purposes except boot-up. Your local neck-bearded Unix guru will gloat over Microsoft stupidity at this point, but you can remind him that Microsoft did not and does not write BIOS code. The BIOS came from IBM.

The Compose Key

Digital Equipment Corporation came up with a much more elegant solution. In 1983, DEC released their VT220 terminal. This terminal was the first product to use the LK201 keyboard. This keyboard has influenced all modern desktop keyboards. Too bad our current keyboards don’t include the LK201’s most innovative feature: the Compose key.

The Compose key works like this: Press the Compose key. Don’t hold it down like the Shift key, just press it like an ordinary key. Then enter a mnemonic two-key sequence. This sequence would “paint” the desired character. To get an Ä, press the Compose key, then type “A (a double-quote followed by a capital A). To get an ô, press the Compose key followed by ^o (a caret followed by the letter o). To get an Æ, press the Compose key followed by AE (capital A followed by capital E).

Lists of Compose key sequences can be found all over the Internet. Clearly, the Compose key sequences are much easier to memorize than Alt codes. The beauty of the system is that one can figure out many of the sequences beforehand.

That filthy Unix hippy looking over your shoulder may be going on about the power of Unix and “free” software. Point out that the Compose key was a unilateral innovation of DEC. They made at least ten different, non-Unix, proprietary operating systems. Unix hackers couldn’t have made the Compose key because Unix had to be compatible with umpteen different workstation and minicomputer platforms and even more different types of video display terminals. Those DEC engineers who dreamed up the Compose key had VMS on their minds more than Unix. DEC didn’t release their own Unix variant, Ultrix, until 1984 and the first dedicated Unix workstation that had a Compose key was the Sun4, released in 1987.

Adding a Compose Key to Windows

Enough history. In this round-up, I have tried three different utilities that emulate the Compose key for Microsoft Windows. They are Unichars, AllChars, and FreeCompose.

I tested each of these utilities against the search box of the Windows File Explorer, Mozilla Firefox, Microsoft Word, the UltraEdit text editor and GNU Emacs.


Unichars is a freeware utility that is based on AutoHotkey. Unichars installs itself in directory called “Util” at the root of the C: drive rather than in the Program Files directory. It uses the clipboard to store the special characters which can get in the way if you had something there that you wanted. Here are the results:

  • Windows Explorer: Nothing displayed.
  • Firefox: It worked.
  • Microsoft Word: At first, it pasted the previous contents of the clipboard, then it worked.
  • UltraEdit: Nothing displayed.
  • GNU Emacs: Nothing displayed.


AllChars is licensed under version 2 of the GPL. It inspired the creation of Unichars when development went on hiatus. It has since returned to active development (the latest version was released only a month before the latest version of Unichars). Unlike Unichars, it installs to the Program Files directory and does not clutter the clipboard. The results:

  • Windows Explorer: It worked.
  • Firefox: It worked.
  • Microsoft Word: It worked.
  • UltraEdit: It worked.
  • GNU Emacs: It worked.


FreeCompose is licensed under the New BSD license. Whereas the previous two programs use the Control key as a Compose key, FreeCompose uses the menu key, next to the right-hand Control key, as a Compose key, although this is configurable via an options menu. Pressing the menu key once activates a compose sequence. Pressing it a second time passes the keystroke to the application. The developers admit that it does not work with PuTTY and have provided a patch. Aside from that, here are the results:

  • Windows Explorer: It worked.
  • Firefox: It worked.
  • Microsoft Word: It worked.
  • UltraEdit: It worked.
  • GNU Emacs: It worked.

Infuriatingly, FreeCompose beeps during every keystroke of a compose sequence. This is an old school beep that the motherboard speaker emits. The developers have promised that this will be fixed in the next release.


AllChars is the winner in this roundup, although, if you really don’t mind the beep, then you may find FreeCompose worthy of some thought. The ultimate solution, of course, is for Microsoft to build this functionality into Windows. Keyboard input is the job of the operating system and the guys at Redmond need to ditch the Alt code legacy.