how to setup international keyboard in x window with ... to setup international keyboard in x window...

76
How to setup international keyboard in X Window with Xmodmap and XKB by Juraj Sipos, [email protected] How to setup international keyboard in Linux or Unix with Xmodmap and XKB written by (c) Juraj Sipos. The Xmodmap is a file that XFree86 reads in order to give you a keyboard layout. This solution will work for you in setting up any international keyboard for (Debian, RedHat, Mandrake, CorelLinux) Linux, FreeBSD, OpenBSD, NetBSD and possibly every Unix that uses XFree86. The advantage of this howto is that it is not architecture specific and will work on all other systems.

Upload: phamlien

Post on 02-Apr-2018

232 views

Category:

Documents


4 download

TRANSCRIPT

How to setup international keyboard in X Windowwith Xmodmap and XKB

by Juraj Sipos, [email protected]

How to setup international keyboard in Linux or Unix with Xmodmap and XKB written by (c) Juraj Sipos.The Xmodmap is a file that XFree86 reads in order to give you a keyboard layout. This solution will work foryou in setting up any international keyboard for (Debian, RedHat, Mandrake, CorelLinux) Linux, FreeBSD,OpenBSD, NetBSD and possibly every Unix that uses XFree86. The advantage of this howto is that it is notarchitecture specific and will work on all other systems.

Table of Contents1. Introduction.....................................................................................................................................................1

1.1. Copyright..........................................................................................................................................11.2. Revision history................................................................................................................................11.3. Introduction.......................................................................................................................................1

2. Setting up international keyboard in X Window System with Xmodmap and XKB...............................32.1. Quick start.........................................................................................................................................3

2.1.1. Xmodmap................................................................................................................................32.1.2. XKB.........................................................................................................................................3

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems.....53.1. Xmodmap theory and Xmodmap solution........................................................................................83.2. Experimental .Xmodmap sample file for the Slovak language typewriter layout..........................10

4. Xmodmap theory and Xmodmap solution.................................................................................................164.1. .Xmodmap sample file for the Slovak language typewriter layout................................................16

5. Character sets................................................................................................................................................225.1. ISO−8859−2 (ISO Latin2) character set.........................................................................................22

6. How this Xmodmap solution works on various systems...........................................................................316.1. SuSE 6.4 and 7.0.............................................................................................................................31

6.1.1. SuSE 7.0 with XFree86 version 3.3.6 and KDE 2.0 (this also applies to SuSE 6.4.............316.2. SuSE 7.0 (Xfree86 3.3.6, KDE 1.x), SuSE 8.0...............................................................................316.3. Mandrake Linux 7.2........................................................................................................................31

6.3.1. Mandrake Linux 7.2 − works as it should.............................................................................316.3.2. Mandrake Linux 7.2 with XFree86 version 3.3.6.................................................................32

6.4. Mandrake 8.1..................................................................................................................................326.5. RedHat 5.1, 5.2, 6.0, 6.1 and 6.2 (XFree86 3.3.6 and older)..........................................................326.6. RedHat 7.2, RedHat 8.0, Slackware 8.1.........................................................................................326.7. FreeBSD 3.1 and 3.2.......................................................................................................................326.8. FreeBSD 4.1, 4.2, 4.3, 4.4, 4.5........................................................................................................336.9. FreeBSD 4.6....................................................................................................................................336.10. Corel Linux 1.0 and 1.1................................................................................................................34

7. ISO* specifications........................................................................................................................................35

8. Some national Xmodmap files.....................................................................................................................368.1. German............................................................................................................................................368.2. Hungarian........................................................................................................................................408.3. Czech...............................................................................................................................................448.4. Polish..............................................................................................................................................498.5. French.............................................................................................................................................538.6. Croatian/Slovenian..........................................................................................................................588.7. Lithuanian keyboard (AZERTY layout).........................................................................................628.8. Polish..............................................................................................................................................66

How to setup international keyboard in X Window with Xmodmap and XKB

i

Table of Contents9. Troubleshooting and some Xmodmap tips.................................................................................................72

9.1. Troubleshooting..............................................................................................................................729.2. Tips.................................................................................................................................................72

10. Links.............................................................................................................................................................7310.1. Other information on internationalization....................................................................................7310.2. Links to some non ISO8859−1 fonts............................................................................................73

How to setup international keyboard in X Window with Xmodmap and XKB

ii

1. Introduction

1.1. Copyright

This documentation is free documentation; you can redistribute it and/or modify it under the terms of theGNU General Public License as published by the Free Software Foundation; either version 2 of the License,or (at your option) any later version.

This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE. See the GNU General Public License for more details.

1.2. Revision history

Revision History

Revision 1.6 2002−11−19

Some links added, info on newer Linux versions included, major formatting changes

Revision 1.5 2001−12−03

Links on internationalization added, info on XKB, troubleshooting, info on newer Linux versions, StarOffice6

Revision 1.4 N/A

Correction of script for including X Window fonts to StarOffice 5.2

Revision 1.3 N/A

Minor corrections, spell checking and editation made, few more Xmodmap files added; list of what allISO8859* specifications mean

Revision 1.2 N/A

Completely rebuilt, added the possibility to force the system to read Xmodmap; some national Xmodmapfiles added, more information included on building up the standard Xmodmap files

Revision 1.1 N/A

Added copyright information and slight modifications pertaining to newer systems

Revision 1.0 1999−08−01

initial version

1.3. Introduction

The international keyboard Xmodmap HOWTO. Copyright (C) 1999, 2002 Juraj Sipos ([email protected]).Imagine you use a Linux or a BSD OS and want to write a business letter to a person that has a foreign namewith a slash or diaeresis (two dots above a letter). Czech language uses signs like o and many Europeanlanguages have their special non−English characters.

This is the Xmodmap Howto, but some info on XKB is included, too. Why Xmodmap? Xmodmap is a littlehackers' solution that lets you gain a complete control of a keyboard − you can map the keyboard to almosteverything. You can do this with XKB, too, but it's a little dirtier way, albeit a possible one. A good idea is tokeep your XKB maps clean and unmodified, so that you don't have to reinstall your Unix box. Xmodmapsolution helps you map keyboard to your choice and if something goes wrong, you will be able to use

1. Introduction 1

standard X keyboard. Some people also like their own customized keyboard layouts and this HOWTO willexplain how to achieve this.

With information in this file you can make your own customized (international) keyboard layouts withoutinstalling any additional packages. The following information will help you set up German, Spanish, Italian,Slovak, Czech, Polish, Slovenian, Croatian, Danish, Dutch, French, Finnish, Norwegian, Estonian, Latvian,Swedish and other keyboards. You can also alternatively look at my hompage at http://www.freebsd.nfo.sk tosee visual layouts of various keyboards. In case you want to install Greek, Hebrew or Russian language,follow my information and apply changes pertinent to these languages also with respect to otherdocumentation (e.g., install Greek fonts, etc., see the Cyrilic, Hebrew, or Danish howto).

How to setup international keyboard in X Window with Xmodmap and XKB

1. Introduction 2

2. Setting up international keyboard in X WindowSystem with Xmodmap and XKB

2.1. Quick start

2.1.1. Xmodmap

Make your own .Xmodmap file according to information in this file.

Write the following to your .bash_profile in your home directory:

export LANG=language

where "language" is the language you want to use. The languages can be found in the file locale.alias in/usr/X11R6/lib/X11/locale. NOTE: some programs, like Mozilla, don't care about these user's locale settings.Run "exit" command on the console and log in again for Bash to read the statement from its .bash_profile.

Install fonts (best are ISO8859−2 Type1 fonts for Eastern Europe, Czech or Slovak), put them in your fontpath in the /etc/X11/XF86Config file (on some newer systems this is not necessary). Start X Server (startx). Ifyou use GDM or XDM and your X server is already running, restart X server. Run the command "xmodmap /.Xmodmap" from the X terminal window to force the system to read the .Xmodmap file. The dot does nothave to be there. Name the xmodmap keyboard map whatever way you want. Switch keyboard by pressing akey (it is usually right Alt, Scroll Lock, it depends on how switching is defined in the xmodmap file). That'sall. NOTE: This HOWTO is for the X Window System, use of national keyboards on the console is notexplained here. If you are desperate, try to issue the commands like:

setfont LatArCyrHeb−14 −m 8859−2

followed by

loadkeys sk

("sk" stands for the Slovak language). Most Linuxes have their own utilities to set up console keyboards).

2.1.2. XKB

Provided you have your fonts installed, just open the X terminal window and issue a command: setxkbmapkb, where "kb" is the keyboard layout you want to use, for example:

setxkbmap si

for the Slovenian language

setxkbmap de

for the German language

All the language names you may use are located in /usr/X11R6/lib/X11/xkb/symbols directory.

2. Setting up international keyboard in X Window System with Xmodmap and XKB 3

Alternatively, if you are using KDE 2.0, open the KDE Start button, click on Preferences, Personalization,Country & Language and choose ISO8859−2 charset. Note that this may be slightly different depending onthe Linux or KDE distribution. In newer Linux distributions you don't have to do this anymore; in SlackwareLinux 8.1, RedHat 8.0 or Mandrake 9 with KDE 3.0, for example, just open Preferences, Peripherals,Keyboard − choose your keyboard layout and everything should work fine (if you have the fonts pertinent forthe language of your choice installed, obviously).

You will see a language icon on the KDE panel. Switch the keyboard (NOTE: this is for XKB, my xmodmapdefinition uses Scroll Lock for switching, other xmodmap files use Right Alt) and enjoy.

You may alternatively edit the /etc/X11/Xf86Config file as explained in the Danish Howto, or issue thiscommand in an X terminal window for the Slovak keyboard:

setxkbmap −model pc102 −symbols 'czsk(us_sk_qwertz)' setxkbmap cs −option grp:shift_toggle

In RedHat 7.2 and Mandrake 8.1, it is enough to run the following setxkbmap command from an X TerminalWindow (assuming you have correct fonts installed):

setxkbmap sk

setxkbmap si

setxkbmap de

qwerty or qwertz means that the letter z Z and y Y are swapped.

To see a variety of language maps (symbols), look in the file symbols.dir in /usr/X11R6/lib/X11/xkbdirectory.

Some X Window managers override .Xmodmap setting. If .Xmodmap isn't read by X automatically afterstarting the X Window System, a good way is to force the system to read it from your root (home) directory.You will do this by issuing the following command from an X terminal window:

xmodmap /.Xmodmap

After I installed the Slovak keyboard in KDE with Xmodmap file that used definitions for ISO8859−2keycode entities (lcaron, scaron, etc.), some changes had to be done in the system in relation to a Linux orXFree distribution. The changes mostly pertained to dead keys that did not work.

How to setup international keyboard in X Window with Xmodmap and XKB

2. Setting up international keyboard in X Window System with Xmodmap and XKB 4

3. How to do it: this experimental solution is alegacy issue − do not read it if you use newersystemsBefore the year 2000, I used the following way to customize keyboard in X Window System on some Unices.Put the following in your .bash_profile:

export LANG=language

OR

OR for csh shell

setenv LANG=langauge

and have the Xmodmap file in your home directory. If you ask me where you may obtain such Xmodmapfiles, some are in this HOWTO, or go to GNOME ../share directory. The file/usr/X11R6/lib/X11/locale/locale.alias contains the aliases for langauges, so look there in order to find outwhat is ca_ES or br_FR (the exact syntax for your language to use − you cannot write "croatia" but you mustwrite "croatian", not "Croatian"; this is very important, as Unix is case sensitive).

Now you must install the pertinent language fonts and put path in XF86Config file to these fonts. If you wantto internationalize your keyboard, use the standard Xmodmap definitions first and use right alt to switchbetween keyboards (if you use GNOME Xmodmap files). If it does not work, do the following:

a) Copy the "Compose" file from: /usr/X11R6/lib/X11/locale/iso8859−2 to:/usr/X11R6/lib/X11/locale/iso8859−1 directory (yes, iso8859−1, not iso8859−2). Back up the original"Compose" file if you want

b) Put the included .Xmodmap file to your root directory (Slovak language, or make your own .Xmodmapfile, or choose from the ones listed here).

c) Install ISO8859−2 fonts (or other pertinent fonts).

You may try to issue the command:

xset q

to see which fonts are in your path.

If you want to add fonts in your path from the X Window System, issue the command:

xset fp+ /usr/fonts_path

xset fp rehash

d) Disable every "Scroll Lock" uncommented line in your XF86Config, because our .Xmodmap file for theSlovak language uses the Scroll Lock to switch between keyboards.

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems5

e) Put the appropriate fontpath for your newly installed fonts in the XF86Config file, if necessary (Mandrake7.2 and other OS's may not require this). The Xmodmap solution may be applied to all X keyboards of yourchoice.

First, I must say that in my solution (in older XFree86 versions), different mapping, if used, appears to workfor Xmodmap keycodes for some ISO8859−2 keycode entities. ISO8859−2 definitions (keycode entities) likelcaron, zcaron actually do not work. This means that the ISO8859−1 definitions must be used instead and theywill either give you what they say they are (aacute [o?=, eacute [o?=, etc.), or they will not give you what theysay they are (using ISO8859−2 fonts, putting "threequarters" in your .Xmodmap file will not give you "3/4"but "z" with a caron, a reversed ^ above it). For example, "mu" will give lcaron, "oslash" rcaron, etc.

However, other key definitions, for example, adieresis (a with two dots above it), uacute (u with a slash aboveit), as well as dead_diaeresis do not require a substitution of other definitions and work pretty well, as they'redefined everywhere (a dead key is a key you press, hold it, yet nothing happens, but after pressing another keyyou will get a special letter).

The original "Compose" file in ../iso8859−1 directory can be fully utilized for English, Slovak or Czechkeyboard layouts (Polish, Hungarian, Slovenian, Croatian) in some older XFree86 distributions, but there isonly one problem − dead keys do not work. That's why you have to copy the "Compose" file from theiso8859−2 directory to iso8859−1 directory, or alternatively, you can edit the "Compose" file in iso8859−1directory.

You can leave the Keyboard section in your XF86Config file without much change. Put (if it's not alreadythere) the following in the "Keyboard" section:

Section "Keyboard"

Protocol "Standard"

XkbRules "xfree86"

XkbModel "pc101"

XkbLayout "us"

Force the system to read the xmodmap map by issuing the command: "xmodmap /.Xmodmap". Alternatively,you can have 60 .Xmodmap files like .Xmo1, .Xmo2, .Xmo3, .Xmo4, etc., and you may force the system toread them (xmodmap /.Xmo1). The dot means it is a hidden file and it is not necessary. You may also havexmo1, xmo2, or xmo3 Xmodmap files.

NOTE: If you are using some legacy programs like StarOffice 5.2, they have their own fonts, so Xmodmapsolution will not work on older systems immediately with these applications. StarOffice 6.0 handles wellconversion to win1250 and vice versa, so you can transport documents to a M$ platform. In my Mandrake 8.0,StarOffice 6.0 was internationalized immediately after using my standard Xmodmap solution. All the fontsworked. However, with StarOffice 5.2 this is not the case. In StarOffice 5.2, you must add X fonts toStarOffice's fonts directory. Here is a script that will do it for you. Cut it, name it "so52", make it executable(chmod +x so52), copy it to the StarOffice5.2/share/xp3 directory and execute it there.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−cut_here−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

#!/bin/sh

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems6

# Put path to your StarOffice here

STAR_OFFICE_ROOT=/mnt/StarOffice5.2

FONTS_DIR=/usr/X11R6/lib/X11/fonts/ISO8859−2/Type1

# −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

# Don't edit the script here

# −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

XP3_DIR=$STAR_OFFICE_ROOT/share/xp3

if [ −e $XP3_DIR/psstd.fonts.il2 ]; then

echo "Changes were already done!"

echo "If there's a problem, delete the file"

echo " $XP3_DIR/psstd.fonts.il2"

exit 1

fi

if [ −e $FONTS_DIR/afm ]; then

AFM_DIR=$FONTS_DIR/afm

else

AFM_DIR=$FONTS_DIR

fi

# Link AFM files.

ln −sf $AFM_DIR/*.[aA][fF][mM] $XP3_DIR/fontmetrics/afm

# Link PFB files.

ln −sf $FONTS_DIR/*.[pP][fF][bB] $XP3_DIR/pssoftfonts

grep "\.pf" $FONTS_DIR/fonts.dir \

| sed −e 's/\.pfb /, /g' −e 's/−0−0−0−0−/−%d−%d−%d−%d−/g' \

> $XP3_DIR/psstd.fonts.il2

cat $XP3_DIR/psstd.fonts.il2 >> $XP3_DIR/psstd.fonts

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems7

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−cut_here−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

StarOffice 5.2 fully recognizes Word97 documents even written in other languages, but a converter fromiso8859−2 to win1250 encoding is necessary in order to transport ISO8859−2 documents to M$ platform. Forhtml documents this is not necessary.

StarOffice 5.2 can be thus used by professional translators.

3.1. Xmodmap theory and Xmodmap solution

If you want to edit and make your own .Xmodmap keyboard layout definitions, I'll explain one line of the.Xmodmap file to make clear what you should do.

This example can be used for all keycodes. For example, the line:

keycode 0x11 = 8 asterisk aacute 8

(note: keycode 0x11 is derived from the "xkeycaps" utility; you can also use the X Window "xev" utility toexplore keyboard puzzles.)

says that the first pair, the default one, (number "8" and "asterisk") will display number "8" when you presskeycode 0x11 ("8"), will display asterisk when a "shift" key is pressed. After pressing the Scroll Lock, there'sanother definition: ISO_NEXT_GROUP, which means that when you press the default "8" key, no "8" will bedisplayed, but aacute (á); when you press the "shift" key, number "8" will be displayed. So if you change"aacute" and "8", anything you put instead of "aacute" and "8" will be displayed, for example:

keycode 0x11 = 8 asterisk semicolon colon

will give you "semicolon" and "colon" in your 0x11 keycode after pressing the Scroll Lock.

The ISO_NEXT_GROUP is defined by another line. If this line is not defined, you will be able to use onlytwo definitions ("8" and "asterisk") − look at my .Xmodmap file. If you delete the ISO_NEXT_GROUP (thenext pair of definitions on the right), you will have only one group of keyboard definitions ("8" and"asterisk"). Be careful when editing the .Xmodmap file. You mustn't delete definitions that enable utilizationof the Scroll Lock unless you know what you are doing (or you map the second keyboard by right Alt). Theseare the lines such as:

keycode 0x4e = ISO_Next_Group

add mod5 = ISO_Next_Group,

etc. You must also keep in mind that Unices are case sensitive. If you want to find out more about keycodes,install the package "xkeycaps" or use "xev".

The following symbols on your right is what I found out through my research. This is just an example. Whenyou use a "Pound" definition in the Xmodmap file, the X Window System will display you a Lslash instead(in relation to using iso8859−2 fonts, of course). When you choose some easy KDE text editor, selectiso8859−2 fonts charset from the fonts menu. NOTE: vowel *acute (uacute, eacute, etc.) signs require nosubstitution, therefore I omitted iacute, aacute, etc., here.

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems8

ISO8859−1 entity will give you the: ISO8859−2 entity

in our nonstandard or experimental Xmodmap keycode definition

egrave ccaron

ugrave uring

agrave racute

ecircumflex "c" with something at the bottom of it

ucircumflex Lslash "Pound" in Xmodmap gives you Lslash.

Lcaron Writing "yen" will give us Lcaron

Scaron copyright (will give us Scaron)

Tcaron guillemotleft (will give us Tcaron)

Zcaron registered

lcaron mu

scaron onesuperior

tcaron guillemotright

zcaron threequarters

Cacute AE

Eogonek find out yourself

Edieresis Edieresis

ecaron igrave

onequarter zacute

questiondown z with a ring above it

Dcaron find out yourself

Ooblique Rcaron

thorn t with something at the bottom of it

Sterling Lstroke

yen Lcaron

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems9

copyright Scaron

brokenbar Sacute

macron Z with something above it

paragraph sacute

periodcentered caron

masculine s with something at the bottom of it

onequarter zacute

ecircumflex d with a line above it

ETH Dstroke

Ntilde Nacute

Otilde O with two dots above it

registered Zcaron

Nacute Ograve

nacute ograve

Ocircumflex Ocircumflex

ccaron egrave

nacute ntilde−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

3.2. Experimental .Xmodmap sample file for the Slovaklanguage typewriter layout

You may use this file as an example to build your own xmodmap keyboard layouts._______________________cut_here_________________________

keycode 0x09 = Escape

keycode 0x43 = F1 F11 F1 Multi_key

keycode 0x44 = F2 F12 F2 F12

keycode 0x45 = F3 F13 F3 F13 idiaeresis

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems10

keycode 0x46 = F4 F14 F4 F14 mu yen

keycode 0x47 = F5 F15 F5 F15 guillemotright guillemotleft

keycode 0x48 = F6 F16 F6 F16 ograve

keycode 0x49 = F7 F17 F7 dead_abovedot oacute

keycode 0x4A = F8 F18 F8 dead_breve acute

keycode 0x4B = F9 F19 F9 dead_cedilla ugrave

keycode 0x4C = F10 F20 F10 dead_ogonek

keycode 0x5F = F11 F21 dead_acute dead_caron

keycode 0x60 = F12 F22 dead_abovering dead_diaeresis

keycode 0x6F = Print Execute dead_iota

keycode 0x4E = ISO_Next_Group

keycode 0x6E = Pause

keycode 0x31 = grave asciitilde semicolon dead_diaeresis

keycode 0x0A = 1 exclam plus 1

keycode 0x0B = 2 at mu 2

keycode 0x0C = 3 numbersign onesuperior 3

keycode 0x0D = 4 dollar egrave 4

keycode 0x0E = 5 percent 0x0bb 5

keycode 0x0F = 6 asciicircum threequarters 6

keycode 0x10 = 7 ampersand yacute 7

keycode 0x11 = 8 asterisk aacute 8

keycode 0x12 = 9 parenleft iacute 9

keycode 0x13 = 0 parenright eacute 0

keycode 0x14 = minus underscore equal percent

keycode 0x15 = equal plus dead_acute dead_caron

keycode 0x33 = backslash bar ograve parenright

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems11

keycode 0x16 = BackSpace

keycode 0x6A = Insert

keycode 0x61 = Home

keycode 0x63 = Prior

keycode 0x4D = Num_Lock Pointer_EnableKeys

keycode 0x70 = KP_Divide slash

keycode 0x3F = KP_Multiply asterisk

keycode 0x52 = KP_Subtract minus

keycode 0x17 = Tab ISO_Left_Tab

keycode 0x18 = q Q

keycode 0x19 = w W

keycode 0x1A = e E

keycode 0x1B = r R

keycode 0x1C = t T

keycode 0x1D = y Y z Z

keycode 0x1E = u U

keycode 0x1F = i I

keycode 0x20 = o O

keycode 0x21 = p P

keycode 0x22 = bracketleft braceleft uacute slash

keycode 0x23 = bracketright braceright adiaeresis parenleft

keycode 0x24 = Return

keycode 0x6B = Delete

keycode 0x67 = End

keycode 0x69 = Next

keycode 0x4F = KP_Home 7 KP_Home

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems12

keycode 0x50 = KP_Up 8

keycode 0x51 = KP_Prior 9

keycode 0x56 = KP_Add plus

keycode 0x42 = Caps_Lock

keycode 0x26 = a A

keycode 0x27 = s S

keycode 0x28 = d D

keycode 0x29 = f F

keycode 0x2A = g G

keycode 0x2B = h H

keycode 0x2C = j J

keycode 0x2D = k K

keycode 0x2E = l L

keycode 0x2F = semicolon colon ocircumflex quotedbl

keycode 0x30 = apostrophe quotedbl section exclam

keycode 0x53 = KP_Left 4

keycode 0x54 = KP_Begin 5

keycode 0x55 = KP_Right 6

keycode 0x32 = Shift_L ISO_Next_Group

keycode 0x34 = z Z y Y

keycode 0x35 = x X

keycode 0x36 = c C

keycode 0x37 = v V

keycode 0x38 = b B

keycode 0x39 = n N

keycode 0x3A = m M

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems13

keycode 0x3B = comma less comma question

keycode 0x3C = period greater period colon

keycode 0x3D = slash question minus underscore

keycode 0x3E = Shift_R

keycode 0x62 = Up

keycode 0x57 = KP_End 1

keycode 0x58 = KP_Down 2

keycode 0x59 = KP_Next 3

keycode 0x6C = KP_Enter Return

keycode 0x25 = Control_L ISO_Next_Group

!keycode 0x40 = Alt_L Meta_L

keycode 0x40 = Meta_L Alt_L

keycode 0x41 = space

keycode 0x71 = Alt_R Meta_R

keycode 0x6D = Control_R

keycode 0x64 = Left

keycode 0x68 = Down

keycode 0x66 = Right

keycode 0x5A = KP_Insert 0

keycode 0x5B = KP_Delete period

!keysym Alt_L = Meta_L

!keysym F12 = Multi_key

clear Shift

!clear Lock

clear Control

clear Mod1

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems14

clear Mod2

clear Mod3

clear Mod4

clear Mod5

add Shift = Shift_L Shift_R

add Control = Control_L Control_R

!add Mod1 = Alt_L Alt_R

add Mod1 = Meta_L Alt_R

add Mod2 = Num_Lock

add Mod5 = ISO_Next_Group

!add Mod1 =

!add Mod2 = Alt_R Alt_L Mode_switch

keycode 0x73 = ISO_Next_Group

keycode 0x74 = dead_acute dead_diaeresis

keycode 0x75 = dead_caron dead_abovering

_____________________________cut_here_____________________________

You may find almost any xmodmap file in the GNOME directory in (SuSE) /opt/gnome/share/xmodmap(with standard ISO8859−1,2 and other definitions). To switch between the keyboards, use right Alt.

How to setup international keyboard in X Window with Xmodmap and XKB

3. How to do it: this experimental solution is a legacy issue − do not read it if you use newer systems15

4. Xmodmap theory and Xmodmap solutionIf you want to edit and make your own .Xmodmap keyboard layout definitions, I'll explain one line of the.Xmodmap file to make clear what you should do.

This explanation can be used for all keycodes. For example, the line:

keycode 0x11 = 8 asterisk aacute 8

(note: keycode 0x11 is derived from the "xkeycaps" utility; you can also use the X Window "xev" utility toexplore keyboard puzzles.)

says that the first pair, the default one, (number "8" and "asterisk") will display number "8" when you presskeycode 0x11 ("8"), will display asterisk when a "shift" key is pressed. After pressing the Scroll Lock, there'sanother definition: ISO_NEXT_GROUP, which means that when you press the default "8" key, no "8" will bedisplayed, but aacute (á); when you press the "shift" key, number "8" will be displayed. So if you change"aacute" and "8", anything you put instead of "aacute" and "8" will be displayed, for example:

keycode 0x11 = 8 asterisk semicolon colon

will give you "semicolon" and "colon" in your 0x11 keycode after pressing the Scroll Lock.

The ISO_NEXT_GROUP is defined by another line. If this line is not defined, you will be able to use onlytwo definitions ("8" and "asterisk") − look at my .Xmodmap file. If you delete the ISO_NEXT_GROUP (thenext pair of definitions on the right), you will have only one group of keyboard definitions ("8" and"asterisk"). Be careful when editing the .Xmodmap file. You mustn't delete definitions that enable utilizationof the Scroll Lock unless you know what you are doing (or you map the second keyboard by right Alt). Theseare the lines such as:

keycode 0x4e = ISO_Next_Group

add mod5 = ISO_Next_Group,

etc. You must also keep in mind that Unixes are case sensitive. If you want to find out more about keycodes,install the package "xkeycaps" or use "xev".

4.1. .Xmodmap sample file for the Slovak languagetypewriter layout

The following .Xmodmap sample file consists of two groups of keyboard definitions you my use in additionto your default or XKB keyboard choice. You may use this file as an example to build your own keyboardmaps. This file needs editing for your specific purposes and it's here only as a hint. If you change letters like"y Y" to "t T", you will have "t T", etc. on your keyboard where you normally have "y Y" keys. So you seethat thus you can have almost absolute control of your keyboard − something which in Microsoft Windowsoperating system can only be achieved by special and certainly expensive programs. Use the Scroll Lock toswitch between the first and second group of key definitions._______________________cut_here_________________________

keycode 0x09 = Escape

4. Xmodmap theory and Xmodmap solution 16

keycode 0x43 = F1 F11 F1 Multi_key

keycode 0x44 = F2 F12 F2 F12

keycode 0x45 = F3 F13 F3 F13 idiaeresis

keycode 0x46 = F4 F14 F4 F14 mu yen

keycode 0x47 = F5 F15 F5 F15 guillemotright guillemotleft

keycode 0x48 = F6 F16 F6 F16 ograve

keycode 0x49 = F7 F17 F7 dead_abovedot oacute

keycode 0x4A = F8 F18 F8 dead_breve acute

keycode 0x4B = F9 F19 F9 dead_cedilla ugrave

keycode 0x4C = F10 F20 F10 dead_ogonek

keycode 0x5F = F11 F21 dead_acute dead_caron

keycode 0x60 = F12 F22 dead_abovering dead_diaeresis

keycode 0x6F = Print Execute dead_iota

keycode 0x4E = ISO_Next_Group

keycode 0x6E = Pause

keycode 0x31 = grave asciitilde semicolon dead_diaeresis

keycode 0x0A = 1 exclam plus 1

keycode 0x0B = 2 at lcaron 2

keycode 0x0C = 3 numbersign scaron 3

keycode 0x0D = 4 dollar ccaron 4

keycode 0x0E = 5 percent tcaron 5

keycode 0x0F = 6 asciicircum zcaron 6

keycode 0x10 = 7 ampersand yacute 7

keycode 0x11 = 8 asterisk aacute 8

keycode 0x12 = 9 parenleft iacute 9

keycode 0x13 = 0 parenright eacute 0

How to setup international keyboard in X Window with Xmodmap and XKB

4. Xmodmap theory and Xmodmap solution 17

keycode 0x14 = minus underscore equal percent

keycode 0x15 = equal plus dead_acute dead_caron

keycode 0x33 = backslash bar ncaron parenright

keycode 0x16 = BackSpace

keycode 0x6A = Insert

keycode 0x61 = Home

keycode 0x63 = Prior

keycode 0x4D = Num_Lock Pointer_EnableKeys

keycode 0x70 = KP_Divide slash

keycode 0x3F = KP_Multiply asterisk

keycode 0x52 = KP_Subtract minus

keycode 0x17 = Tab ISO_Left_Tab

keycode 0x18 = q Q

keycode 0x19 = w W

keycode 0x1A = e E

keycode 0x1B = r R

keycode 0x1C = t T

keycode 0x1D = y Y z Z

keycode 0x1E = u U

keycode 0x1F = i I

keycode 0x20 = o O

keycode 0x21 = p P

keycode 0x22 = bracketleft braceleft uacute slash

keycode 0x23 = bracketright braceright adiaeresis parenleft

keycode 0x24 = Return

keycode 0x6B = Delete

How to setup international keyboard in X Window with Xmodmap and XKB

4. Xmodmap theory and Xmodmap solution 18

keycode 0x67 = End

keycode 0x69 = Next

keycode 0x4F = KP_Home 7 KP_Home

keycode 0x50 = KP_Up 8

keycode 0x51 = KP_Prior 9

keycode 0x56 = KP_Add plus

keycode 0x42 = Caps_Lock

keycode 0x26 = a A

keycode 0x27 = s S

keycode 0x28 = d D

keycode 0x29 = f F

keycode 0x2A = g G

keycode 0x2B = h H

keycode 0x2C = j J

keycode 0x2D = k K

keycode 0x2E = l L

keycode 0x2F = semicolon colon ocircumflex quotedbl

keycode 0x30 = apostrophe quotedbl section exclam

keycode 0x53 = KP_Left 4

keycode 0x54 = KP_Begin 5

keycode 0x55 = KP_Right 6

keycode 0x32 = Shift_L ISO_Next_Group

keycode 0x34 = z Z y Y

keycode 0x35 = x X

keycode 0x36 = c C

keycode 0x37 = v V

How to setup international keyboard in X Window with Xmodmap and XKB

4. Xmodmap theory and Xmodmap solution 19

keycode 0x38 = b B

keycode 0x39 = n N

keycode 0x3A = m M

keycode 0x3B = comma less comma question

keycode 0x3C = period greater period colon

keycode 0x3D = slash question minus underscore

keycode 0x3E = Shift_R

keycode 0x62 = Up

keycode 0x57 = KP_End 1

keycode 0x58 = KP_Down 2

keycode 0x59 = KP_Next 3

keycode 0x6C = KP_Enter Return

keycode 0x25 = Control_L ISO_Next_Group

!keycode 0x40 = Alt_L Meta_L

keycode 0x40 = Meta_L Alt_L

keycode 0x41 = space

keycode 0x71 = Alt_R Meta_R

keycode 0x6D = Control_R

keycode 0x64 = Left

keycode 0x68 = Down

keycode 0x66 = Right

keycode 0x5A = KP_Insert 0

keycode 0x5B = KP_Delete period

!keysym Alt_L = Meta_L

!keysym F12 = Multi_key

clear Shift

How to setup international keyboard in X Window with Xmodmap and XKB

4. Xmodmap theory and Xmodmap solution 20

!clear Lock

clear Control

clear Mod1

clear Mod2

clear Mod3

clear Mod4

clear Mod5

add Shift = Shift_L Shift_R

add Control = Control_L Control_R

!add Mod1 = Alt_L Alt_R

add Mod1 = Meta_L Alt_R

add Mod2 = Num_Lock

add Mod5 = ISO_Next_Group

!add Mod1 =

!add Mod2 = Alt_R Alt_L Mode_switch

keycode 0x73 = ISO_Next_Group

keycode 0x74 = dead_acute dead_diaeresis

keycode 0x75 = dead_caron dead_abovering

_____________________________cut_here_____________________________

How to setup international keyboard in X Window with Xmodmap and XKB

4. Xmodmap theory and Xmodmap solution 21

5. Character setsIf you want to build an .Xmodmap and you know how the character looks visually, you may have problemsabout knowing how it is defined by name. A good site that may help you with this may be:http://www.geocities.com/gorazd.hribar/latin−2/eng−iso−8859−2.html Here you can see ISO8859−2characters visually.

I also included here some ISO8859−2 Character definitions for you to know which names are used forpertinent keys. It may not be complete and you should not bother about the keycode numbers, but notice howkeys are named. Much of this information is useful to build a keyboard with ISO8859−1 characters only, or acombination of East European characters and Western characters. If you're going to use other languages thanthe Central European or West−European ones, find a pertinent table for your ISO*** character set on theInternet. The gdkkeysyms.h file that contains all the crazy names for keycode entities including hexcodes is in(older versions of RedHat) /usr/include/gdk/ directory. If no gdkkeysyms.h file is on your sustem, see the file/usr/X11R6/include/X11/keysymdef.h (you must install XFree86 development package to make use of thisdirectory), or try to look in /lib/perl5/site_perl/5.6.0/i386−linux/GTK/keysyms.pm (it also contains names ofkeycode entities including hex codes). If you have a newer version of PERL, the version number "5.6.0" maydiffer. The similar thing should apply to other systems (FreeBSD), too, as they also use PERL.

5.1. ISO−8859−2 (ISO Latin2) character set

Xmodmap entities with their word definitions (which you put in the Xmodmap file) and their visualrepresentation. Some word definitions lack their visual forms.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

space

exclam !

quotedbl "

numbersign #

dollar $

percent

ampersand &

quoteright '

parenleft (

parenright )

asterisk *

plus +

5. Character sets 22

comma ,

hyphen −

period .

slash /

zero 0

one 1

two 2

three 3

four 4

five 5

six 6

seven 7

eight 8

nine 9

colon :

semicolon ;

less < <

equal =

greater > >

question ?

at @

A A

B B

C C

D D

E E

How to setup international keyboard in X Window with Xmodmap and XKB

5. Character sets 23

F F

G G

H H

I I

J J

K K

L L

M M

N N

O O

P P

Q Q

R R

S S

T T

U U

V V

W W

X X

Y Y

Z Z

bracketleft [

backslash \

bracketright ]

asciicircum ^

underscore _

How to setup international keyboard in X Window with Xmodmap and XKB

5. Character sets 24

quoteleft `

a a

b b

c c

d d

e e

f f

g g

h h

i i

j j

k k

l l

m m

n n

o o

p p

q q

r r

s s

t t

u u

v v

w w

x x

y y

How to setup international keyboard in X Window with Xmodmap and XKB

5. Character sets 25

z z

braceleft {

bar |

braceright }

tilde

space

Aogonek

breve

Lslash

currency

Lcaron

Sacute

section

dieresis

Scaron `

Scedilla

Tcaron d

Zacute y

hyphen

Zcaron }

Zdotaccent

degree

aogonek

ogonek

lslash

acute

How to setup international keyboard in X Window with Xmodmap and XKB

5. Character sets 26

lcaron >

sacute [

caron

cedilla

scaron a

scedilla

tcaron e

zacute

hungarumlaut

zcaron ~

zdotaccent

Racute

Aacute

Acircumflex

Abreve

Adieresis

Lacute

Cacute

Ccedilla

Ccaron �

Eacute É

Eogonek

Edieresis

Ecaron �

Iacute Í

Icircumflex

How to setup international keyboard in X Window with Xmodmap and XKB

5. Character sets 27

Dcaron �

Eth

Nacute C

Ncaron G

Oacute Ó

Ocircumflex

Ohungarumlaut

Odieresis

multiply

Rcaron X

Uring n

Uacute Ú

hungarumlaut

Udieresis

Yacute

Tcedilla

germandbls

racute

aacute á

acircumflex

abreve

adieresis

lacute

cacute

ccedilla

ccaron

How to setup international keyboard in X Window with Xmodmap and XKB

5. Character sets 28

eacute

eogonek

edieresis

ecaron

iacute

icircumflex

dcaron

dbar

nacute

ncaron

oacute

ocircumflex

ohungarumlaut

odieresis

divide

rcaron

uring

uacute

uhungarumlaut

udieresis

yacute

tcedilla

dotaccent

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

First, if you are using older systems (see the legacy solution), try to see if definitions will give you (afterinstalling pertinent fonts and building the Xmodmap map with keyboard definitions for X) what they say theyare. If they will not give you what they say they are, see my legacy soluttion.

How to setup international keyboard in X Window with Xmodmap and XKB

5. Character sets 29

How to setup international keyboard in X Window with Xmodmap and XKB

5. Character sets 30

6. How this Xmodmap solution works on varioussystems

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 appliesto SuSE 6.4

No LANG=language statement is necessary in your bash_profile. You may use the Xmodmap file withstandard 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 notworking 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 handleISO8859−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 testedon 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 onyour xmodmap keyboard definition and you are ready to go. It is a good idea to install support for yournational 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 menuin Configuration > KDE > Personalization > keyboard layout and after just putting the LANG=languagestatement 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 Czechwith 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 keyboardand 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 tomodify Xmodmap maps. You switch keyboards from the panel flag icon.

6. How this Xmodmap solution works on various systems 31

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 thecommand: "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 inthe 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 (sameas in RedHat). Surprisingly, you do not have to copy the ../ISO8859−2/Compose file to ../ISO8859−1directory 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 StandardXmodmap solution. No other files require editing. That's great! Alternatively, you can set your keyboard withsetxkbmap command (see section FreeBSD 4.4).

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

The legacy solution must be used here. No LANG=language statement is necessary in your bash_profile. Herethe "experimental" .Xmodmap solution works ("mu" instead of "lcaron", etc.) and you must copy theCompose file from ../IS08859−2 to ISO8859−1 directory in order for dead keys to work. There is only oneXF86Config 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 − youcan 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 xmodmapsolution 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 toswitch 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

How to setup international keyboard in X Window with Xmodmap and XKB

6. How this Xmodmap solution works on various systems 32

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 notmatter. 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 solutionworks and you have to copy the ../ISO8859−2/Compose file to ../ISO8859−1 directory to make the dead keyswork.

6.9. FreeBSD 4.6.

The Standard Xmodmap solution works well. I think this version has some problems with installation − afterinstalling the system, I missed some things I had selected in the installation wizard. A good idea would be toupgrade.

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

How to setup international keyboard in X Window with Xmodmap and XKB

6. How this Xmodmap solution works on various systems 33

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.

How to setup international keyboard in X Window with Xmodmap and XKB

6. How this Xmodmap solution works on various systems 34

7. ISO* specifications−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− ISO8859−0old, 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.

7. ISO* specifications 35

8. Some national Xmodmap filesPlease note: I'am not the author of these files and don't mail me if you find something incorrect in them. Thesefiles were taken from the GNOME distribution and the main focus of this howto is to tell you how to mapvarious keycode entities. Use right Alt to switch the keyboard.

8.1. German

clear Mod1

clear Mod2

keycode 9 = Escape Escape

keycode 10 = 1 exclam

keycode 11 = 2 quotedbl twosuperior

keycode 12 = 3 section threesuperior

keycode 13 = 4 dollar dollar

keycode 14 = 5 percent

keycode 15 = 6 ampersand

keycode 16 = 7 slash braceleft

keycode 17 = 8 parenleft bracketleft

keycode 18 = 9 parenright bracketright

keycode 19 = 0 equal braceright

keycode 20 = ssharp question backslash

keycode 21 = dead_acute dead_grave

keycode 22 = BackSpace Delete

keycode 23 = Tab Tab

keycode 24 = q Q at

keycode 25 = w

keycode 26 = e

keycode 27 = r

8. Some national Xmodmap files 36

keycode 28 = t

keycode 29 = z

keycode 30 = u

keycode 31 = i

keycode 32 = o

keycode 33 = p

keycode 34 = udiaeresis Udiaeresis

keycode 35 = plus asterisk dead_tilde

keycode 36 = Return

keycode 37 = Control_L

keycode 38 = a

keycode 39 = s

keycode 40 = d

keycode 41 = f

keycode 42 = g

keycode 43 = h

keycode 44 = j

keycode 45 = k

keycode 46 = l

keycode 47 = odiaeresis Odiaeresis

keycode 48 = adiaeresis Adiaeresis

keycode 49 = dead_circumflex degree

keycode 50 = Shift_L

keycode 51 = numbersign apostrophe

keycode 52 = y

keycode 53 = x

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 37

keycode 54 = c

keycode 55 = v

keycode 56 = b

keycode 57 = n

keycode 58 = m

keycode 59 = comma semicolon

keycode 60 = period colon Multi_key

keycode 61 = minus underscore

keycode 62 = Shift_R

keycode 63 = KP_Multiply

keycode 64 = Alt_L Meta_L

keycode 65 = space space

keycode 66 = Caps_Lock

keycode 67 = F1 F11

keycode 68 = F2 F12

keycode 69 = F3 F13

keycode 70 = F4 F14

keycode 71 = F5 F15

keycode 72 = F6 F16

keycode 73 = F7 F17

keycode 74 = F8 F18

keycode 75 = F9 F19

keycode 76 = F10 F20

keycode 77 = Num_Lock

keycode 78 = Scroll_Lock

keycode 79 = KP_7

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 38

keycode 80 = KP_8

keycode 81 = KP_9

keycode 82 = KP_Subtract

keycode 83 = KP_4

keycode 84 = KP_5

keycode 85 = KP_6

keycode 86 = KP_Add

keycode 87 = KP_1

keycode 88 = KP_2

keycode 89 = KP_3

keycode 90 = KP_0

keycode 91 = KP_Decimal

keycode 94 = less greater bar

keycode 95 = F11 F11

keycode 96 = F12 F12

keycode 108 = KP_Enter

keycode 109 = Control_R

keycode 112 = KP_Divide

keycode 113 = Mode_switch

keycode 114 = Break

keycode 110 = Find

keycode 98 = Up

keycode 99 = Prior

keycode 100 = Left

keycode 102 = Right

keycode 115 = Select

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 39

keycode 104 = Down

keycode 105 = Next

keycode 106 = Insert

! right windows−logo key

! in "windows" keyboards the postion of the key is annoying, is where AltGr

! usually resides, so go define it as AltGr

keycode 116 = Mode_switch

! right windows−menu key

keycode 117 = Multi_key

add Mod1 = Alt_L

add Mod2 = Mode_switch

8.2. Hungarian

clear Mod1

clear Mod2

!charset "iso−8859−2"

keycode 9 = Escape

keycode 10 = 1 apostrophe asciitilde

keycode 11 = 2 quotedbl dead_caron

keycode 12 = 3 plus dead_circumflex

keycode 13 = 4 exclam dead_breve

keycode 14 = 5 percent degree

keycode 15 = 6 slash dead_ogonek

keycode 16 = 7 equal dead_grave

keycode 17 = 8 parenleft dead_abovedot

keycode 18 = 9 parenright dead_acute

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 40

keycode 19 = odiaeresis Odiaeresis dead_doubleacute

keycode 20 = udiaeresis Udiaeresis dead_diaeresis

keycode 21 = oacute Oacute dead_cedilla

keycode 22 = BackSpace Delete

keycode 23 = Tab Tab

keycode 24 = q Q backslash

keycode 25 = w W bar

keycode 26 = e E currency

keycode 27 = r

keycode 28 = t

keycode 29 = z

keycode 30 = u

keycode 31 = i I iacute Iacute

keycode 32 = o

keycode 33 = p

keycode 34 = odoubleacute Odoubleacute division

keycode 35 = uacute Uacute

keycode 36 = Return

keycode 37 = Control_L

keycode 38 = a

keycode 39 = s S dstroke

keycode 40 = d D Dstroke

keycode 41 = f F bracketleft

keycode 42 = g G bracketright

keycode 43 = h

keycode 44 = j J Iacute iacute

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 41

keycode 45 = k K lstroke Lstroke

keycode 46 = l L Lstroke lstroke

keycode 47 = eacute Eacute dollar

keycode 48 = aacute Aacute ssharp

keycode 49 = 0 section

keycode 50 = Shift_L

keycode 51 = udoubleacute Udoubleacute currency

keycode 52 = y Y greater

keycode 53 = x X numbersign

keycode 54 = c C ampersand

keycode 55 = v V at

keycode 56 = b B braceleft

keycode 57 = n N braceright

keycode 58 = m

keycode 59 = comma question semicolon

keycode 60 = period colon Multi_key

keycode 61 = minus underscore asterisk

keycode 62 = Shift_R

keycode 63 = KP_Multiply

keycode 64 = Alt_L Meta_L

keycode 65 = space space

keycode 66 = Caps_Lock

keycode 67 = F1 F11

keycode 68 = F2 F12

keycode 69 = F3 F13

keycode 70 = F4 F14

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 42

keycode 71 = F5 F15

keycode 72 = F6 F16

keycode 73 = F7 F17

keycode 74 = F8 F18

keycode 75 = F9 F19

keycode 76 = F10 F20

keycode 77 = Num_Lock

keycode 78 = Scroll_Lock

keycode 79 = KP_7

keycode 80 = KP_8

keycode 81 = KP_9

keycode 82 = KP_Subtract

keycode 83 = KP_4

keycode 84 = KP_5

keycode 85 = KP_6

keycode 86 = KP_Add

keycode 87 = KP_1

keycode 88 = KP_2

keycode 89 = KP_3

keycode 90 = KP_0

keycode 91 = KP_Decimal

keycode 94 = iacute Iacute less

keycode 95 = F11 F11

keycode 96 = F12 F12

keycode 108 = KP_Enter

keycode 109 = Control_R

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 43

keycode 112 = KP_Divide

keycode 113 = Mode_switch

keycode 114 = Break

keycode 110 = Find

keycode 98 = Up

keycode 99 = Prior

keycode 100 = Left

keycode 102 = Right

keycode 115 = Select

keycode 104 = Down

keycode 105 = Next

keycode 106 = Insert

keycode 107 = Delete

! as dead_ogonek, dead_caron, dead_breve and dead_doubleacute doesn't exist

! (yet), I put also compose lines for use with respectively dead_cedilla,

! dead_circumflex, dead_tilde and dead_tilde

add Mod1 = Alt_L

add Mod2 = Mode_switch

8.3. Czech

! Converted keytable file to xmodmap file

clear Mod1

clear Mod2

keycode 9 = Escape Escape

keycode 10 = plus 1 asciitilde

keycode 11 = ecaron 2 dead_caron

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 44

keycode 12 = scaron 3 asciicircum

keycode 13 = ccaron 4 dead_breve

keycode 14 = rcaron 5 degree

keycode 15 = zcaron 6 dead_ogonek

keycode 16 = yacute 7 dead_grave

keycode 17 = aacute 8 dead_abovedot

keycode 18 = iacute 9 dead_acute

keycode 19 = eacute 0 dead_doubleacute

keycode 20 = equal percent dead_diaeresis

keycode 21 = dead_acute dead_caron dead_cedilla

keycode 22 = BackSpace Delete

keycode 23 = Tab Tab

keycode 24 = q Q backslash

keycode 25 = w W bar

keycode 26 = e E currency

keycode 27 = r

keycode 28 = t

keycode 29 = z

keycode 30 = u

keycode 31 = i

keycode 32 = o

keycode 33 = p

keycode 34 = uacute slash division

keycode 35 = parenright parenleft

keycode 36 = Return

keycode 37 = Control_L

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 45

keycode 38 = a

keycode 39 = s S dstroke Dstroke

keycode 40 = d D Dstroke dstroke

keycode 41 = f F bracketleft

keycode 42 = g G bracketright

keycode 43 = h

keycode 44 = j

keycode 45 = k K lstroke Lstroke

keycode 46 = l L Lstroke lstroke

keycode 47 = uring quotedbl dollar

keycode 48 = section exclam ssharp

keycode 49 = semicolon degree

keycode 50 = Shift_L

keycode 51 = dead_diaeresis dead_acute currency

keycode 52 = y Y greater

keycode 53 = x X numbersign

keycode 54 = c

keycode 55 = v V at

keycode 56 = b B braceleft

keycode 57 = n N braceright

keycode 58 = m

keycode 59 = comma question

keycode 60 = period colon Multi_key

keycode 61 = minus underscore

keycode 62 = Shift_R

keycode 63 = KP_Multiply

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 46

keycode 64 = Alt_L Meta_L

keycode 65 = space space

keycode 66 = Caps_Lock

keycode 67 = F1 F11

keycode 68 = F2 F12

keycode 69 = F3 F13

keycode 70 = F4 F14

keycode 71 = F5 F15

keycode 72 = F6 F16

keycode 73 = F7 F17

keycode 74 = F8 F18

keycode 75 = F9 F19

keycode 76 = F10 F20

keycode 77 = Num_Lock

keycode 78 = Scroll_Lock

keycode 79 = KP_7

keycode 80 = KP_8

keycode 81 = KP_9

keycode 82 = KP_Subtract

keycode 83 = KP_4

keycode 84 = KP_5

keycode 85 = KP_6

keycode 86 = KP_Add

keycode 87 = KP_1

keycode 88 = KP_2

keycode 89 = KP_3

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 47

keycode 90 = KP_0

keycode 94 = ampersand asterisk less

keycode 95 = F11 F11

keycode 96 = F12 F12

keycode 108 = KP_Enter

keycode 109 = Control_R

keycode 112 = KP_Divide

keycode 113 = Mode_switch

keycode 114 = Break

keycode 110 = Find

keycode 98 = Up

keycode 99 = Prior

keycode 100 = Left

keycode 102 = Right

keycode 115 = Select

keycode 104 = Down

keycode 105 = Next

keycode 106 = Insert

! right windows−logo key

! in "windows" keyboards the postion of the key is annoying, is where AltGr

! usually resides, so go definie it as AltGr

keycode 116 = Mode_switch

! right windows−menu key

keycode 117 = Multi_key

add Mod1 = Alt_L

add Mod2 = Mode_switch

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 48

8.4. Polish

! The "AltGr" (right Alt) key generates Mode_switch

keycode 0x09 = Escape

keycode 0x43 = F1

keycode 0x44 = F2

keycode 0x45 = F3

keycode 0x46 = F4

keycode 0x47 = F5

keycode 0x48 = F6

keycode 0x49 = F7

keycode 0x4A = F8

keycode 0x4B = F9

keycode 0x4C = F10

keycode 0x5F = F11

keycode 0x60 = F12

keycode 0x6F = Print

keycode 0x4E = Multi_key

keycode 0x6E = Pause

keycode 0x31 = grave asciitilde

keycode 0x0A = 1 exclam

keycode 0x0B = 2 at

keycode 0x0C = 3 numbersign

keycode 0x0D = 4 dollar

keycode 0x0E = 5 percent

keycode 0x0F = 6 asciicircum

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 49

keycode 0x10 = 7 ampersand section

keycode 0x11 = 8 asterisk

keycode 0x12 = 9 parenleft

keycode 0x13 = 0 parenright

keycode 0x14 = minus underscore

keycode 0x15 = equal plus

keycode 0x33 = backslash bar

keycode 0x16 = BackSpace

keycode 0x6A = Insert

keycode 0x61 = Home

keycode 0x63 = Prior

keycode 0x4D = Num_Lock

keycode 0x70 = KP_Divide

keycode 0x3F = KP_Multiply

keycode 0x52 = KP_Subtract

keycode 0x17 = Tab

keycode 0x18 = Q

keycode 0x19 = W

keycode 0x1A = e E eogonek Eogonek

keycode 0x1B = R

keycode 0x1C = T

keycode 0x1D = Y

keycode 0x1E = U

keycode 0x1F = I

keycode 0x20 = o O oacute Oacute

keycode 0x21 = P

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 50

keycode 0x22 = bracketleft braceleft

keycode 0x23 = bracketright braceright

keycode 0x24 = Return

keycode 0x6B = Delete

keycode 0x67 = End

keycode 0x69 = Next

keycode 0x4F = KP_7

keycode 0x50 = KP_8

keycode 0x51 = KP_9

keycode 0x56 = KP_Add

keycode 0x42 = Caps_Lock

keycode 0x26 = a A aogonek Aogonek

keycode 0x27 = s S sacute Sacute

keycode 0x28 = D

keycode 0x29 = F

keycode 0x2A = G

keycode 0x2B = H

keycode 0x2C = J

keycode 0x2D = K

keycode 0x2E = l L lstroke Lstroke

keycode 0x2F = semicolon colon

keycode 0x30 = apostrophe quotedbl

keycode 0x53 = KP_4

keycode 0x54 = KP_5

keycode 0x55 = KP_6

keycode 0x32 = Shift_L

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 51

keycode 0x34 = z Z zabovedot Zabovedot

keycode 0x35 = x X zacute Zacute

keycode 0x36 = c C cacute Cacute

keycode 0x37 = V

keycode 0x38 = B

keycode 0x39 = n N nacute Nacute

keycode 0x3A = M

keycode 0x3B = comma less

keycode 0x3C = period greater Multi_key

keycode 0x3D = slash question

keycode 0x3E = Shift_R

keycode 0x62 = Up

keycode 0x57 = KP_1

keycode 0x58 = KP_2

keycode 0x59 = KP_3

keycode 0x6C = KP_Enter

keycode 0x25 = Control_L

keycode 0x40 = Alt_L Meta_L

keycode 0x41 = space

keycode 0x71 = Mode_switch

keycode 0x6D = Control_R

keycode 0x64 = Left

keycode 0x68 = Down

keycode 0x66 = Right

keycode 0x5A = KP_0

keycode 0x5B = KP_Decimal

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 52

! right windows−logo key

! in "windows" keyboards the postion of the key is annoying, is where AltGr

! usually resides, so go definie it as AltGr

keycode 116 = Mode_switch

! right windows−menu key

keycode 117 = Multi_key

clear Shift

clear Lock

clear Control

clear Mod1

clear Mod2

clear Mod3

clear Mod4

clear Mod5

add Shift = Shift_L Shift_R

add Lock = Caps_Lock

add Control = Control_L Control_R

add Mod1 = Alt_L

!Mode_switch

add Mod2 = Mode_switch

8.5. French

clear Mod1

clear Mod2

keycode 9 = Escape Escape

keycode 10 = ampersand 1

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 53

keycode 11 = eacute 2 dead_tilde

keycode 12 = quotedbl 3 numbersign

keycode 13 = apostrophe 4 braceleft

keycode 14 = parenleft 5 bracketleft

keycode 15 = minus 6 bar

keycode 16 = egrave 7 dead_grave

keycode 17 = underscore 8 backslash

keycode 18 = ccedilla 9 asciicircum

keycode 19 = agrave 0 at

keycode 20 = parenright degree bracketright

keycode 21 = equal plus braceright

keycode 22 = BackSpace

keycode 23 = Tab Tab

keycode 24 = a

keycode 25 = z

keycode 26 = e E currency

keycode 27 = r

keycode 28 = t

keycode 29 = y

keycode 30 = u

keycode 31 = i

keycode 32 = o

keycode 33 = p

keycode 34 = dead_circumflex dead_diaeresis

keycode 35 = dollar sterling currency

keycode 36 = Return

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 54

keycode 37 = Control_L

keycode 38 = q

keycode 39 = s

keycode 40 = d

keycode 41 = f

keycode 42 = g

keycode 43 = h

keycode 44 = j

keycode 45 = k

keycode 46 = l

keycode 47 = m M

keycode 48 = ugrave percent

keycode 49 = twosuperior

keycode 50 = Shift_L

keycode 51 = asterisk mu

keycode 52 = w

keycode 53 = x

keycode 54 = c

keycode 55 = v

keycode 56 = b

keycode 57 = n

keycode 58 = comma question dead_cedilla

keycode 59 = semicolon period

keycode 60 = colon slash Multi_key

keycode 61 = exclam section

keycode 62 = Shift_R

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 55

keycode 63 = KP_Multiply

keycode 64 = Alt_L Meta_L

keycode 65 = space space

keycode 66 = Caps_Lock

keycode 67 = F1 F11

keycode 68 = F2 F12

keycode 69 = F3 F13

keycode 70 = F4 F14

keycode 71 = F5 F15

keycode 72 = F6 F16

keycode 73 = F7 F17

keycode 74 = F8 F18

keycode 75 = F9 F19

keycode 76 = F10 F20

keycode 77 = Num_Lock

keycode 78 = Scroll_Lock

keycode 79 = KP_7

keycode 80 = KP_8

keycode 81 = KP_9

keycode 82 = KP_Subtract

keycode 83 = KP_4

keycode 84 = KP_5

keycode 85 = KP_6

keycode 86 = KP_Add

keycode 87 = KP_1

keycode 88 = KP_2

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 56

keycode 89 = KP_3

keycode 90 = KP_0

keycode 92 = Sys_Req

keycode 94 = less greater bar

keycode 95 = F11 F11

keycode 96 = F12 F12

keycode 107 = Delete

keycode 108 = KP_Enter

keycode 109 = Control_R

keycode 112 = KP_Divide

keycode 113 = Mode_switch

keycode 114 = Break

keycode 110 = Find

keycode 98 = Up

keycode 99 = Prior

keycode 100 = Left

keycode 102 = Right

keycode 104 = Down

keycode 105 = Next

keycode 106 = Insert

! right windows−logo key

! in "windows" keyboards the postion of the key is annoying, is where AltGr

! usually resides, so go definie it as AltGr

keycode 116 = Mode_switch

! right windows−menu key

keycode 117 = Multi_key

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 57

add Mod1 = Alt_L

add Mod2 = Mode_switch

8.6. Croatian/Slovenian

clear Mod1

clear Mod2

keycode 9 = Escape

keycode 10 = 1 exclam asciitilde

keycode 11 = 2 quotedbl caron

keycode 12 = 3 numbersign asciicircum

keycode 13 = 4 dollar breve

keycode 14 = 5 percent degree

keycode 15 = 6 ampersand ogonek

keycode 16 = 7 slash grave

keycode 17 = 8 parenleft abovedot

keycode 18 = 9 parenright acute

keycode 19 = 0 equal doubleacute

keycode 20 = apostrophe question diaeresis

keycode 21 = plus asterisk cedilla

keycode 22 = Delete Delete

keycode 23 = Tab Tab

keycode 24 = q Q backslash

keycode 25 = w W bar

keycode 26 = e

keycode 27 = r

keycode 28 = t

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 58

keycode 29 = z

keycode 30 = u

keycode 31 = i

keycode 32 = o

keycode 33 = p

keycode 34 = scaron Scaron division

keycode 35 = dstroke Dstroke multiply

keycode 36 = Return

keycode 37 = Control_L

keycode 38 = a

keycode 39 = s

keycode 40 = d

keycode 41 = f F bracketleft

keycode 42 = g G bracketright

keycode 43 = h

keycode 44 = j

keycode 45 = k K lstroke

keycode 46 = l L Lstroke

keycode 47 = ccaron Ccaron

keycode 48 = cacute Cacute ssharp

keycode 49 = cedilla diaeresis

keycode 50 = Shift_L

keycode 51 = zcaron Zcaron currency

keycode 52 = y

keycode 53 = x

keycode 54 = c

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 59

keycode 55 = v V at

keycode 56 = b B braceleft

keycode 57 = n N braceright

keycode 58 = m M section

keycode 59 = comma semicolon

keycode 60 = period colon

keycode 61 = minus underscore

keycode 62 = Shift_R

keycode 63 = KP_Multiply

keycode 64 = Alt_L Meta_L

keycode 65 = space space

keycode 66 = Caps_Lock

keycode 67 = F1 F11

keycode 68 = F2 F12

keycode 69 = F3 F13

keycode 70 = F4 F14

keycode 71 = F5 F15

keycode 72 = F6 F16

keycode 73 = F7 F17

keycode 74 = F8 F18

keycode 75 = F9 F19

keycode 76 = F10 F20

keycode 77 = Num_Lock

keycode 78 = Scroll_Lock

keycode 79 = KP_7

keycode 80 = KP_8

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 60

keycode 81 = KP_9

keycode 82 = KP_Subtract

keycode 83 = KP_4

keycode 84 = KP_5

keycode 85 = KP_6

keycode 86 = KP_Add

keycode 87 = KP_1

keycode 88 = KP_2

keycode 89 = KP_3

keycode 90 = KP_0

keycode 91 = KP_Decimal

keycode 92 = X386Sys_Req

keycode 94 = less greater

keycode 95 = F11 F1

keycode 96 = F12 F12

keycode 108 = KP_Enter

keycode 109 = Control_R

keycode 112 = KP_Divide

keycode 113 = Mode_switch

keycode 114 = Break

keycode 110 = Find

keycode 98 = Up

keycode 99 = Prior

keycode 100 = Left

keycode 102 = Right

keycode 104 = Down

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 61

keycode 105 = Next

keycode 106 = Insert

add Mod1 = Alt_L

add Mod2 = Mode_switch

8.7. Lithuanian keyboard (AZERTY layout)

clear Mod1

clear Mod2

keycode 9 = Escape Escape

keycode 10 = exclam 1

keycode 11 = quotedbl 2 at

keycode 12 = slash 3 numbersign

keycode 13 = semicolon 4 dollar

keycode 14 = colon 5 percent

keycode 15 = comma 6 asciicircum

keycode 16 = period 7 ampersand

keycode 17 = question 8 asterisk

keycode 18 = parenleft 9

keycode 19 = parenright 0

keycode 20 = underscore minus minus underscore

keycode 21 = plus equal equal plus

keycode 22 = BackSpace

keycode 23 = Tab Tab

keycode 24 = aogonek Aogonek q Q

keycode 25 = zcaron Zcaron w W

keycode 26 = e E currency

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 62

keycode 27 = r

keycode 28 = t

keycode 29 = y

keycode 30 = u

keycode 31 = i

keycode 32 = o

keycode 33 = p

keycode 34 = iogonek Iogonek bracketleft braceleft

keycode 35 = leftdoublequotemark doublelowquotemark bracketright braceright

keycode 36 = Return

keycode 37 = Control_L

keycode 38 = a

keycode 39 = s

keycode 40 = d

keycode 41 = f

keycode 42 = g

keycode 43 = h

keycode 44 = j

keycode 45 = k

keycode 46 = l

keycode 47 = uogonek Uogonek semicolon colon

keycode 48 = eabovedot Eabovedot apostrophe quotedbl

keycode 49 = grave asciitilde

keycode 50 = Shift_L

keycode 51 = backslash bar

keycode 52 = z

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 63

keycode 53 = umacron Umacron x X

keycode 54 = c

keycode 55 = v

keycode 56 = b

keycode 57 = n

keycode 58 = m

keycode 59 = ccaron Ccaron comma less

keycode 60 = scaron Scaron period greater

keycode 61 = eogonek Eogonek slash question

keycode 62 = Shift_R

keycode 63 = KP_Multiply

keycode 64 = Alt_L Meta_L

keycode 65 = space space

keycode 66 = Caps_Lock

keycode 67 = F1 F11

keycode 68 = F2 F12

keycode 69 = F3 F13

keycode 70 = F4 F14

keycode 71 = F5 F15

keycode 72 = F6 F16

keycode 73 = F7 F17

keycode 74 = F8 F18

keycode 75 = F9 F19

keycode 76 = F10 F20

keycode 77 = Num_Lock

keycode 78 = Scroll_Lock

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 64

keycode 79 = KP_7

keycode 80 = KP_8

keycode 81 = KP_9

keycode 82 = KP_Subtract

keycode 83 = KP_4

keycode 84 = KP_5

keycode 85 = KP_6

keycode 86 = KP_Add

keycode 87 = KP_1

keycode 88 = KP_2

keycode 89 = KP_3

keycode 90 = KP_0

keycode 94 = less greater bar

keycode 95 = F11 F11

keycode 96 = F12 F12

keycode 108 = KP_Enter

keycode 109 = Control_R

keycode 112 = KP_Divide

keycode 113 = Mode_switch

keycode 114 = Break

keycode 110 = Find

keycode 98 = Up

keycode 99 = Prior

keycode 100 = Left

keycode 102 = Right

keycode 115 = Select

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 65

keycode 104 = Down

keycode 105 = Next

keycode 106 = Insert

! right windows−logo key

! in "windows" keyboards the postion of the key is annoying, is where AltGr

! usually resides, so go definie it as AltGr

keycode 116 = Mode_switch

! right windows−menu key, redefined as Compose key

keycode 117 = Multi_key

add Mod1 = Alt_L

add Mod2 = Mode_switch

8.8. Polish

! The "& 7" key generates 7, ampersand, and section

! The "E" key generates e, E, eogonek, and Eogonek

! The "O" key generates o, O, oacute, and Oacute

! The "A" key generates a, A, aogonek, and Aogonek

! The "S" key generates s, S, sacute, and Sacute

! The "L" key generates l, L, lstroke, and Lstroke

! The "Z" key generates z, Z, zabovedot, and Zabovedot

! The "X" key generates x, X, zacute, and Zacute

! The "C" key generates c, C, cacute, and Cacute

! The "N" key generates n, N, nacute, and Nacute

! The "AltGr" key generates Mode_switch

keycode 0x09 = Escape

keycode 0x43 = F1

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 66

keycode 0x44 = F2

keycode 0x45 = F3

keycode 0x46 = F4

keycode 0x47 = F5

keycode 0x48 = F6

keycode 0x49 = F7

keycode 0x4A = F8

keycode 0x4B = F9

keycode 0x4C = F10

keycode 0x5F = F11

keycode 0x60 = F12

keycode 0x6F = Print

keycode 0x4E = Multi_key

keycode 0x6E = Pause

keycode 0x31 = grave asciitilde

keycode 0x0A = 1 exclam

keycode 0x0B = 2 at

keycode 0x0C = 3 numbersign

keycode 0x0D = 4 dollar

keycode 0x0E = 5 percent

keycode 0x0F = 6 asciicircum

keycode 0x10 = 7 ampersand section

keycode 0x11 = 8 asterisk

keycode 0x12 = 9 parenleft

keycode 0x13 = 0 parenright

keycode 0x14 = minus underscore

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 67

keycode 0x15 = equal plus

keycode 0x33 = backslash bar

keycode 0x16 = BackSpace

keycode 0x6A = Insert

keycode 0x61 = Home

keycode 0x63 = Prior

keycode 0x4D = Num_Lock

keycode 0x70 = KP_Divide

keycode 0x3F = KP_Multiply

keycode 0x52 = KP_Subtract

keycode 0x17 = Tab

keycode 0x18 = Q

keycode 0x19 = W

keycode 0x1A = e E eogonek Eogonek

keycode 0x1B = R

keycode 0x1C = T

keycode 0x1D = Y

keycode 0x1E = U

keycode 0x1F = I

keycode 0x20 = o O oacute Oacute

keycode 0x21 = P

keycode 0x22 = bracketleft braceleft

keycode 0x23 = bracketright braceright

keycode 0x24 = Return

keycode 0x6B = Delete

keycode 0x67 = End

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 68

keycode 0x69 = Next

keycode 0x4F = KP_7

keycode 0x50 = KP_8

keycode 0x51 = KP_9

keycode 0x56 = KP_Add

keycode 0x42 = Caps_Lock

keycode 0x26 = a A aogonek Aogonek

keycode 0x27 = s S sacute Sacute

keycode 0x28 = D

keycode 0x29 = F

keycode 0x2A = G

keycode 0x2B = H

keycode 0x2C = J

keycode 0x2D = K

keycode 0x2E = l L lstroke Lstroke

keycode 0x2F = semicolon colon

keycode 0x30 = apostrophe quotedbl

keycode 0x53 = KP_4

keycode 0x54 = KP_5

keycode 0x55 = KP_6

keycode 0x32 = Shift_L

keycode 0x34 = z Z zabovedot Zabovedot

keycode 0x35 = x X zacute Zacute

keycode 0x36 = c C cacute Cacute

keycode 0x37 = V

keycode 0x38 = B

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 69

keycode 0x39 = n N nacute Nacute

keycode 0x3A = M

keycode 0x3B = comma less

keycode 0x3C = period greater Multi_key

keycode 0x3D = slash question

keycode 0x3E = Shift_R

keycode 0x62 = Up

keycode 0x57 = KP_1

keycode 0x58 = KP_2

keycode 0x59 = KP_3

keycode 0x6C = KP_Enter

keycode 0x25 = Control_L

keycode 0x40 = Alt_L Meta_L

keycode 0x41 = space

keycode 0x71 = Mode_switch

keycode 0x6D = Control_R

keycode 0x64 = Left

keycode 0x68 = Down

keycode 0x66 = Right

keycode 0x5A = KP_0

keycode 0x5B = KP_Decimal

! right windows−logo key

! in "windows" keyboards the postion of the key is annoying, is where AltGr

! usually resides, so go definie it as AltGr

keycode 116 = Mode_switch

! right windows−menu key keycode 117 = Multi_key

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 70

clear Shift

clear Lock

clear Control

clear Mod1

clear Mod2

clear Mod3

clear Mod4

clear Mod5

add Shift = Shift_L Shift_R

add Lock = Caps_Lock

add Control = Control_L Control_R

add Mod1 = Alt_L

!Mode_switch add Mod2 = Mode_switch

How to setup international keyboard in X Window with Xmodmap and XKB

8. Some national Xmodmap files 71

9. Troubleshooting and some Xmodmap tips

9.1. Troubleshooting

Get the newest Linux distribution. Mandrake 8.1 or RedHat 7.2 or 8.0 work fantastically with regard tointernationalization (which could not be said about previous distributions). If locales are not installed, youmust install them. The GNU C Library comes with a locale database, which you should have on your system.Upgrade your glibc. Troubleshooting of older versions of XFree or KDE is insignificant in my opinion, as thesystems get better and better and people install newer versions. You may find almost any xmodmap file in theGNOME directory in (SuSE) /opt/gnome/share/xmodmap (with standard ISO8859−1,2 and other definitions).To switch between the keyboards, use right Alt. Slackware has a very good databse of xmodmap maps in/usr/share/xmodmap. Use the command: locale −a to see all the locales.

9.2. Tips

If you want to list the current keymap table, issue the command: xmodmap −pk | more

The xkeycaps program is a sort of graphical front−end for xmodmap. Start it and see which numbers meanwhich keycode.

To make the mouse buttons left−handed, use a command: xmodmap −e "pointer = 3 2 1"

To remove the CapsLock and change it to a control key, write this in your Xmodmap file:

remove Lock = Caps_Lock keysym Caps_Lock = Control_L add Control = Control_L

9. Troubleshooting and some Xmodmap tips 72

10. Links

10.1. Other information on internationalization

http://www.geocities.com/gorazd.hribar/latin−2/eng−iso−8859−2.html Here you can see ISO8859−2characters visually http://users.raketnet.nl/koos_pol/en/xmodmap−nl.html Dutch keymaphttp://www.linuxfaq.com/HOWTO/Unicode−HOWTO.html Unicode HOWTOhttp://www.linuxfaq.com/HOWTO/Cyrillic−HOWTO.html Cyrillic HOWTOhttp://www.linuxfaq.com/HOWTO/Esperanto−HOWTO.html Esperanto HOWTOhttp://www.linuxfaq.com/HOWTO/Belgian−HOWTO.html Belgian HOWTOhttp://www.linuxfaq.com/HOWTO/Chinese−HOWTO.html Chinese HOWTOhttp://www.linuxfaq.com/HOWTO/Danish−HOWTO.html Danish HOWTOhttp://www.linuxfaq.com/HOWTO/Finnish−HOWTO.html Finnish HOWTOhttp://www.linuxfaq.com/HOWTO/French−HOWTO.html French HOWTOhttp://www.linuxfaq.com/HOWTO/German−HOWTO.html German HOWTOhttp://www.linuxfaq.com/HOWTO/Hebrew−HOWTO.html Hebrew HOWTOhttp://www.linuxfaq.com/HOWTO/Hellenic−HOWTO.html Hellenic HOWTOhttp://www.linuxfaq.com/HOWTO/Italian−HOWTO.html Italian HOWTOhttp://www.linuxfaq.com/HOWTO/Polish−HOWTO.html Polish HOWTOhttp://www.linuxfaq.com/HOWTO/Portuguese−HOWTO.html Portugese HOWTOhttp://www.linuxfaq.com/HOWTO/Serbian−HOWTO.html Serbian HOWTOhttp://www.linuxfaq.com/HOWTO/Slovenian−HOWTO.html Slovenian HOWTOhttp://www.linuxfaq.com/HOWTO/Spanish−HOWTO.html Spanish HOWTOhttp://www.linuxfaq.com/HOWTO/Thai−HOWTO.html Thai HOWTOhttp://www.linuxfaq.com/HOWTO/Turkish−HOWTO.html Turskish HOWTO

10.2. Links to some non ISO8859−1 fonts

ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS/XFree86−ISO8859−15−100dpi−fonts−4.1.0−3.i386.rpmftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS/XFree86−ISO8859−15−75dpi−fonts−4.1.0−3.i386.rpmftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS/XFree86−ISO8859−2−100dpi−fonts−4.1.0−3.i386.rpmftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS/XFree86−ISO8859−2−75dpi−fonts−4.1.0−3.i386.rpm

Note: This RedHat ftp directory contains more fonts, just look into the RPMdirectory above.

10. Links 73