Extra Characters


There are a variety of characters that cannot be inputted with the keyboard in the usual manner. We need a way to insert these characters that is convenient and easy to learn.



  • Enable the insertion of characters for different languages, such as letters with accents, umlauts, circumflexes
  • Enable the insertion of additional typographic characters, such as em dashes, guillemets, degrees, copyright and trademark characters

Relevant Art

Windows 7

International Keyboard Layouts

Entering a punctuation mark then a letter combines them. ' followed by a produces an á, for example.

Holding down the Right Alt key (we'd call it the Third Level Chooser) gives access to other characters. eg. Right Alt+c produces a copyright symbol

Alt Codes

These appear to be used quite commonly. You hold down the Alt key and enter a numeric code for specific characters.

OS X Lion

Character Palette


Keyboard Viewer


Both the character palette and keyboard viewer can be accessed from the input method menu



The bubble is activated by holding down the relevant key. Each character can then be inserted by pressing the corresponding number.

Option Codes

Similar to the 'Third Level Chooser' on Linux.


There are a number of ways to enter such characters, currently:

gucharacter map

Find the character you are interested in, double-click to select it, then paste it where you need it. The downside of this is that you have to switch to another app and back for each character.

On-screen keyboard

Included in GNOME 3.2 pops up secondary popups with choices for accented characters very similar to the one shown above when holding e.g. the 'a' button for a while.


GTK+ Unicode Input

A simple input method that supports entering arbitrary unicode characters by typing Shift-Ctrl-u, followed by the hexadecimal Unicode codepoint. As an example, 'Shift-Ctrl-u a 9' generates a copyright sign. The downside of this is that you have to memorize all of Unicode.

Compose Key

This must be defined in the layout preferences. Then there are a large number of key combinations involving the compose key that generate such characters. As an example, 'Compose ( c' generates a copyright sign. This is supported both by GTK+'s simple input method as well as by various other input methods. The downside of this is that you have to memorize a large table of key combinations.

Third Level Chooser Key

Must also be defined in the preferences. Holding down the key allows extra punctuation characters to be inserted.

Accents, circumflexes etc can be added to characters by holding the Third Level Chooser key, pressing the appropriate punctuation key, then releasing and pressing a character key. Third Level Chooser+# followed by a produces à, for example.


iBus currently provides two methods:

Third Level Chooser

This is automatically mapped to the Right Alt key. It operates in the same way as the existing Third Level Chooser implementation.

Rawcode Engine

Similar to other unicode input methods, this allows characters to be inputted by using their unicode designation.


Touchscreen Keyboards, Generally

Touchscreen keyboards typically provide two facilities that are instructive:

Press and hold

Reveals variants of that character, such as with accents and circumflexes

Punctuation picker

For common punctuation characters. This typically has a basic and extended set of characters


Keyboard Input

Keyboard input for extra characters is not particularly user friendly, but it should work nonetheless.

GNOME currently suffers because neither the third level picker or the compose key are easily discoverable or accessible. Furthermore, the simultaneous existence of the compose and third level chooser keys creates a confusing situation in which two overlapping pieces of functionality compete for peoples' attention. (While the compose key is described in the documentation, the third level chooser is not.)

The characters that can be inputted using the third level chooser key are sometimes printed on keyboards themselves. They are also displayed in our keyboard layout viewer dialogs.

'Third level chooser' is an incredibly confusing name.

Pop Up Pickers

Pop ups such as those found in on screen keyboards and in OS X Lion offer an easy way to add extra characters. Consistency with onscreen keyboards found elsewhere aids their discoverability.

It is worth noting that these pop ups for character variations overlap with the functionality provided by the third level chooser key.

If we are going to have pop ups for inputting character variations it would be consistent to also use them for adding punctuation.


The trick to this approach would be to find a good key to activate the character picker. Options:

  • Long press Right Alt/AltGr
  • + Is a modifier key.
  • + Already has some (minor) association with special characters.
  • - Would replace the third level chooser key. (This is necessary for some region/languages at the moment.)
  • Long press ` (key above tab)
  • + Somewhat maps to 'punctuation', since it typically has three unusual characters printed on it and its row is focused on special characters.
  • - Isn't identified as being a modifier key.
  • Space+Right Alt/AltGr (or a similar combination)
  • + Faster than a long press.
  • + Again, some minor association with special characters.
  • + Some sense of being a modifier.
  • ? Might be problematic on a Mac
  • - Inconsistent with other long press behaviour.

Tentative Design

Third Level Chooser

Give the Third Level Chooser a better name. 'Alternative Characters Key' maybe.

Ensure that the Right Alt/AltGr key is mapped to the third level chooser where possible. Enable people to map an alternative key if they do not have a right Alt/AltGr key.

The keyboard layout viewer needs to make it possible to learn how to use the third level chooser:


Character Input Popups

Popups for character variations are a good first step here.


A method for adding punctuation could be implemented later.

Character Map

We need a new design for this. See Design/Apps/CharacterMap

See Also

Related design pages:

More Information:

Design/OS/ExtraCharacters (last edited 2013-12-04 19:16:51 by WilliamJonMcCann)