Infrablue atTripod

Cygwin Part 1
Cygwin Part 2
Cygwin Part 3
Int'l. Keyboard


International Keyboard Configuration: Using Multi key


This document is about how to configure a computer running Debian GNU/Linux with a standard US keyboard to be able to input a wide range of characters necessary for typing in other languages and other symbols.

To anyone who uses a US keyboard to type in German, French, Spanish, or a range of other languages which contain diacritical marks it is very important to be able to type these characters (actually they are graphemes, not characters). 

Configuring the Keyboard in Ubuntu

The easiest way to configure a keyboard to support international characters is to reconfigure the X server and select the
intl keyboard layout:

dpkg-reconfigure xserver-xorg

When asked for xkb options, enter
Or if you have a right windows key, enter

The other way (perhaps this is actually more simple) is to edit
Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc104"
        Option          "XkbLayout"     "us"
        Option          "XkbOptions"    "compose:ralt"

To configure the console (non-X) keyboard install the console-data package if it is not already installed or, if it is, reconfigure it:

apt-get install console-data                 
dpkg-reconfigure console-data


Producing Graphemes using Multi-key vs. Deadkey

The terminology related to keymaps is a little bit strange but there are a couple of terms worth learning.  One is the term
symbol.  You would probably guess that a symbol is a thing one sees typed on a screen but this is wrong.  A symbol is a sequence of one or more key presses which produce a grapheme which is the thing one sees on one's monitor.  Because not all symbols produce graphemes they are called dead symbols.  For example if you ever chose the U.S. International keyboard layout on Windows machine you would notice that pressing the <quoteright> key (the apostrophe key) by itself produces no graphemes.  Instead, if you press one of a number of keys after having pressed quoteright the behaviour of that key is altered.  So pressing <quoteright><e> produces not the grapheme e but  rather e-acute, .  What happend was that under the U.S. International layout in Windows the symbol associated with the <quoteright> gets changed from apostrophe to dead acute.  Note that the symbol to produce apostrophe has not disappeared.  It is changed to <quoteright><spacebar>. 

Many people who need to type international characters do not like the behavior of this U.S. International layout because it is annoying to always have to type <quoteright><spacebar> when one wants to type an apostrophe, or <shift>-<quoteright><spacebar> to type a double quote.

Enter Multi-key

Fortunately there is a much better way to produce international characters which not only avoids the drawbacks of of the deadkey approach but also extends the possible number of characters much further.  This approach creates a new special key called Multi-key which is usually assigned to either the right-Alt key or to the right-Windows key if there is one.

Just as the spacebar functions as a special key which combines with other keys so does Multi-key.  But Multi-key is even more than this.  Multi-key acts more like a special toggle switch.  For example to type e-acute using Multi-key one types <rightalt><quoteright><e>.  Note that unlike with the shift key one does not have to simultaneously press Multi-key and the consecutive key at the same time. 

Following is a table of keys with associated symbol names and example graphemes which they produce.

Key Name key
with shift
with multi
with multi + shift

quoteleft asciitilde dead_grave, dead_tilde
` ~ àÀèÈùÙìÌòÒ ãÃñÑ
paragraph, section
<!><!> - <p> - <s>
1 !        ¡             ¶        §
5 percent    
5 %    
6 asciicircum   dead_circumflex
6 ^   âÂêÊîÎôÔûÛ
9 parenleft   dead_breve
9 (   ăĂ®ğĞ

copyright, section sign, EuroSign (some apps)

<c> - <s> - <x>
0 )    ©      §      €  

EuroSign (some apps), yen, sterling

<e> - <l> -  <y>
= +    €        ¥        £ # ¯][

Eszett - Scharfes-S
s S               ß  
semicolon colon dead_ogonek ???  
; :    
quoteright quotedbl dead_acute dead_diaeresis (umlaut,  dieresis)
' " áÁéÉŕŔýÝúÚíÍóÓśŚĺĹźŹćĆńŃ äÄëËïÏöÖüÜÿŸ
comma less dead_cedilla dead_caron
, < ąĄçÇęĘŗįĮŗŖųŲşŞģĢķĶļĻņŅ čČěĚřŘťŤšŠďĎľĽžŽňŇ
period greater dead_abovedot dead_circumflex
. > ċĊėĖṫṪıİṗṖṡṠḋḊḟḞġĠżŻḃḂṁṀ âÂêÊûÛîÎôÔ
slash question cent, dead_hook dead_hook
Below are some possible keys that Mutli_key can be assigned to, along with a few other symbols these keys may have (in no particular order).
RALT Alt_R Meta_R Mode_switch Multi_key
LWIN Super_L      
RWIN Super_R Multi_key    


This is not  the end however.  The applications one uses must be able to support these graphemes.   This Perl statement will print out a range of special graphemes which is useful to see of the font in your terminal can handle them:

perl -e 'for$i(160..255){printf"%c%c",$i,($i%16==15)?10:32}'

Unfortunately many of the default fonts used by applications still do not support these graphemes. 

Regarding Locales

Locales are another component in the language/grapheme set puzzle.  One way to reconfigure and/or set the default locale for your system is to run:

dpkg-reconfigure locales

(Make sure you have locales installed.  Installing localeconf is a good idea also.)

I recommend using en_US.UTF-8.


"Those foreign diacritical marks ("accents")",

"Special symbols",


Home Cygwin Part 1 Cygwin Part 2 Cygwin Part 3 Int'l. Keyboard