Latin Plus: An Input Method Module for GTK+

Modern Linux systems allow a very wide range of Unicode characters to be displayed, but few of these are easy to input via the keyboard. One solution is to set up a <compose> key, which allows the following keys that are pressed to determine the character that is input. For example, <compose> + 'n' + '~' will produce ñ. The default input method for gtk+ allows the use of compose sequences, but I felt that it would be nice if there were a lot more of them. The aim of Latin Plus is to greatly extend the range of characters available for input through compose sequences.

How to get and use Latin Plus

Latin Plus is currently available as part of the gtk-im-extra project. To download it, go to the gtk-im-extra sourceforge page and follow the directions there. Then from the source directory, enter the following commands to compile:

sudo make install
If your locale is set to a common latin alphabet using language, Latin Plus should be installed as the default input method. In most gtk+ applications, you can see if Latin Plus is installed and being used by right-clicking on a text entry box and selecting Input Method.

To use Latin Plus, you will need to set up one of the keys on your keyboard as a compose key. If you are using a recent version of Gnome, this can be done under the Keyboard Preferences dialog, under the Layout Options tab. Finally, you will want some good Unicode fonts to improve the appearance of the characters you are typing. I recommend DejaVu, which is an enhanced version of Bitstream Vera with better handling of diacritics.


The principles behind the design of Latin Plus are, first, that commonly used characters should be available by intuitive compose sequences, and second, that as many characters as possible are covered. Latin Plus was designed by an English speaker using an American keyboard who wants to be able to dabble in as many languages as possible, at least to the point of being able to type words with diacritics correctly. The closer you come to fitting that profile, the more useful Latin Plus will be for you, but it should be at least somewhat useful to native speakers of most Latin alphabet using languages.


Applications that don't use the gtk+ toolkit won't use Latin Plus.

No compose sequence longer than two characters is included. Languages that include multiple diacritical marks on the same character, like Vietnamese, are thus not covered. This is necessary because allowing longer compose sequences would cause unintuitive behavior for people who are entering a compose sequence that is a subsequence of the longer sequence. (In theory, longer sequences could be used if it could be guaranteed that no shorter subsequence would be used, but currently this is not done.)

The availability of compose sequences using keys not on an American keyboard is probably inadequate. If you have some in mind that would be useful, email me.

For that matter, there may be sequences I haven't gotten to or thought of. Email me, and if I like your ideas, I'll include them.

The Sequences

This list isn't exhaustive, but should include the most reasonable ways of getting at supported characters. Where the order of the characters in the compose sequence isn't meaningful, either order should work. For characters with upper and lower case versions, either can be accessed by using the appropriate case in the compose sequence.


(These can be combined in either order)

charactercombines withto make
'a c e i l n o r s u y z á ć é í ĺ ń ó ŕ ś ú ý ź
`a e i o u yà è ì ò ù ỳ
"a e i o u w yä ë ï ö ü ẅ ÿ
,a c e g i k l n r s t uą ç ę ģ į ķ ļ ņ ŗ ş ţ ų
^ or >a c e g h i j o s u v w yâ ĉ ĝ ĥ î ĵ ô ŝ û ŵ ŷ
<c d e l n r s t zč ď ě ľ ň ř š ť ž
(a e g i o uă ĕ ğ ĭ ŏ ŭ
-a d e h i o s uā đ ē ħ ī ō ſ ū
~a i n o uã ĩ ñ õ ũ
:o uő ű
*a uå ů
.b c d e f g i l m p s t zḃ ċ ḋ ė ḟ ġ ı ŀ ṁ ṗ ṡ ṫ ż
/d l o tð ł ø ŧ

Most of the diacritics above are available as combining diacritics. Combining diacritic characters appear as diacritics on the previous character. You can input them by typing <Compose> ← [character representing diacritic]. For example n <Compose> ← " produces n̈, which should appear as an n with an umlaut. Support for combining diacritics can be shaky, especially on older systems, so it's better to use a precomposed character when one is available.

ligature characters:

charactercombines withto make
ss or zß

Spanish Ordinal Indicators:

charactercombines withto make
_a oª º

Latin characters outside of the usual 26:

charactercombines withto make
d/ð (eth)
eeə (schwa)
ngŋ (eng)
thþ (thorn)
kkĸ (kra)


charactercombines withto make
|- =† ‡

Currency Symbols:

charactercombines withto make

Math and scientific symbols:

charactercombines withto make
**∘ (ring operator)
v2 3 4√ ∛ ∜
=< >≤,≥
-[ ]∈ ∋
_[ ]⊆ ⊇
^0° (degree symbol)

Vulgar Fractions: The following vulgar fractions can be entered using the numerator followed by the denominator as the compose sequence: ½, ⅓, ⅔, ¼, ¾, ⅕, ⅖, ⅗, ⅘, ⅙, ⅚, ⅛, ⅜, ⅝, ⅞.

Superscripts and Subscripts:

charactercombines withto make
_0 1 2 3 4 5 6 7 8 9₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉
^1 2 3 4 5 6 7 8 9¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹

Arrows: (these should work with both keypad and non-keypad arrow keys, with analogous results with all arrow directions, except as indicated.)

charactercombines withto make
→ (key)→ (key)→ (arrow character)
3⇶ (right arrow only)
|⇸ (right and left only)
/↛ (right and left only)
0⇴ (right only)

Music Symbols:

charactercombines withto make

Intellectual Property Marks:

charactercombines withto make
0c p r© ℗ ®

Odds and Ends:

charactercombines withto make
:) (☺ ☹
co u℅ ℆
/m v₥ ℣
<space><space><non-breaking space>

Greek letters:

Greek letters can be accessed by typing <compose> + '&' + the letter that maps to that that greek letter in the Symbol font mapping, as shown in the following table:
Latin characterGreek character
a Aα Α
b Bβ Β
c Cχ Χ
d Dδ Δ
e Eε Ε
f Fφ Φ
g Gγ Γ
h Hη Η
i Iι Ι
j Jϕ ϑ
k Kκ Κ
l Lλ Λ
m Mμ Μ
n Nν Ν
o Oο Ο
p Pπ Π
q Qθ Θ
r Rρ Ρ
s Sσ Σ
t Tτ Τ
u Uυ Υ
v Vϖ ς
w Wω Ω
x Xξ Ξ
y Yψ Ψ
z Zζ Ζ


Occasionally, I might find things that would be useful to be able to do with keyboard shortcuts in various programs. Since Latin Plus owns the <compose> key, I can hack such things out.

Currently, there is only one such hack: <compose> + <insert> pastes from the primary selection. (That is, text highlighted with the mouse.) This is functionality that the designers of gtk in their wisdom have decided should only be available by middle-clicking with the mouse, but it's too useful not to have a keyboard shortcut.

Please send comments to me at

—Alexandre Owen Muñiz

Last modified: Mon Jul 14 17:38:38 PDT 2008