Input methods for characters that are not present on keyboard
Change keyboard layout
In Windows a ‘United States-International’ keyboard layout is available. It has a QWERTY layout but also can be used to insert numerous characters used in Western European languages. These characters can be typed using both AltGr modifier and dead keys. Similar layouts are included in many Linux distributions.
All keyboard layouts shipped with Microsoft Windows .
Create a custom keyboard layout
Most frequently used characters can be mapped to certain key combinations. Normally right Alt (also called AltGr) is used as a modifier key.
- Janko’s keyboard generator , for Windows 9x and ME, freeware. Program creates a keyboard layout file (with .kbd extension), this file is used to replace existing layout file (US english – kbdus.kbd, French – kbdfr.kbd, German – kbdge.kbd or kbdge1.kbd, other layouts’ names can be found in the Registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts. After replacing the file system must be restarted. It is advisable to make a backup copy of the original layout file. Any changes to multilingual setup, especially removing and subsequent adding certain language group, may result in replacing the custom keyboard layout file with the default file that comes with the system.
- Microsoft makes available for download a Keyboard Layout Creator . It’s free for all legal users of Windows, works only on Windows 2000 and newer, requires .NET Framework.
- Keyboard Layout Manager
allows to edit installed keyboard layouts and create new ones (these are also automatically registered with the system). Works with all Windows versions starting with 95 and NT4. Lite version – freeware, other versions – shareware.
- Keyboard Mapping for Linux .
- Creating custom keyboard layouts for X11 using XKB .
In Windows NT, 2000, XP, 2003 Server and Vista a keyboard layout may include any character (unlike Windows 9x and ME, in which case only characters existing in the 8-bit system code page can be included), but some programs will not accept from keyboard any characters that are not in the system code page.
All Windows versions, many Linux distributions and MacOS include a character map. Copying to clipboard and pasting into application is tedious so here are three programs for Windows that allow single-click input:
- CM32 – Resident Character Map – shareware, version with interface in German is also available. It loads into tray. Allows also to create custom text that can be inserted by single click.
- UniKey – freeware, version with interface in German is also available. WGL4Key, also available on the same page, has similar function (freeware).
- James – program loads to tray too, enables to define up to 26 frequently used text strings and 26 frequently used characters that can be inserted with single click. The program was removed from its author’s page but still is available from web.archive.org. Interface in German only.
- Quick Key – Open Source, requires .NET framework.
Character maps and helpers integrated into programs
A small selection.
- OpenOffice.org : menu Insert ⇒ Special Character…
- MS Word : menu Insert ⇒ Symbol…
- Corel WordPerfect : menu Insert ⇒ Symbol… (or Ctrl + W)
- Mozilla Thunderbird , Mozilla Nvu , Kompozer : menu Insert ⇒ Characters and Symbols…. In Thunderbird it is accessible only when composing in HTML.
- abc Tajpu a Firefox add-on that allows inserting of numerous characters in edit boxes.
- Additional toolbar for MS Word allows easy inserting of Latin characters with diacritical marks and of Greek letters.
- Simredo – a plain text editor in Java, requires JRE 1.4 or higher. It also has a rudimentary RTF support (similar to that offered by the Windows’ WordPad) but with partially broken support of extended characters other than those that are covered by ISO-8859-1 (code points beyond U+00FF). Comes with several keyboard layouts; it is very easy to create a custom keyboard layout or edit an existing one. Also has a character map but selected characters have to be copied and pasted manually. Interface language can be selected from among 6 languages. Homepage gone, link is to Google search results.
It is possible to use the Wikipedia sandbox where many accented and special characters can be inserted into edit box by single click. Other Wikipedias have similar pages with possibly different characters. The same script is used by the virtual keyboard which offers only a few characters but is easier to use thanks to size of the ‘keys’.
When a character’s position number in Unicode is known, it is possible to insert this character using this number. Some programs support one or more of the following methods:
- Press and hold Alt, then enter the character’s decimal number on the numeric keyboard (in case of characters no. 160–255 enter leading zero as well, e.g. 0163). See below for the limitations of this method.
- Enter the character’s hexadecimal number, then immediately press Alt + x (or Alt + c in other programs). If the code is preceded by a digit or a letter a–f, it is necessary to separate the code from the preceding character by a space or some other character (other than a digit or one of the aforementioned letters), sometimes marking the code to be converted will work too (e.g. fiance9 or 23b0C will result in fiancé or 23°C, otherwise the results would be fian೩ or ⎰C respectively). To the best of my knowledge, these two methods only work in Windows, the second one in software using the Riched32 control (MS Office, Wordpad, some advanced Notepad replacements).
- In Windows, press and hold Alt, then press the plus sign followed by the character’s hexadecimal number. This input method is supposed to work with all versions of Windows beginning with XP but it seems that for some unknown reason it is not enabled by default in some systems. If it doesn’t work for you, you need to add a string (REG_SZ) named EnableHexNumpad under the HKCU\Control Panel\Input Method key and set its value to ‘1’. Apparently it also requires a fairly recent version of Richedit control to work.
- In the case of software using GTK+, press and release Ctrl + Shift + U, enter the Unicode hex code for the character and then press Enter (older versions used Ctrl + Shift combination). Because GNOME 2 uses GTK+, all software run under GNOME will accept entering of extended characters using this method. GTK+ has been ported to Windows and some Windows software uses it as well (e.g. GIMP, Inkscape).
- In the case of programs written in Java (based on the Swing component – majority; an example being the above-mentioned Simredo), it is possible to add an extension to the Java Runtime Environment that automatically converts hex codes entered into the program to respective characters. See the Using Input Methods on the Java Platform article for details.
In Windows there is a limitation that affects users of systems set to non-Western regional settings and concerns characters No 160–255. Windows is programmed in such a way that a 3-digit code (without the leading zero) will be treated as referring to the position in DOS (OEM) codepage while the code with leading zero will be treated as referring to the position in Windows (ANSI) codepage. In case of non-Western Windows it will be necessary to switch keyboard language to some Western language to be able to insert a character from the Unicode range of 160-255. In many applications there will also be conflict between a character’s hexadecimal code and keyboard accelerators making it impossible to enter a number that includes hexadecimal digits A–F (most frequently E and F). Some applications do not accept decimal numbers above 255, entering a number above this limit will result in inserting a character from position in the range of 0–255, modulo 256, e.g. in place of the character ‘g with dot above’ (ġ, character No 289) the exclamation mark (character no. 33) will be inserted instead: 289 − 256 = 33.