3. How this Xmodmap solution works on various systems

3.1. SuSE 6.4 and 7.0

3.1.1. SuSE 7.0 with XFree86 version 3.3.6 and KDE 2.0 (this also applies to SuSE 6.4

No LANG=language statement is necessary in your bash_profile. You may use the Xmodmap file with standard ISO8859-2 keycode definitions, the above .Xmodmap file, (not "threequarters" but "scaron", etc.). Unfortunately, although you may immediately start writing with ISO8859-2 keycodes, the dead keys are not working properly and export LANG=language does not work here in order to make these dead keys work. There's also some bug with fonts or something - KDE 2.0 (or older XFree does not properly handle ISO8859-2 fonts together with Xmodmap. Old kedit, newest GNOME's gedit and StarOffice 5.2 work well (after applying the above script for StarOffice 5.2).

After copying the Compose file from /usr/X11R6/lib/X11/locale/iso8859-2/ to the /usr/X11R6/lib/X11/locale/iso8859-1/, you may start elegantly working with dead keys. This was also tested on StarOffice 5.2. The FontPath must be in /etc/XF86Config, not in /etc/X11/Xf86Config.

3.2. SuSE 7.0 with Xfree86 version 3.3.6 and KDE 1.x

Same as above.

3.3. Mandrake Linux 7.2

3.3.1. Mandrake Linux 7.2 - works as it should

Yes, it works as it should - I used the "kcmshell Personalization/kcmlayout", command, which is in the menu in Configuration > KDE > Personalization > keyboard layout and after just putting the LANG=language statement in my .bash_profile, StarOffice worked immediately (with ISO8859-2 fonts added to its directory) and I only switched the keyboards. I chose Czechoslovakian as the second language and could write in Czech with ISO8859-2 characters on my screen. (I used the script for putting the ISO8859-2 fonts for StarOffice). Unfortunatelly, the KDE 2.0 kedit could not visualize the ISO8859-2 fonts and after switching the keyboard and selecting ISO8859-2 charset I saw this: ??????? instead of lcaron, scaron, etc., but *acute symbols (uacute, aacute, etc.) displayed well.

The maps in /usr/X11R6/lib/X11/xkb/symbols can be modified on the fly, while in X; you only have to switch keyboards from the panel (click on a flag icon). You can edit those maps and modify them for your choice. After changing some Czech definitions to Slovak, StarOffice displayed them well.

3.3.2. Mandrake Linux 7.2 with XFree86 version 3.3.6

Apply the standard .Xmodmap keycodes (scaron, lcaron, not "threequarters" or "mu", etc.) and issue the command: "xmodmap  /.Xmodmap" and you may work by switching the keyboards by pressing Scroll Lock (if you use my Xmodmap file; if you use other Xmodmap file, try right Alt or whatever that is defined in the Xmodmap file).

The FontPath statement in /etc/X11/XF86Config and /etc/X11/XF86Config does not have to be changed:

FontPath "unix/:1"

The XFree86 reads automatically your fonts, but I put the ISO8859-2 fonts to /usr/share/fonts directory (same as in RedHat). Surprisingly, you do not have to copy the ../ISO8859-2/Compose file to ../ISO8859-1 directory and dead keys work nice.

3.4. Mandrake 8.1

This distribution works well as it should. In KDE, you must open the menu: Start > Preferences > Personalization > Country and Language, where you will change CHARSET from ISO8859-1 to ISO8859-2 (or ISO8859-X for any other language of your choice). Then you may either select a keyboard layout - Peripherals, Keyboard (Slovak is included with dozens of other keyboard XKB maps) from the menu: Start > Configuration > KDE > Personalisation > Peripherals > Keyboard, or you may choose my Standard Xmodmap solution. No other files require editing. That's great! Alternatively, you can set your keyboard with setxkbmap command (see section FreeBSD 4.4).

3.5. RedHat 5.1, 5.2, 6.0, 6.1 and 6.2 (XFree86 3.3.6 and older)

No LANG=language statement is necessary in your bash_profile. Here the "experimental" .Xmodmap solution works ("mu" instead of "lcaron", etc.) and you must copy the Compose file from ../IS08859-2 to ISO8859-1 directory in order for dead keys to work. There is only one XF86Config file in /etc/X11 and its FontPath should be the same as in SuSE 7.0 above.

3.6. RedHat 7.2

Same as Mandrake 8.1.

3.7. FreeBSD 3.1 and 3.2

Same as with RedHat 5.1, 5.2, 6.0, 6.1, 6.2

3.8. FreeBSD 4.1

No LANG=language statement is necessary in your bash_profile. But you must put this to /etc/profile: LANG=cs_CZ.ISO_8859-2; export LANG

FreeBSD 4.1, 4.2, 4.3, 4.4 does not use Slovak locale, so we must use the Czech one. It really does not matter. Here this depends on XFree86. Because the FreeBSD guys are too conservative about a newer software, they ship FreeBSD with older versions of XFree86. In FreeBSD 4.1 the experimental .Xmodmap solution works and you have to copy the ../ISO8859-2/Compose file to ../ISO8859-1 directory to make the dead keys work.

3.9. FreeBSD 4.4.

The Standard xmodmap solution works well. You must put this to /etc/profile:

LANG=cs_CZ.ISO_8859-2; export LANG

Yes, we will use the Czech locale for the Slovak language. Other languages require similar syntax, e.g.: LANG=it_IT.ISO_8859-1; export LANG

for the Italian language. Alternatively, you may use

setxkbmap si

as a command from an X Terminal for the Slovenian language

setxkbmap se

for Swedish

setxkbmap de

for German, etc.

A brief overview of XKB maps:

am Armenian keyboard

be Belgian

de German

ca Canadian

cs Czech

dk Danish

es Spanish

fi Finnish

fr French

gb Great Britain

hu Hungarian

is Iceland

it Italian

jp Japanese

no Norwegian

pl Polish

pt Portugese

ro Romanian

ru Russian

se Swedish

si Slovenian

3.10. Corel Linux 1.0 and 1.1

Same as with FreeBSD 3.x - experimental Xmodmap solution.

3.11. ISO* specifications

------------------------------------------------------------------- ISO8859-0 old, replaced by ISO 8859-14 and ISO 8859-15.

ISO8859-1 Western Europe: Danish, Dutch, English, Faeroese, Finnish, Flemish, French, German, Icelandic, Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish. Many other languages can be written with this.

ISO8859-2 Eastern Europe: Czech, Slovak, English, German, Hungarian, Polish, Romanian, Serbo-Croatian, Slovak, Slovene.

ISO8859-3 English, Esperanto, Galician, Maltese and Turkish.

ISO8859-4 English, Baltic languages - Estonian, Latvian, Lithuanian, and Scandinavian languages - Danish, Faeroese, Icelandic, Lappish, Norwegian, and Swedish.

ISO8859-5 Latin/Cyrillic alphabet: Bulgarian, Byelorussian, English, Macedonian, Russian, Serbian, Ukrainian.

ISO8859-6 Latin/Arabic alphabet: English, Arabic.

ISO8859-7 Latin/Greek alphabet: English, Greek.

ISO8859-8 Latin/Hebrew alphabet: English, Hebrew.

ISO8859-9 Latin alphabet: Danish, Dutch, English, Finnish, French, German, Irish, Italian, Norwegian, Portuguese, Spanish, Swedish, Turkish, formed by extending ISO8859-1.

ISO8859-10 Latin alphabet: Modification of ISO8859-4

ISO8859-11 Latin/Thai alphabet.

ISO8859-12 Reserved.

ISO8859-13 Baltic.

ISO8859-14 Celtic

ISO8859-15 Similar to Latin-1

ISO8859-16 Albanian, Croatian, English, Finnish, French, German, Hungarian, Irish Gaelic, Italian, Latin, Polish, Romanian, Slovenian, Lithuanian, and Scandinavian languages (Danish, Faeroese, Icelandic.