diff --git a/LDP/howto/docbook/HOWTO-INDEX/appsSect.sgml b/LDP/howto/docbook/HOWTO-INDEX/appsSect.sgml index 6b0a7541..1c08b2b7 100644 --- a/LDP/howto/docbook/HOWTO-INDEX/appsSect.sgml +++ b/LDP/howto/docbook/HOWTO-INDEX/appsSect.sgml @@ -1184,7 +1184,7 @@ Intkeyb, How to setup international keyboard in X Windows -Updated: December 2001. +Updated: November 2002. This xmodmap and kimap solutions will work for you in setting up any international keyboard for (Debian, RedHat, Mandrake, Corel) Linux, FreeBSD, OpenBSD, NetBSD and possibly every Unix that uses diff --git a/LDP/howto/docbook/HOWTO-INDEX/hwSect.sgml b/LDP/howto/docbook/HOWTO-INDEX/hwSect.sgml index f53a874a..60a787c1 100644 --- a/LDP/howto/docbook/HOWTO-INDEX/hwSect.sgml +++ b/LDP/howto/docbook/HOWTO-INDEX/hwSect.sgml @@ -622,7 +622,7 @@ Intkeyb, How to setup international keyboard in X Windows -Updated: December 2001. +Updated: November 2002. This xmodmap and kimap solutions will work for you in setting up any international keyboard for (Debian, RedHat, Mandrake, Corel) Linux, FreeBSD, OpenBSD, NetBSD and possibly every Unix that uses diff --git a/LDP/howto/docbook/HOWTO-INDEX/miniChap.sgml b/LDP/howto/docbook/HOWTO-INDEX/miniChap.sgml index 4e48018f..b54c362c 100644 --- a/LDP/howto/docbook/HOWTO-INDEX/miniChap.sgml +++ b/LDP/howto/docbook/HOWTO-INDEX/miniChap.sgml @@ -616,7 +616,7 @@ Intkeyb, How to setup international keyboard in X Windows -Updated: December 2001. +Updated: November 2002. This xmodmap and kimap solutions will work for you in setting up any international keyboard for (Debian, RedHat, Mandrake, Corel) Linux, FreeBSD, OpenBSD, NetBSD and possibly every Unix that uses diff --git a/LDP/howto/docbook/Intkeyb.sgml b/LDP/howto/docbook/Intkeyb.sgml index b8ead858..dad9f2e0 100644 --- a/LDP/howto/docbook/Intkeyb.sgml +++ b/LDP/howto/docbook/Intkeyb.sgml @@ -7,11 +7,15 @@ by Juraj Sipos, xvudpapc@savba.sk -v1.3, 01 December 2001 -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. However, it is a little experimental in that that it bypasses some standardized XFree86 solutions (with respect to its older versions), although a standard form of internationalization is included too. +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. @@ -35,85 +39,85 @@ GNU General Public License for more details. Revision history - - -Version 1.0.0 - - -Initial version Summer 1999 - - - - - -Version 1.1 - - -Added copyright information and slight modifications pertaining to newer systems - - - - - -Version 1.2 - - -Completely rebuilt, added the possibility to force the system to read Xmodmap; some national Xmodmap files added, more information included on building up the standard Xmodmap files - - - - - -Version 1.3 - - -Minor corrections, spell checking and editation made, few more Xmodmap files added; list of what all ISO8859* specifications mean - - - - - -Version 1.4 - - -Correction of script for including X Window fonts to StarOffice -5.2 - - - - - -Version 1.5 - - -December 2001, Links on internationalization added, info on XKB, troubleshooting, info on newer Linux versions, StarOffice 6 - - - - - + + + + 1.6 + 2002-11-19 + Some links added, info on newer Linux versions + included, major formatting changes + + + 1.5 + 2001-12-03 + Links on internationalization + added, info on XKB, troubleshooting, info on newer Linux + versions, StarOffice 6 + + + 1.4 + N/A + Correction of script for including X Window fonts + to StarOffice 5.2 + + + 1.3 + N/A + Minor corrections, spell checking and editation made, + few more Xmodmap files added; list of what all ISO8859* + specifications mean + + + 1.2 + N/A + Completely rebuilt, added the possibility to + force the system to read Xmodmap; + some national Xmodmap files added, more information included on + building up the standard Xmodmap files + + + 1.1 + N/A + Added copyright information and slight modifications + pertaining to newer systems + + + 1.0 + 1999-08-01 + initial version + + Introduction -The international keyboard Xmodmap HOWTO. Copyright (C) 1999, 2001 Juraj Sipos +The international keyboard Xmodmap HOWTO. Copyright (C) 1999, 2002 Juraj Sipos (xvudpapc@savba.sk). Imagine you use a Linux or a BSD OS and want to write a business letter to a person that has a foreign name with a slash or -idiaresis. Danish language uses signs like ø and Spanish like ñ. +diaeresis (two dots above a letter). Czech language uses signs like &uring +and many European languages have their special non-English characters. - -This is the Xmodmap Howto, but some info on XKB is included, too. -With this information you can make your own international keyboard -layout without installing 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 + +With information in this file you can make your own customized (international) +keyboard layouts without installing 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 -to see layouts of various keyboards. In case you want to install +to see 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 other documentation (e.g., install Greek fonts, etc., see the Cyrilic, @@ -140,24 +144,45 @@ 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, won't care about these user's locale settings. -Run "exit" command on the console and log in again for bash to read +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 font path in the /etc/X11/XF86Config file -(on some newer systems this is not necessary). Start X Server. -Run the command "xmodmap  /.Xmodmap" from an X terminal window to force -the system to read the .Xmodmap file. +(on some newer systems this is not necessary). Start X Server (startx). +If you 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 not have to be there. Name +the xmodmap keyboard map whatever way you want. Switch keyboard by pressing +a key (it is usually right Alt, Scroll Lock, it depends on how switching is +defined in the xmodmap file). That's all. NOTE: This HOWTO is for the X Window +System, use of national keyboards on the console is not explained 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). XKB -Provided you have your fonts installed, just open the X Terminal window +Provided you have your fonts installed, just open the X terminal window and issue a command: setxkbmap kb, where "kb" is the keyboard layout you want to use, for example: + + setxkbmap si @@ -174,12 +199,18 @@ All the language names you may use are located in /usr/X11R6/lib/X11/xkb/symbols directory. -If you are using KDE, open the KDE Start button, click on Preferences, -Personalization, Country & Language and choose ISO8859-2 charset. Note that -this may be slightly different depending on the Linux distribution. +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 on the Linux or +KDE distribution. In newer Linux distributions you don't have to do this +anymore; in Slackware Linux 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 for the +language of your choice installed, obviously). -Switch the keyboard (my xmodmap definition uses Scroll Lock for switching, +You will see a language icon on the KDE panel. Switch the keyboard +(NOTE: this is for XKB, my xmodmap definition uses Scroll Lock for switching, other xmodmap files use Right Alt) and enjoy. @@ -195,8 +226,14 @@ 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 Terminal Window (assuming you have correct fonts installed): + + setxkbmap sk + + setxkbmap si + + setxkbmap de @@ -217,20 +254,20 @@ xmodmap  /.Xmodmap After I installed the Slovak keyboard in KDE with Xmodmap file that used -the standard definitions for ISO8859-2 keycode entities (lcaron, scaron, etc.), -I couldn't write in Slovak or Czech, so I made few changes to the Xmodmap file -explained later in this file. After applying these changes, no other -changes were necessary. +definitions for ISO8859-2 keycode entities (lcaron, scaron, etc.), some changes +had to be done in the system in relation to a Linux or XFree distribution. The +changes mostly pertained to dead keys that did not work. - -How to do it - this experimental or nonstandard solution is not necessary for newer versions of XFree86. Skip this if not interested + + +How to do it: this experimental solution is a legacy issue - do not read it if you use newer systems -Put the following in your .bash_profile: +Before 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 @@ -243,8 +280,8 @@ OR for csh shell setenv LANG=langauge -and have the standard Xmodmap file in your home directory. If you ask me -where you may obtain such "standard" Xmodmap files, go to GNOME +and have the Xmodmap file in your home directory. If you ask me +where you may obtain such Xmodmap files, 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 out what is ca_ES or br_FR (the exact syntax for your language to use - @@ -292,7 +329,7 @@ xset fp+ /usr/fonts_path xset fp rehash -d) Disable every "Scroll Lock" uncommented line in your XF86Config, +d) Disable every "Scroll Lock" uncommented line in your XF86Config, because our .Xmodmap file for the Slovak language uses the Scroll Lock to switch between keyboards. @@ -304,11 +341,11 @@ of your choice. First, I must say that in my solution (in older XFree86 versions), -different mapping is used for Xmodmap keycodes for some ISO8859-2 -keycode entities. ISO8859-2 definitions (keycode entities) like lcaron, -zcaron actually do not work. This means that the ISO8859-1 definitions +different mapping, if used, appears to work for Xmodmap keycodes for some +ISO8859-2 keycode entities. ISO8859-2 definitions (keycode entities) like +lcaron, zcaron actually do not work. This means that the ISO8859-1 definitions must be used instead and they will either give you what they say they -are (aacute [á], eacute [é], etc.), or they will not give you +are (aacute [o?=, eacute [o?=, etc.), or they will not give you what they say 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" @@ -328,7 +365,7 @@ utilized for English, Slovak or Czech keyboard layouts (Polish, Hungarian, Slovenian, Croatian) in some older XFree86 distributions, but there is only one problem - dead keys do not work. That's why you have to copy the "Compose" file from the iso8859-2 directory to iso8859-1 directory, -or alternatively, you can edit the "Compose" file in iso8859-1 directory. +or alternatively, you can edit the "Compose" file in iso8859-1 directory. You can leave the Keyboard section in your XF86Config file without @@ -358,14 +395,16 @@ to read them (xmodmap  /.Xmo1). The dot means it is a hidden file and it is not necessary. You may also have xmo1, xmo2, or xmo3 Xmodmap files. -StarOffice 6.0 handles well conversion 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 fonts worked. However, with StarOffice 5.2 this is not the case. -In StarOffice 5.2, you must add X fonts to StarOffice'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. +NOTE: If you are using some legacy programs like StarOffice 5.2, they have +their own fonts, so Xmodmap solution will not work on older systems immediately +with these applications. StarOffice 6.0 handles well conversion 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 fonts worked. However, with StarOffice 5.2 +this is not the case. In StarOffice 5.2, you must add X fonts to StarOffice'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----------------------------------- @@ -461,17 +500,16 @@ in order to transport ISO8859-2 documents to M$ platform. For html documents this is not necessary. -StarOffice 5.2 can be thus used by professional translators +StarOffice 5.2 can be thus used by professional translators. - -Xmodmap theory and standard Xmodmap solution +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 explanation can be used for all keycodes. For example, the line: +This example can be used for all keycodes. For example, the line: keycode 0x11 = 8 asterisk aacute 8 @@ -481,12 +519,11 @@ keycode 0x11 = 8 asterisk aacute 8 the X Window "xev" utility to explore keyboard puzzles.) - says that the first pair, the default one, (number "8" and "asterisk") will display number "8" when you press keycode 0x11 ("8"), will display asterisk when a "shift" key is pressed. After pressing the Scroll Lock, -there's another definition: ISO_NEXT_GROUP, which means that when you -press the default "8" key, no "8" will be displayed, but aacute ("á"); +there's another definition: ISO_NEXT_GROUP, which means that when +you press the default "8" key, no "8" will be displayed, 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: @@ -499,11 +536,11 @@ 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 only two definitions ("8" and "asterisk") - look at -my .Xmodmap file. If you delete the ISO_NEXT_GROUP (the next pair of -definitions on the right), you will have only one group of keyboard -definitions ("8" and "asterisk"). Be careful when editing the .Xmodmap +The ISO_NEXT_GROUP is defined by another line. If this line is not +defined, you will be able to use only two definitions ("8" and "asterisk") - +look at my .Xmodmap file. If you delete the ISO_NEXT_GROUP (the +next 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 utilization of the Scroll Lock unless you know what you are doing (or you map the second keyboard by right Alt). These are the lines such as: @@ -515,13 +552,154 @@ 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 +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. When you 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, select iso8859-2 fonts charset from the fonts menu. NOTE: +vowel *acute (uacute, eacute, etc.) signs require no substitution, +therefore I omitted iacute, aacute, etc., here. + + +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 + + +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 +------------------------------------------------------------------------ + Experimental .Xmodmap sample file for the Slovak language typewriter layout +You may use this file as an example to build your own xmodmap keyboard layouts. _______________________cut_here_________________________ @@ -633,10 +811,10 @@ keycode 0x4D = Num_Lock Pointer_EnableKeys keycode 0x70 = KP_Divide slash -keycode 0x3F = KP_Multiply asterisk +keycode 0x3F = KP_Multiply asterisk -keycode 0x52 = KP_Subtract minus +keycode 0x52 = KP_Subtract minus keycode 0x17 = Tab ISO_Left_Tab @@ -651,7 +829,7 @@ keycode 0x19 = w W keycode 0x1A = e E -keycode 0x1B = r R +keycode 0x1B = r R keycode 0x1C = t T @@ -669,13 +847,13 @@ keycode 0x1F = i I keycode 0x20 = o O -keycode 0x21 = p P +keycode 0x21 = p P -keycode 0x22 = bracketleft braceleft acute slash +keycode 0x22 = bracketleft braceleft uacute slash -keycode 0x23 = bracketright braceright diaeresis parenleft +keycode 0x23 = bracketright braceright adiaeresis parenleft keycode 0x24 = Return @@ -687,7 +865,7 @@ keycode 0x6B = Delete keycode 0x67 = End -keycode 0x69 = Next +keycode 0x69 = Next keycode 0x4F = KP_Home 7 KP_Home @@ -705,7 +883,7 @@ keycode 0x56 = KP_Add plus keycode 0x42 = Caps_Lock -keycode 0x26 = a A +keycode 0x26 = a A keycode 0x27 = s S @@ -723,7 +901,7 @@ keycode 0x2A = g G keycode 0x2B = h H -keycode 0x2C = j J +keycode 0x2C = j J keycode 0x2D = k K @@ -738,10 +916,10 @@ keycode 0x2F = semicolon colon ocircumflex quotedbl keycode 0x30 = apostrophe quotedbl section exclam -keycode 0x53 = KP_Left 4 +keycode 0x53 = KP_Left 4 -keycode 0x54 = KP_Begin 5 +keycode 0x54 = KP_Begin 5 keycode 0x55 = KP_Right 6 @@ -759,7 +937,7 @@ keycode 0x35 = x X keycode 0x36 = c C -keycode 0x37 = v V +keycode 0x37 = v V keycode 0x38 = b B @@ -777,7 +955,7 @@ keycode 0x3B = comma less comma question keycode 0x3C = period greater period colon -keycode 0x3D = slash question minus underscore +keycode 0x3D = slash question minus underscore keycode 0x3E = Shift_R @@ -789,13 +967,13 @@ keycode 0x62 = Up keycode 0x57 = KP_End 1 -keycode 0x58 = KP_Down 2 +keycode 0x58 = KP_Down 2 keycode 0x59 = KP_Next 3 -keycode 0x6C = KP_Enter Return +keycode 0x6C = KP_Enter Return keycode 0x25 = Control_L ISO_Next_Group @@ -813,7 +991,7 @@ keycode 0x41 = space keycode 0x71 = Alt_R Meta_R -keycode 0x6D = Control_R +keycode 0x6D = Control_R keycode 0x64 = Left @@ -831,7 +1009,7 @@ keycode 0x5A = KP_Insert 0 keycode 0x5B = KP_Delete period -!keysym Alt_L = Meta_L +!keysym Alt_L = Meta_L !keysym F12 = Multi_key @@ -840,7 +1018,7 @@ keycode 0x5B = KP_Delete period clear Shift -!clear Lock +!clear Lock clear Control @@ -849,7 +1027,7 @@ clear Control clear Mod1 -clear Mod2 +clear Mod2 clear Mod3 @@ -867,7 +1045,7 @@ add Shift = Shift_L Shift_R add Control = Control_L Control_R -!add Mod1 = Alt_L Alt_R +!add Mod1 = Alt_L Alt_R add Mod1 = Meta_L Alt_R @@ -885,48 +1063,499 @@ add Mod5 = ISO_Next_Group !add Mod2 = Alt_R Alt_L Mode_switch -keycode 0x73 = ISO_Next_Group +keycode 0x73 = ISO_Next_Group keycode 0x74 = dead_acute dead_diaeresis -keycode 0x75 = dead_caron dead_abovering +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. +(SuSE) /opt/gnome/share/xmodmap (with standard ISO8859-1,2 and other +definitions). To switch between the keyboards, use right Alt. + + +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 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 to explore keyboard puzzles.) + + +says that the first pair, the default one, (number "8" and "asterisk") +will display number "8" when you press keycode 0x11 ("8"), will display +asterisk when a "shift" key is pressed. After pressing the Scroll Lock, +there's another definition: ISO_NEXT_GROUP, which means that when you +press the default "8" key, no "8" will be displayed, 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 only two definitions ("8" and "asterisk") - +look at my .Xmodmap file. If you delete the ISO_NEXT_GROUP (the +next 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 utilization of the +Scroll Lock unless you know what you are doing (or you map the second keyboard +by right Alt). These are 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". + +.Xmodmap sample file for the Slovak language typewriter layout + +The following .Xmodmap sample file consists of two groups of keyboard +definitions you my use in addition to your default or XKB keyboard choice. +You may use this file as an example to build your own keyboard maps. 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 see that thus you can +have almost absolute control of your keyboard - something which in Microsoft +Windows operating system can only be achieved by special and certainly +expensive programs. Use the Scroll Lock to switch between the first and second +group of key definitions. +_______________________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 + + +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 + + +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 + + +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 + + +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 + + +!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_____________________________ + + + + Character sets -The purpose of the following info is to help you build any .Xmodmap -keyboard layout with ISO8859-2 or other fonts. The ISO8859-2 Character -Set file is included here for you to know which names are used for -pertinent keys. You should not bother about the numbers, but notice -how keys are named. Much of this information is useful to build a keyboard -with ISO8859-1 characters only, or a combination of East European -characters and Western characters. If you're going to use other languages -than the Central European or Western European ones, find a pertinent table -for your ISO*** character set on Internet. 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, or try to -look in /lib/perl5/site_perl/5.6.0/i386-linux/GTK/keysyms.pm (it also -contains names of keycode entities including hex codes). If you have a newer -version of PERL, the "5.6.0" may differ. The similar should apply to other -systems (FreeBSD), as all these use PERL. +If you want to build an .Xmodmap and you know how the character looks visually, +you may have problems about knowing how it is defined by name. A good site that +may help you with this may be: + +Here you can see ISO8859-2 characters visually. + + +I also included here some ISO8859-2 Character definitions for you to know which +names are used for pertinent keys. It may not be complete and you should not +bother about the keycode numbers, but notice how keys are named. Much of this +information is useful to build a keyboard with ISO8859-1 characters only, or +a combination of East European characters and Western characters. If you're +going to use other languages than the Central European or West-European ones, +find a pertinent table for your ISO*** character set on the Internet. 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 this directory), or try to look in +/lib/perl5/site_perl/5.6.0/i386-linux/GTK/keysyms.pm (it also +contains names of keycode entities including hex codes). If you have a newer +version of PERL, the version number "5.6.0" may differ. The similar thing +should apply to other systems (FreeBSD), too, as they also use PERL. - ISO-8859-2 (ISO Latin2) character set -Xmodmap entity Visually +Xmodmap entities with their word definitions (which you put in the Xmodmap file) +and their visual representation. Some word definitions lack their visual forms. ---------------------------------------------------------------------- @@ -1220,7 +1849,7 @@ tilde   space -Aogonek +Aogonek breve @@ -1244,22 +1873,22 @@ section dieresis -Scaron +Scaron &Scaron -Scedilla +Scedilla -Tcaron +Tcaron &Tcaron -Zacute +Zacute &Zacute hyphen -Zcaron +Zcaron &Zcaron Zdotaccent @@ -1277,13 +1906,13 @@ ogonek lslash -acute +acute -lcaron +lcaron &lcaron -sacute +sacute &sacute caron @@ -1292,13 +1921,13 @@ caron cedilla -scaron +scaron &scaron scedilla -tcaron +tcaron &tcaron zacute @@ -1307,7 +1936,7 @@ zacute hungarumlaut -zcaron +zcaron &zcaron zdotaccent @@ -1337,10 +1966,10 @@ Cacute Ccedilla -Ccaron +Ccaron &Ccaron -Eacute +Eacute É Eogonek @@ -1349,28 +1978,28 @@ Eogonek Edieresis -Ecaron +Ecaron &Ecaron -Iacute +Iacute Í Icircumflex -Dcaron +Dcaron &Dcaron Eth -Nacute +Nacute &Nacute -Ncaron +Ncaron &Ncaron -Oacute +Oacute Ó Ocircumflex @@ -1385,13 +2014,13 @@ Odieresis multiply -Rcaron +Rcaron &Rcaron -Uring +Uring &Uring -Uacute +Uacute Ú hungarumlaut @@ -1412,7 +2041,7 @@ germandbls racute -aacute +aacute á acircumflex @@ -1433,7 +2062,7 @@ cacute ccedilla -ccaron +ccaron &ccaron eacute @@ -1499,7 +2128,7 @@ udieresis yacute -tcedilla +tcedilla dotaccent @@ -1508,814 +2137,12 @@ dotaccent ---------------------------------------------------------------------- -First, if you are using older systems, try to see if standard definitions -will give you (after installing pertinent fonts and building Xmodmap -with keyboard definitions for X) what they say they are. If they will -not give you what they say they are (some keycodes will be unfunctional), -then put to your bash_profile the "export LANG=language" statement and -if you are still unsuccessful, you must make a substitution. Definitions -which will not give you what they say they are can be traced by their -visual shape in Western Latin 1 encoding. If you are a Czech, for example, -you may issue a command: +First, if you are using older systems (see the legacy solution), try to see if +definitions will give you (after installing pertinent fonts and +building the Xmodmap map with keyboard definitions for X) what they say they +are. If they will not give you what they say they are, see my legacy soluttion. -setxkbmap -model pc102 -symbols 'czsk(us_cz_qwertz)' -setxkbmap cs -option grp:shift_toggle - - -and see what will give you an X terminal window (press both Shift keys or -press alt and hold it to see the other keyboard layout). This means that -by pressing a letter "3" you will get a real "onesuperior" key. It is good -that X terminal window does not make use of ISO8859-2 fonts now, so you -will see what you must use instead of scaron (scaron = onesuperior). By -putting "onesuperior" in an .Xmodmap file you will get a REAL "scaron", but -obviously, only with use of ISO8859-2 fonts (with use of ISO8859-1 -fonts, you will get a REAL "onesuperior"). - - -Thus, the X Terminal window will show you fonts like micron, -onesuperior, threequarters, and so on. You will see what you must -substitute. But if you don't know what "?" is called in the ISO terminology, -find and download an appropriate character set table for ISO8859-1, or -look in gdkkeysyms.h file, /lib/perl5/site_perl/5.6.0/i386-linux/GTK/keysyms.pm -file, or ../ISO8859-1/Compose file. Alternatively, you may experiment with -all codes defined in /usr/X11R6/lib/X11/locale/ISO8859-1/Compose file. -You must use the ISO8859-1 entities when the system refuses to display -the ISO8859-2 entities correctly. - - -The following symbols on your right is what I found out through my research. -This is just an example. When you 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, select iso8859-2 fonts charset from the fonts menu. NOTE: -vowel *acute (uacute, eacute, etc.) signs require no substitution, -therefore I omitted iacute, aacute, etc., here. - - -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 - - -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 ------------------------------------------------------------------------- - - -sect1>ISO* specifications - - - -The standard ISO8859-2 definitions in the Xmodmap file - -The example of a Standard .Xmodmap file. Use this file if X Server -correctly displays lcaron, scaron, etc., in newer versions of XFree86. - - -! This is an `xmodmap' input file for PC 101 key #2 (Linux/FreeBSD/XFree86; US/sk) - - -! keyboards created by XKeyCaps, modified by Juraj Sipos on 8/17/1999. - - -! XKeyCaps 2.38 is Copyright (c) 1997 Jamie Zawinski (jwz@netscape.com). - - -! http://people.netscape.com/jwz/xkeycaps/ This is an .Xmodmap solution for - - -! Slovak keyboard in FreeBSD. You must have ISO-8859-2 fonts installed with a - - -! pointer in /etc/XF86Config, for example, - - -! FontPath "/usr/X11R6/lib/X11/fonts/ISO8859-2/Type1". The section "Keyboard" - - -! in XF86Config must contain at least the following line. You don't have to - - -! specify any special XkbLayout. - - -! Section "Keyboard" - - -! Protocol "Standard" - - -! XkbRules "xfree86" - - -! XkbModel "pc101" - - -! XkbLayout "us"! - - -! The Slovak/English keyboard is switched to by Scroll Lock - - -! This file makes the following changes: - - -! - - -! The "F1" key generates F1 and F11 - - -! The "F2" key generates F2 and F12 - - -! The "F3" key generates F3 and F13 - - -! The "F4" key generates F4 and F14 - - -! The "F5" key generates F5 and F15 - - -! The "F6" key generates F6 and F16 - - -! The "F7" key generates F7, F17, and dead_circumflex - - -! The "F8" key generates F8, F18, and dead_doubleacute - - -! The "F9" key generates F9, F19, and dead_cedilla - - -! The "F10" key generates F10, F20, and dead_ogonek - - -! The "F11" key generates F11, F21, dead_diaeresis, and dead_circumflex - - -! The "F12" key generates F12, F22, dead_abovering, and dead_doubleacute - - -! The "Print Screen" key generates Print and Execute - - -! The "Scroll Lock" key generates ISO_Next_Group, and the Mod5 modifier - - -! The " `" key generates what you see + semicolon and dead diaeresis - - -! The "! 1" key generates 1, exclam, plus, 1 (the last one is with shift) - - -! The "@ 2" key generates 2, at, lcaron, and 2 - - -! The "# 3" key generates 3, numbersign, scaron, and 3 - - -! The "$ 4" key generates 4, dollar, ccaron, and 4 - - -! The "% 5" key generates 5, percent, tcaron, and 5 - - -! The "ˆ 6" key generates 6, asciicircum, zcaron, and 6 - - -! The "& 7" key generates 7, ampersand, yacute, and 7 - - -! The "* 8" key generates 8, asterisk, aacute, and 8 - - -! The "( 9" key generates 9, parenleft, iacute, and 9 - - -! The ") 0" key generates 0, parenright, eacute, and 0 - - -! The "+ =" key generates equal, plus, dead_acute, and dead_caron - - -! The "Num Lock" key generates Num_Lock and Pointer_EnableKeys, and the Mod2 modifier - - -! The "Tab" key generates Tab and ISO_Left_Tab - - -! The "Q" key generates q and Q - - -! The "W" key generates w and W - - -! The "E" key generates e and E - - -! The "R" key generates r and R - - -! The "T" key generates t and T - - -! The "Y" key generates y and Y - - -! The "U" key generates u and U - - -! The "I" key generates i and I - - -! The "O" key generates o and O - - -! The "P" key generates p and P - - -! The "7 Home" key generates KP_Home and KP_7 - - -! The "8 UpArrow" key generates KP_Up and KP_8 - - -! The "9 Pg Up" key generates KP_Prior and KP_9 - - -! The "Caps Lock" key generates Caps_Lock, and has no modifiers - - -! The "A" key generates a and A - - -! The "S" key generates s and S - - -! The "D" key generates d and D - - -! The "G" key generates g and G - - -! The "H" key generates h and H - - -! The "J" key generates j and J - - -! The "K" key generates k and K - - -! The "L" key generates l and L - - -! The "4 LeftArrow" key generates KP_Left and KP_4 - - -! The "5" key generates KP_Begin and KP_5 - - -! The "6 RightArrow" key generates KP_Right and KP_6 - - -! The "Z" key generates z and Z - - -! The "X" key generates x and X - - -! The "C" key generates c and C - - -! The "V" key generates v and V - - -! The "B" key generates b and B - - -! The "N" key generates n and N - - -! The "M" key generates m and M - - -! The "1 End" key generates KP_End and KP_1 - - -! The "2 DownArrow" key generates KP_Down and KP_2 - - -! The "3 Pg Dn" key generates KP_Next and KP_3 - - -! The "0 Ins" key generates KP_Insert and KP_0 - - -! The ". Del" key generates KP_Delete and KP_Decimal - - -!#define XK_dead_semivoiced_sound 0xFE5F - - -!dead_iota, dead_voiced_sound, dead_belowdot, dead_tilde, dead_macron - - -keycode 0x09 = Escape - - -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 uacute - - -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_doubleacute dead_circumflex - - -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 - - -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 - - -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 - - -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 - - -!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 @@ -2327,12 +2154,12 @@ keycode 0x75 = dead_caron dead_abovering SuSE 7.0 with XFree86 version 3.3.6 and KDE 2.0 (this also applies to SuSE 6.4 No LANG=language statement is necessary in your bash_profile. You may use -the Xmodmap file with standard ISO8859-2 keycode definitions, the above -.Xmodmap file, (not "threequarters" but "scaron", etc.). Unfortunately, +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 XFree does not properly handle ISO8859-2 +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). @@ -2340,14 +2167,16 @@ work well (after applying the above script for StarOffice 5.2). After copying the Compose file from /usr/X11R6/lib/X11/locale/iso8859-2/ to the /usr/X11R6/lib/X11/locale/iso8859-1/, you may start elegantly working with dead keys. This was also tested on StarOffice 5.2. -The FontPath must be in /etc/XF86Config, not in /etc/X11/Xf86Config. -SuSE 7.0 with Xfree86 version 3.3.6 and KDE 1.x +SuSE 7.0 (Xfree86 3.3.6, KDE 1.x), SuSE 8.0 -Same as above. +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. @@ -2358,20 +2187,19 @@ Same as above. 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 +my .bash_profile, StarOffice worked immediately (with ISO8859-2 fonts +added to its directory) and I only switched the keyboards. I chose +Czechoslovakian as the second language and could write in Czech with ISO8859-2 +characters on my screen. (I used the script for putting the ISO8859-2 fonts +for StarOffice). Unfortunatelly, the KDE 2.0 kedit could not visualize the ISO8859-2 fonts and after switching the keyboard and selecting ISO8859-2 charset I saw this: ??????? instead of lcaron, scaron, etc., but *acute symbols (uacute, aacute, etc.) displayed well. The maps in /usr/X11R6/lib/X11/xkb/symbols can be modified on the fly, -while in X; you only have to switch keyboards from the panel (click on a -flag icon). You can edit those maps and modify them for your choice. -After changing some Czech definitions to Slovak, StarOffice displayed them well. +but this is a dirtier way than to modify Xmodmap maps. You switch keyboards from +the panel flag icon. @@ -2380,11 +2208,10 @@ After changing some Czech definitions to Slovak, StarOffice displayed them well. 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 +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: @@ -2395,14 +2222,14 @@ 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. +and dead keys work nicely. Mandrake 8.1 -This distribution works well as it should. In KDE, you must open the +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 @@ -2416,27 +2243,37 @@ you can set your keyboard with setxkbmap command (see section FreeBSD 4.4). RedHat 5.1, 5.2, 6.0, 6.1 and 6.2 (XFree86 3.3.6 and older) -No LANG=language statement is necessary in your bash_profile. Here the -"experimental" .Xmodmap solution works ("mu" instead of "lcaron", etc.) -and you must copy the Compose file from ../IS08859-2 to ISO8859-1 directory -in order for dead keys to work. There is only one XF86Config file in -/etc/X11 and its FontPath should be the same as in SuSE 7.0 above. +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. -RedHat 7.2 +RedHat 7.2, RedHat 8.0, Slackware 8.1 -Same as Mandrake 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. FreeBSD 3.1 and 3.2 -Same as with RedHat 5.1, 5.2, 6.0, 6.1, 6.2 +Internationalization works the same way as with RedHat 5.1, 5.2, 6.0, 6.1, 6.2 -FreeBSD 4.1 +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: @@ -2444,28 +2281,23 @@ LANG=cs_CZ.ISO_8859-2; export LANG FreeBSD 4.1, 4.2, 4.3, 4.4 does not use Slovak locale, so we must use -the Czech one. It really does not matter. Here this depends on XFree86. -Because the FreeBSD guys are too conservative about a newer software, +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. -FreeBSD 4.4. +FreeBSD 4.6. -The Standard xmodmap solution works well. You must put this to /etc/profile: +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. -LANG=cs_CZ.ISO_8859-2; export LANG - - -Yes, we will use the Czech locale for the Slovak language. Other languages -require similar syntax, e.g.: -LANG=it_IT.ISO_8859-1; export LANG - - -for the Italian language. Alternatively, you may use +If you decide to run setxkbmap (FreeBSD or Linux), you may use setxkbmap si @@ -2486,7 +2318,7 @@ setxkbmap de for German, etc. -A brief overview of XKB maps: +A brief overview of names that stand for XKB maps: am Armenian keyboard @@ -2555,10 +2387,11 @@ si Slovenian Corel Linux 1.0 and 1.1 -Same as with FreeBSD 3.x - experimental Xmodmap solution. +Same as with FreeBSD 3.x - legacy Xmodmap solution must be applied. - + + ISO* specifications ------------------------------------------------------------------- @@ -2639,7 +2472,6 @@ Albanian, Croatian, English, Finnish, French, German, Hungarian, Irish Gaelic, Italian, Latin, Polish, Romanian, Slovenian, Lithuanian, and Scandinavian languages (Danish, Faeroese, Icelandic. - Some national Xmodmap files @@ -5396,24 +5228,19 @@ add Mod2 = Mode_switch Troubleshooting -Get the newest Linux distribution. Mandrake 8.1 or RedHat 7.2 work +Get the newest Linux distribution. Mandrake 8.1 or RedHat 7.2 or 8.0 work fantastically with regard to internationalization (which could not be -said about the previous distributions). If locales are not installed, you must -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 the systems get better and better and people -install newer versions. +said about previous distributions). If locales are not installed, you must +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 the systems get better and better and people +install newer versions. 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. +Slackware has a very good databse of xmodmap maps in /usr/share/xmodmap. +Use the command: locale -a to see all the locales. -Use the command: - - -locale -a - - -to see all the locales. - - - @@ -5447,6 +5274,10 @@ add Control = Control_L Other information on internationalization +Here you can see ISO8859-2 characters visually +Dutch keymap Unicode HOWTO @@ -5504,4 +5335,5 @@ Note: This RedHat ftp directory contains more fonts, just look into the RPMdirec - \ No newline at end of file + +