diff --git a/LDP/howto/linuxdoc/Intkeyb.sgml b/LDP/howto/linuxdoc/Intkeyb.sgml new file mode 100644 index 00000000..c6608e10 --- /dev/null +++ b/LDP/howto/linuxdoc/Intkeyb.sgml @@ -0,0 +1,1112 @@ + + +
+How to setup international keyboard in X Windows +<author>by Juraj Sipos, <tt><htmlurl url="mailto:xvudpapc@savba.sk" name="xvudpapc@savba.sk"></tt> +<date>v1.1, 8 January 2001 + +<abstract> +How to setup international keyboard in Linux or Unix. This xmodmap +and kimap solutions 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 and KDE. +The advantage of this howto is that it is not architecture specific +and will work on SPARK, MIPS and all other systems. However, it is +a little experimental in that that it bypasses some standardized +international country-specific keyboard solutions. +</abstract> + +<toc> + +<sect>Introduction + +<p> + +<sect1>Copyright + +<p> +This documentation is free documentation; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program 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 PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +<sect1>Revision history + +<p> +<descrip> +<tag>Version 1.0.0</tag>Initial version Summer 1999 +<tag>Version 1.1</tag>Added copyright information and slight modifications pertaining to newer systems +</descrip> + +<sect1>Introduction + +<p> +The international keyboard HOWTO. Copyright (C) 1999, 2001 Juraj Sipos +(xvudpapc@savba.sk). Imagine you use 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 ñ. + +<p> +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 without +additional installing of national packages. You can also alternatively +look at my homage at <htmlurl url="http://freebsd.nfo.sk/" +name="http://freebsd.nfo.sk"> to see 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 (e.g., to install Greek fonts, etc.). + +<sect>Setting up international keyboard in X Windows +<p> +The biggest problem with kikbd or international keyboard under KDE in +X Windows is that it doesn't work in Xfree86 that easily (you have +to install some national packages and write garbage to the +above-mentioned files). A user expects a simple way for +configuring his or her keyboard for international settings. A simple +way is to start KDE, change the international keyboard settings and +immediately write in the language we chose (this will work for German +and other languages, but in Eastern European keyboards some letters +may not function in a system specific environment). According to the +KDE documentation it should work, but it doesn't. After exploring many +KDE resources on the net some time ago, I didn't find a solution +(except for the one that forces you to install some national package). +I know that some locale settings should be included in my bash_profile +or csh login scripts, but after applying these settings I couldn't change +(and install) keyboards in FreeBSD and it appeared like going through +a darker forest compared to the information I already had +regarding localization of KDE and X Windows under Xfree86. Here are +some solutions for installing international keyboard layouts. +If you want to write the "garbage", try to put the following in your +FreeBSD or BSD bash_profile (or even Linux, but certainly not RedHat; +RedHad Linux has very good international customization and my Czech +RedHat does not require manipulation of bash_profile file at all): +<p> +LC_ALL=slovak (or any other language) +<p> +LANG=slovak (or any other language) +<p> +This is enough. Just continue reading. + +<p> +<sect1>Use of this information may be system-specific + +<p> +The following information will help you set up any European keyboard layout +(good for some older systems if the LC_ALL=language etc. doesn't work. +However, this LC_ALL=language solution works in FreeBSD 4.1, but you +must have ISO8859-2 fonts installed). + +<p> +The next solution works for Xfree86 in FreeBSD 3.1 RELEASE (.Xmodmap +solution), Corel Linux, Debian Linux, RedHat and FreeBSD 3.3 RELEASE +and 4.0 RELEASE (KDE *.kimap solution). This solution maybe also useful when +you use on older computer and older system, as some newer systems refuse +to run on a 386 or 486 processor computer with less RAM. I tested it +on those systems. Note: .Xmodmap solution works well with other +windows managers. + +<p> +Some Unixes override .Xmodmap setting when used with KDE. If .Xmodmap doesn't +work, change must be made to the KDE kimap files in ../kikbd directory. +This also pertains to LC_ALL=language; LANG=language solution. +If .Xmodmap solution doesn't work in KDE, copy skz.kimap (at the end +of this article) to /usr/local/share/apps/kikbd (FreeBSD), or to +/usr/share/apps/kikbd directory (RedHat), which is your KDE +keyboard directory. The problem with KDE is that after installing another +keyboard, you have no chance to use (at least in older versions) +it as KDE documentation doesn't clearly state how to define your +locale settings in a bash_profile. After I installed Slovak keyboard +in KDE, I couldn't write in Slovak or Czech, so I made few changes +to skz.kimap file, which are explained later in this file. After +applying these changes, no other changes are necessary - you don't +need to write any special commands to your bash_profile or XF86Config. +<bf>BUT WHEN YOU INSTALL ANOTHER KEYBOARD in START/SETTINGS/INPUT +DEVICES/INTERNATIONAL KEYBOARDS</bf> from your KDE menu, CHECK AUTOSTART. +Then everything will work fine. The difference between skz.kimap and +sky.kimap (and csz.kimap and csy.kimap) is that y,Y and z,Z are swapped, +so with skz.kimap or csz.kimap you will have z,Z instead of y,Y, but +with sky.kimap or csy.kimap, y,Y doesn't change its position on the +IBM English keyboard layout. + +<p> +<sect1>How to do it + +<p> +!!!BEAR IN MIND. THE FOLLOWING IS NOT NECESSARY IF YOUR LOCALIZATION WORKS +BY PUTTING +<p> +LC_ALL=language +<p> +LANG=language +<p> +in your bash_profile. However, you must install the pertinent language +fonts and put path in XF86Config file to these fonts. + +<p> +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 +(alternatively, copy other iso885*** Compose file to iso8859-1 +directory). + +<p> +b) Put the included .Xmodmap file to your root directory (Slovak +language, or make your own .Xmodmap file) (or possibly put your +own *.kimap file to the kikbd directory if Xmodmap will not work) + +<p> +c) Install ISO8859-2 fonts (or other pertinent fonts). + +<p> +d) Disable every "Scroll lock" uncommented line in your XF86Config, +because our .Xmodmap uses scroll lock to switch between keyboards. + +<p> +e) Put the appropriate fontpath for your newly installed fonts +in our XF86Config file, if necessary. The .Xmodmap solution may be +applied to all X keyboards; .Xmodmap file overrides all settings +of keyboard layouts as defined in /usr/X11R6/lib/X11/xkb/symbols/, +where are symbols for many international keyboards. The .Xmodmap +solution will give you an enhanced Slovak typewriter keyboard +layout. First, I must say that in my solution, different mapping +is used for .Xmodmap file (and kimap file) for some ISO definitions. +This means that the ISO definitions will either give you what +they say they are (aacute [á], eacute [é], etc.), or they +will not give you what they say they are (putting "threequarters" in +your .Xmodmap file will give not give you "3/4" but "z" with a caron +above it). For example, "mu" will give lcaron, "oslash" rcaron, +etc. (Obviously, in other case you need to install some national +packages to use "lcaron" definition instead of "mu"). Normally, you +can not put "lcaron" to the .Xmodmap file, because it will not give +you lcaron; you must write "mu" instead, or "guillemotright" +for tcaron (again, you may avoid this if the "LANG=language" solution +in your bash_profile works). I also tried hexadecimal numbers and they work. + +<p> +However, other key definitions, for example, adieresis (a with two +dots above it), uacute (u with slash above it), as well as dead_diaeresis +do not require a substitution of other definitions and work pretty well +as they're defined everywhere (dead key is a key when you press it, hold +it yet nothing happens, but after pressing another key you will get +a special letter). + +<p> +The original "Compose" file in ../iso8859-1 directory can be fully +utilized for Slovak or Czech keyboard layouts (Polish, Hungarian, Slovenian, +Croatian), but there is only one problem with the Slovak or Czech keyboard +(and other languages too) layout - dead_caron doesn't 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 and put all references about "dead_caron" from iso8859-2/Compose +to iso8859-1/Compose file. You can leave the Keyboard section in your +XF86Config without much change. Put (if it's not already there) the +following in the "Keyboard" section: +Section "Keyboard" +<p> +Protocol "Standard" +<p> +XkbRules "xfree86" +<p> +XkbModel "pc101" +<p> +XkbLayout "us" + +<p> +The above doesn't have to be changed if +<p> +LC_ALL=language +<p> +LANG=language +<p> +solution works. The LC_ALL=language solution treats the dead_caron or any +dead key well. + +<p> +Some X Windows managers and/or environments override .Xmodmap settings, +so if you use KDE and .Xmodmap doesn't work, use kikbd keymap instead +of .Xmodmap. (A sample kikbd kimap for the Slovak language is included +at the bottom of this file). The Slovak/Czech/English keyboard layout +is switched to by a scroll lock. You may use languages only with the +applications that have access to your ISO-8859-2 (or other fonts) fonts +(this may not work with StarOffice or with other applications that +have their own built-in fonts). StarOffice has its own fonts directory +for afm fonts in ../xp3/fontmetrics/afm, and ps fonts in../xp3/pssoftfonts, +so you must add the ISO8859-2 fonts directory to these directories +(to tell StarOffice to use these fonts too) and edit fonts.dir file +and add the symlinked fonts there. I can easily write with any language in +StarOffice. Important note: If you want to exchange documents +between StarOffice 5.1 or WordPerfect and MS Word, you must include +the information about the windows 1250 encoding to the file you write +(win1250 is similar to iso8859-2, but it's a little bit different). +This doesn't need to be done if you use StarOffice 5.2, but for the +older versions, you must use a converter from iso8859-2 to win1250. +You can find one at my home page at htmlurl +url="http://www.home.sk/www/man/bsd1.htm" +name="http//www.home.sk/www/man/bsd1.htm" or at +htmlurl url="http://freebsd.nfo.sk" name="http://www.freebsd.nfo.sk". + + +<sect1>Xmodmap theory + +<p> +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. + +<p> +This explanation can be used for all keycodes. For example, the line: +keycode 0x11 = 8 asterisk aacute 8 +(note: keycode 0x11 is derived from xkeycaps utility; you can also use +the X Windows "xev" utility to play more with 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: +<p> +keycode 0x11 = 8 asterisk semicolon colon +<p> +will give you "semicolon" and "colon" in your 0x11 keycode after +pressing the scroll lock. 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. 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". + +<sect1>Xmodmap sample file for the Slovak language typewriter layout +_______________________cut_here_________________________ +<p> +keycode 0x09 = Escape +<p> +keycode 0x43 = F1 F11 F1 Multi_key +<p> +keycode 0x44 = F2 F12 F2 F12 +<p> +keycode 0x45 = F3 F13 F3 F13 idiaeresis +<p> +keycode 0x46 = F4 F14 F4 F14 mu yen +<p> +keycode 0x47 = F5 F15 F5 F15 guillemotright guillemotleft +<p> +keycode 0x48 = F6 F16 F6 F16 ograve +<p> +keycode 0x49 = F7 F17 F7 dead_abovedot oacute +<p> +keycode 0x4A = F8 F18 F8 dead_breve acute +<p> +keycode 0x4B = F9 F19 F9 dead_cedilla ugrave +<p> +keycode 0x4C = F10 F20 F10 dead_ogonek +<p> +keycode 0x5F = F11 F21 dead_acute dead_caron +<p> +keycode 0x60 = F12 F22 dead_abovering dead_diaeresis +<p> +keycode 0x6F = Print Execute dead_iota +<p> +keycode 0x4E = ISO_Next_Group +<p> +keycode 0x6E = Pause +<p> +keycode 0x31 = grave asciitilde semicolon dead_diaeresis +<p> +keycode 0x0A = 1 exclam plus 1 +<p> +keycode 0x0B = 2 at mu 2 +<p> +keycode 0x0C = 3 numbersign onesuperior 3 +<p> +keycode 0x0D = 4 dollar egrave 4 +<p> +keycode 0x0E = 5 percent 0x0bb 5 +<p> +keycode 0x0F = 6 asciicircum threequarters 6 +<p> +keycode 0x10 = 7 ampersand yacute 7 +<p> +keycode 0x11 = 8 asterisk aacute 8 +<p> +keycode 0x12 = 9 parenleft iacute 9 +<p> +keycode 0x13 = 0 parenright eacute 0 +<p> +keycode 0x14 = minus underscore equal percent +<p> +keycode 0x15 = equal plus dead_acute dead_caron +<p> +keycode 0x33 = backslash bar ograve parenright +<p> +keycode 0x16 = BackSpace +<p> +keycode 0x6A = Insert +<p> +keycode 0x61 = Home +<p> +keycode 0x63 = Prior +<p> +keycode 0x4D = Num_Lock Pointer_EnableKeys +<p> +keycode 0x70 = KP_Divide slash +<p> +keycode 0x3F = KP_Multiply asterisk +<p> +keycode 0x52 = KP_Subtract minus +<p> +keycode 0x17 = Tab ISO_Left_Tab +<p> +keycode 0x18 = q Q +<p> +keycode 0x19 = w W +<p> +keycode 0x1A = e E +<p> +keycode 0x1B = r R +<p> +keycode 0x1C = t T +<p> +keycode 0x1D = y Y z Z +<p> +keycode 0x1E = u U +<p> +keycode 0x1F = i I +<p> +keycode 0x20 = o O +<p> +keycode 0x21 = p P +<p> +keycode 0x22 = bracketleft braceleft acute slash +<p> +keycode 0x23 = bracketright braceright diaeresis parenleft +<p> +keycode 0x24 = Return +<p> +keycode 0x6B = Delete +<p> +keycode 0x67 = End +<p> +keycode 0x69 = Next +<p> +keycode 0x4F = KP_Home 7 KP_Home +<p> +keycode 0x50 = KP_Up 8 +<p> +keycode 0x51 = KP_Prior 9 +<p> +keycode 0x56 = KP_Add plus +<p> +keycode 0x42 = Caps_Lock +<p> +keycode 0x26 = a A +<p> +keycode 0x27 = s S +<p> +keycode 0x28 = d D +<p> +keycode 0x29 = f F +<p> +keycode 0x2A = g G +<p> +keycode 0x2B = h H +<p> +keycode 0x2C = j J +<p> +keycode 0x2D = k K +<p> +keycode 0x2E = l L +<p> +keycode 0x2F = semicolon colon ocircumflex quotedbl +<p> +keycode 0x30 = apostrophe quotedbl section exclam +<p> +keycode 0x53 = KP_Left 4 +<p> +keycode 0x54 = KP_Begin 5 +<p> +keycode 0x55 = KP_Right 6 +<p> +keycode 0x32 = Shift_L ISO_Next_Group +<p> +keycode 0x34 = z Z y Y +<p> +keycode 0x35 = x X +<p> +keycode 0x36 = c C +<p> +keycode 0x37 = v V +<p> +keycode 0x38 = b B +<p> +keycode 0x39 = n N +<p> +keycode 0x3A = m M +<p> +keycode 0x3B = comma less comma question +<p> +keycode 0x3C = period greater period colon +<p> +keycode 0x3D = slash question minus underscore +<p> +keycode 0x3E = Shift_R +<p> +keycode 0x62 = Up +<p> +keycode 0x57 = KP_End 1 +<p> +keycode 0x58 = KP_Down 2 +<p> +keycode 0x59 = KP_Next 3 +<p> +keycode 0x6C = KP_Enter Return +<p> +keycode 0x25 = Control_L ISO_Next_Group +<p> +!keycode 0x40 = Alt_L Meta_L +<p> +keycode 0x40 = Meta_L Alt_L +<p> +keycode 0x41 = space +<p> +keycode 0x71 = Alt_R Meta_R +<p> +keycode 0x6D = Control_R +<p> +keycode 0x64 = Left +<p> +keycode 0x68 = Down +<p> +keycode 0x66 = Right +<p> +keycode 0x5A = KP_Insert 0 +<p> +keycode 0x5B = KP_Delete period +<p> +!keysym Alt_L = Meta_L +<p> +!keysym F12 = Multi_key +<p> +clear Shift +<p> +!clear Lock +<p> +clear Control +<p> +clear Mod1 +<p> +clear Mod2 +<p> +clear Mod3 +<p> +clear Mod4 +<p> +clear Mod5 +<p> +add Shift = Shift_L Shift_R +<p> +add Control = Control_L Control_R +<p> +!add Mod1 = Alt_L Alt_R +<p> +add Mod1 = Meta_L Alt_R +<p> +add Mod2 = Num_Lock +<p> +add Mod5 = ISO_Next_Group +<p> +!add Mod1 = +<p> +!add Mod2 = Alt_R Alt_L Mode_switch +<p> +keycode 0x73 = ISO_Next_Group +<p> +keycode 0x74 = dead_acute dead_diaeresis +<p> +keycode 0x75 = dead_caron dead_abovering + +<p> + +_____________________________cut_here_____________________________ + +<sect1>KDE Kimap file for the Slovak language +<p> +Now follows the KDE skz.kimap Config File, modified by me. +You may manipulate this file according to my information and +name it as skz.kimap and copy it to KDE ../kikbd directory mentioned above. +If you want to use your own experimental keyboard layout, manipulate an +existing kimap file but keep a copy of it. + +<p> +_________________________cut_here________________________________ +<p> +<tt>[International Keyboard]</tt> +<p> +Label=Skz +<p> +Locale=sk + +<p> +<tt>[KeyboardMap]</tt> +<p> +CapsSymbols=q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m +<p> +keysym0=1,plus,1,exclam,, +<p> +keysym1=2,mu,2,at,, +<p> +keysym2=3,onesuperior,3,numbersign,, +<p> +keysym3=4,egrave,4,dollar,, +<p> +keysym4=5,0x0bb,5,percent,, +<p> +keysym5=6,threequarters,6,asciicircum,, +<p> +keysym6=7,yacute,7,ampersand,, +<p> +keysym7=8,aacute,8,asterisk,, +<p> +keysym8=9,iacute,9,parenleft,, +<p> +keysym9=0,eacute,0,parenright,, +<p> +keysym10=minus,equal,percent,minus,underscore, +<p> +keysym11=grave,dead_diaeresis,dead_circumflex,grave,asciitilde, +<p> +keysym12=equal,dead_acute,dead_caron,equal,plus, +<p> +keysym13=bracketleft,uacute,slash,bracketleft,braceleft, +<p> +keysym14=bracketright,adiaeresis,parenleft,bracketright,braceright, +<p> +keysym15=semicolon,ocircumflex,quotedbl,semicolon,colon, +<p> +keysym21=y,z,Z,,, +<p> +keysym22=z,y,Y,,, +<p> +<tt>#</tt>I changed some keysyms above ("mu" instead of "lcaron") and added +<tt>#</tt>the following lines: +<p> +keycode43=51,ograve,parenright,backslash,bar, +<p> +keycode40=48,section,exclam,apostrophe,quotedbl, +<p> +keycode51=59,comma,question,less,comma, +<p> +keycode52=60,period,colon,period,greater, +<p> +keycode53=61,minus,underscore,slash,question, +<p> +______________________cut_here___________________________ + +<p> +(The numbers of keycodes are derived from the "xkeycaps" utility) + +<sect1>Character sets + +<p> +The purpose of the following info is to help you build any .Xmodmap +or kimap keyboard layout with iso8859-2 or other character sets. +The ISO-8859-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 +usefull to build a keyboard with ISO-8859-1 characters only, or a +combination of Eastern European characters and Western characters. +If you're going to use other languages than the Central European ones, +find a pertinent table for your ISO*** character set on Internet. +The gdkkeysyms.h file is in (RedHat) /usr/include/gdk/gdkkeysyms.h +and it contains all the special names we're using here (it also +contains names of Greek characters). + +<p> +<sect1>ISO-8859-2 (ISO Latin2) character set + +<p> +octal hex PostScript HTML entity character +<p> +---------------------------------------------------------------------- +<p> +040 0x20 /space + +041 0x21 /exclam ! + +042 0x22 /quotedbl " " + +043 0x23 /numbersign # + +044 0x24 /dollar $ + +045 0x25 /percent % + +046 0x26 /ampersand & & + +047 0x27 /quoteright ' + +<p> +050 0x28 /parenleft ( + +051 0x29 /parenright ) + +052 0x2a /asterisk * + +053 0x2b /plus + + +054 0x2c /comma , + +055 0x2d /hyphen - + +056 0x2e /period . + +057 0x2f /slash / + +<p> +060 0x30 /zero 0 + +061 0x31 /one 1 + +062 0x32 /two 2 + +063 0x33 /three 3 + +064 0x34 /four 4 + +065 0x35 /five 5 + +066 0x36 /six 6 + +067 0x37 /seven 7 + +<p> +070 0x38 /eight 8 + +071 0x39 /nine 9 + +072 0x3a /colon : + +073 0x3b /semicolon ; + +074 0x3c /less < < + +075 0x3d /equal = + +076 0x3e /greater > > + +077 0x3f /question ? + +0100 0x40 /at @ + +0101 0x41 /A A + +0102 0x42 /B B + +0103 0x43 /C C + +0104 0x44 /D D + +0105 0x45 /E E + +0106 0x46 /F F + +0107 0x47 /G G + +<p> +0110 0x48 /H H + +0111 0x49 /I I + +0112 0x4a /J J + +0113 0x4b /K K + +0114 0x4c /L L + +0115 0x4d /M M + +0116 0x4e /N N + +0117 0x4f /O O + +<p> +0120 0x50 /P P + +0121 0x51 /Q Q + +0122 0x52 /R R + +0123 0x53 /S S + +0124 0x54 /T T + +0125 0x55 /U U + +0126 0x56 /V V + +0127 0x57 /W W + +<p> +0130 0x58 /X X + +0131 0x59 /Y Y + +0132 0x5a /Z Z + +0133 0x5b /bracketleft [ + +0134 0x5c /backslash \ + +0135 0x5d /bracketright ] + +0136 0x5e /asciicircum ^ + +0137 0x5f /underscore _ + +<p> +0140 0x60 /quoteleft ` + +0141 0x61 /a a + +0142 0x62 /b b + +0143 0x63 /c c + +0144 0x64 /d d + +0145 0x65 /e e + +0146 0x66 /f f + +0147 0x67 /g g + +<p> +0150 0x68 /h h + +0151 0x69 /i i + +0152 0x6a /j j + +0153 0x6b /k k + +0154 0x6c /l l + +0155 0x6d /m m + +0156 0x6e /n n + +0157 0x6f /o o + +<p> +0160 0x70 /p p + +0161 0x71 /q q + +0162 0x72 /r r + +0163 0x73 /s s + +0164 0x74 /t t + +0165 0x75 /u u + +0166 0x76 /v v + +0167 0x77 /w w + +<p> +0170 0x78 /x x + +0171 0x79 /y y + +0172 0x7a /z z + +0173 0x7b /braceleft { + +0174 0x7c /bar | + +0175 0x7d /braceright } + +0176 0x7e /tilde ~ + +0177 0x7f non-printable + +0240 0xa0 /space + +0241 0xa1 /Aogonek + +0242 0xa2 /breve + +0243 0xa3 /Lslash + +0244 0xa4 /currency + +0245 0xa5 /Lcaron + +0246 0xa6 /Sacute + +0247 0xa7 /section + +0250 0xa8 /dieresis + +0251 0xa9 /Scaron + +0252 0xaa /Scedilla + +0253 0xab /Tcaron + +0254 0xac /Zacute + +0255 0xad /hyphen + +0256 0xae /Zcaron + +0257 0xaf /Zdotaccent + +0260 0xb0 /degree + +0261 0xb1 /aogonek + +0262 0xb2 /ogonek + +0263 0xb3 /lslash + +0264 0xb4 /acute + +0265 0xb5 /lcaron + +0266 0xb6 /sacute + +0267 0xb7 /caron + +0270 0xb8 /cedilla + +0271 0xb9 /scaron + +0272 0xba /scedilla + +0273 0xbb /tcaron + +0274 0xbc /zacute + +0275 0xbd /hungarumlaut + +0276 0xbe /zcaron + +0277 0xbf /zdotaccent + +0300 0xc0 /Racute + +0301 0xc1 /Aacute Á + +0302 0xc2 /Acircumflex  + +0303 0xc3 /Abreve + +0304 0xc4 /Adieresis Ä + +0305 0xc5 /Lacute + +0306 0xc6 /Cacute + +0307 0xc7 /Ccedilla Ç + +<p> +0310 0xc8 /Ccaron + +0311 0xc9 /Eacute É + +0312 0xca /Eogonek + +0313 0xcb /Edieresis Ë + +0314 0xcc /Ecaron + +0315 0xcd /Iacute Í + +0316 0xce /Icircumflex Î + +0317 0xcf /Dcaron + +0320 0xd0 /Eth Ð + +0321 0xd1 /Nacute + +0322 0xd2 /Ncaron + +0323 0xd3 /Oacute Ó + +0324 0xd4 /Ocircumflex Ô + +0325 0xd5 /Ohungarumlaut + +0326 0xd6 /Odieresis Ö + +0327 0xd7 /multiply + +<p> +0330 0xd8 /Rcaron + +0331 0xd9 /Uring + +0332 0xda /Uacute Ú + +0333 0xdb /Uhungarumlaut + +0334 0xdc /Udieresis Ü + +0335 0xdd /Yacute Ý + +0336 0xde /Tcedilla + +0337 0xdf /germandbls ß + +<p> +0340 0xe0 /racute + +0341 0xe1 /aacute á + +0342 0xe2 /acircumflex â + +0343 0xe3 /abreve + +0344 0xe4 /adieresis ä + +0345 0xe5 /lacute + +0346 0xe6 /cacute + +0347 0xe7 /ccedilla ç + +0350 0xe8 /ccaron + +0351 0xe9 /eacute é + +0352 0xea /eogonek + +0353 0xeb /edieresis ë + +0354 0xec /ecaron + +0355 0xed /iacute í + +0356 0xee /icircumflex î + +0357 0xef /dcaron + +0360 0xf0 /dbar + +0361 0xf1 /nacute + +0362 0xf2 /ncaron + +0363 0xf3 /oacute ó + +0364 0xf4 /ocircumflex ô + +0365 0xf5 /ohungarumlaut + +0366 0xf6 /odieresis ö + +0367 0xf7 /divide + +0370 0xf8 /rcaron + +0371 0xf9 /uring + +0372 0xfa /uacute ú + +0373 0xfb /uhungarumlaut + +0374 0xfc /udieresis ü + +0375 0xfd /yacute ý + +0376 0xfe /tcedilla + +0377 0xff /dotaccent + +<p> +---------------------------------------------------------------------- +<p> +First, try to see if definitions will give you (after installing +pertinent fonts and keyboard in X) what they say they are. If they will +not give you what they say they are (some keycodes will be unfunctional), +then you must make a substitution. Definitions which will not give you +what they say they are (when the LC_ALL=language solution does not work) can +be traced by their visual shape in Western Latin 1 encoding. For example, +if you load a Slovak website, do not use ISO8859-2 character set encoding +for viewing, but Western ISO8859-1 encoding for viewing. Thus you will see +bad fonts with letters like micron and so on. You will see what you must +substitute. But if you don't know what "?" is called in ISO terminology, +find and download an appropriate character set table for ISO-8859-1. +(However, much of the information can be used from the above ISO8859-2 +Character Set Table.) It must be somewhere on the net. + +<p> +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 Xmodmap +or kimap file, the X Windows 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. NOTE: vowel *acute signs require no +substitution, therefore I omitted iacute, aacute etc. +<p> +0243 0xa3 /Lslash "Pound" in Xmodmap or kimap file will give you Lslash. +<p> +0245 0xa5 /Lcaron Writing "yen" to kimap or Xmodmap file wil give us Lcaron +<p> +0251 0xa9 /Scaron copyright (will give us Scaron) +<p> +0253 0xab /Tcaron guillemotleft (will give us Tcaron) +<p> +0256 0xae /Zcaron registered +<p> +0265 0xb5 /lcaron mu +<p> +0271 0xb9 /scaron onesuperior +<p> +0273 0xbb /tcaron guillemotright +<p> +0276 0xbe /zcaron threequarters +<p> +0306 0xc6 /Cacute find out yourself +<p> +0312 0xca /Eogonek find out yourself +<p> +0313 0xcb /Edieresis Edieresis +<p> +0314 0xcc /Ecaron find out yourself +<p> +0317 0xcf /Dcaron find out yourself +<p> +0321 0xd1 /Nacute Ograve +<p> +0322 0xd2 /Ncaron find out yourself +<p> +0324 0xd4 /Ocircumflex Ocircumflex +<p> +0350 0xe8 /ccaron egrave +<p> +0361 0xf1 /nacute ntilde +<p> + +You may experiment to find out which definitions will give you which +characters, it shouldn't be difficult. This is just a hint on how to +start. I didn't go on to investigate further definitions because I have +my Slovak and Czech keyboards and I'm not, for now, interested to use +other keyboards. Look at my homage and build your own keyboard. + +</article> +