Linuxdoc Linux Questions
Click here to ask our community of linux experts!
Custom Search

6. How this Xmodmap solution works on various systems

6.1. SuSE 6.4 and 7.0

6.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 and the .Xmodmap file (not from the legacy solution). 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 XFree86 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.

6.2. SuSE 7.0 (Xfree86 3.3.6, KDE 1.x), SuSE 8.0

SuSE 7.0 works same as above. SuSE 8.0 works without problems - just apply the xmodmap command on your xmodmap keyboard definition and you are ready to go. It is a good idea to install support for your national language in Yast2, if there is a problem.

6.3. Mandrake Linux 7.2

6.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, but this is a dirtier way than to modify Xmodmap maps. You switch keyboards from the panel flag icon.

6.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 else 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 nicely.

6.4. Mandrake 8.1

These distributions work well as they 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).

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

The legacy solution must be used here. 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 must contain path to the pertinent fonts.

6.6. RedHat 7.2, RedHat 8.0, Slackware 8.1

RedHat 7.2 behaves same as Mandrake 8.1. RedHat 8.0, with KDE 3, works nicely without problems - you can use the xmodmap solution immediately without digging up in the system and changing configurations. You do not have to go to Look and Feel menu in the Preferences menu - you can either apply the xmodmap solution immediately, or you can choose to configure (add) keyboard in the Preferences - Peripherals menu (if you decide for XKB). You will have the keyboard icon placed on the panel and you just click on it to switch between keyboards. Slackware 8.1 behaves exactly as RedHat 8.0, I only had to include the "export= language command (both for XKB and Xmodmap solution) in the Bash profile for the dead keys to work.

6.7. FreeBSD 3.1 and 3.2

Internationalization works the same way as with RedHat 5.1, 5.2, 6.0, 6.1, 6.2

6.8. FreeBSD 4.1, 4.2, 4.3, 4.4, 4.5

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 here. It really does not matter. Here this depends on XFree86. Because the FreeBSD guys are too conservative about newer versions, 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.

6.9. FreeBSD 4.6.

The Standard Xmodmap solution works well. I think this version has some problems with installation - after installing the system, I missed some things I had selected in the installation wizard. A good idea would be to upgrade.

If you decide to run setxkbmap (FreeBSD or Linux), 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 names that stand for 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

6.10. Corel Linux 1.0 and 1.1

Same as with FreeBSD 3.x - legacy Xmodmap solution must be applied.