LinuxDocs.org is up for sale! Current asking price: USD (computing). Go here for more information.
Next Previous Contents

3. How this Xmodmap solution works on various systems

3.1 SuSE 6.4 and 7.0

SuSE 7.0 with XFree86 version 3.3.6 and KDE 2.0 (this also appliesto SuSE 6.4

KDE 2.0No LANG=language and LC_ALL=language statements are necessary in youbash_profile. You may use the Xmodmap file with standard ISO8859-2 keycode definitions (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 withfonts or something - KDE 2.0 does not properly handle ISO8859-2 fontstogether with Xmodmap. Old kedit, newest GNOME's gedit and StarOffice work well (after applying the above script for StarOffice).

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. If you put the FontPath for ISO8859-2 fonts to the /etc/X11/Xf86Config file, StarOffice may not see these fonts properly. While working with StarOffice, you must NOT use the fonts from the StarOffice itself, but the ones from the ../ISO8859-2 directory.

The following is the FontPath section for ISO8859-2 fonts from my SuSE 7.0 /etc/XF86Config file:

FontPath "/usr/X11R6/lib/X11/fonts/ISO8859-2/Type1"

FontPath "/usr/X11R6/lib/X11/fonts/ISO8859-2/Type1/afm"

FontPath "/usr/X11R6/lib/X11/fonts/ISO8859-2/Type1/pfm"

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

Same as with KDE 2.0.

3.3 Mandrake Linux 7.2

Mandrake Linux 7.2 - as it should be (KDE 2.0 without Xmodmap)

Yes, as it should be - I used the "kcmshell Personalization/kcmlayout", command, which is in the menu in Configuration > KDE > Personalization > keyboard layout and after just putting the LC_ALL=language and LANG=language statements, StarOffice worked immediately (with ISO8859-2 fonts in 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. Here only the LANG=language and LC_ALL=langauge statements in the bash_profile were sufficient (as well as 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 icon). You can edit those maps and modify the for your choice. After changing some Czech definitions to Slovak StarOffice displayed them well.

sect2>The "cs" symbol file modified for Slovak

You can modify this file as you like, but rather use the original files from ../xkb/symbols directory. After selecting the keyboard in KDE or XFree86 for Czechoslovakia, you will see on screen the letters you chose. The following map uses English and Slovak definitions. This is an alternative to Xmodmap (changing "percent" to "zcaron" will give you "zcaron", changing "exclam" to "plus" will give you "plus" where "exlam" was initially.

// $XConsortium: cs /main/3 1996/08/31 12:19:14 kaleb $

partial default alphanumeric_keys

xkb_symbols "basic" {

// Describes the differences between a very simple en_US

// keyboard and a very simple Czech(Czechoslovakia) keybaord

name[Group1]= "Czech";

key { [ dead_diaeresis, dead_abovering ],

[ grave, asciitilde ] };

key { [ q, Q ],

[ q, Q ] };

key { [ plus, 1 ],

[ 1, exclam ] };

key { [ y, Y ],

[ z, Z ] };

key { [ s, S ],

[ s, S ] };

key { [ a, A ],

[ a, A ] };

key { [ w, W ],

[ w, W ] };

key { [ lcaron, 2 ],

[ 2, at ] };

key { [ c, C ],

[ c, C ] };

key { [ x, X ],

[ x, X ] };

key { [ d, D ],

[ d, D ] };

key { [ ccaron, 4 ],

[ 4, dollar ] };

key { [ scaron, 3 ],

[ 3, numbersign ] };

key { [ f, F ],

[ f, F ] };

key { [ t, T ],

[ t, T ] };

key { [ r, R ],

[ r, R ] };

key { [ tcaron, 5 ],

[ 5, percent ] };

key { [ h, H ],

[ h, H ] };

key { [ g, G ],

[ g, G ] };

key { [ z, Z ],

[ y, Y ] };

key { [ zcaron, 6 ],

[ 6, asciicircum ] };

key { [ m, M ],

[ m, M ] };

key { [ u, U ],

[ u, U ] };

key { [ yacute, 7 ],

[ 7, ampersand ] };

key { [ aacute, 8 ],

[ 8, asterisk ] };

key { [ comma, question ],

[ comma, less ] };

key { [ k, K ],

[ k, K ] };

key { [ i, I ],

[ i, I ] };

key { [ o, O ],

[ o, O ] };

key { [ eacute, 0 ],

[ 0, parenright ] };

key { [ iacute, 9 ],

[ 9, parenleft ] };

key { [ period, colon ],

[ period, greater ] };

key { [ minus, underscore ],

[ slash, question ] };

key { [ uacute, quotedbl ],

[ semicolon, colon ] };

key { [ p, P ],

[ p, P ] };

key { [ equal, percent ],

[ minus, underscore ] };

key { [ section, exclam ],

[ apostrophe, quotedbl ] };

key { [ uacute, slash ],

[ bracketleft, braceleft ] };

key { [ dead_acute, dead_caron ],

[ equal, plus ] };

key { [ ncaron, parenright ],

[ ncaron, bar ] };

key { [ less, greater ],

[ backslash, brokenbar ] };

key { [ adiaeresis, parenleft ],

[ bracketright, braceright ] };

key { [ Scroll_Lock ] };

// End alphanumeric section

// begin modifier mappings

modifier_map Shift { Shift_L };

modifier_map Lock { Caps_Lock };

modifier_map Control{ Control_L };

modifier_map Mod3 { Mode_switch };

};

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 RedHat 5.1, 5.2, 6.0, 6.1 and 6.2 (XFree86 3.3.6 and older)

No LANG=language and LC_ALL=language statements are necessary in you 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 is the same as in SuSE 7.0 above.

3.5 FreeBSD 3.1 and 3.2

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

3.6 FreeBSD 4.1

No LANG=language and LC_ALL=language statements are necessary in you bash_profile. Here this depends on XFree86. FreeBSD 4.1 handles better the LANG and LC_ALL statements (with XKB). Because the FreeBSD guys are too conservative about the 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.7 Corel Linux 1.0 and 1.1

Same as with FreeBSD.

3.8 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.


Next Previous Contents