old-www/LDP/LG/issue53/sipos.html

637 lines
41 KiB
HTML

<!--startcut ==============================================-->
<!-- *** BEGIN HTML header *** -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML><HEAD>
<title>Setting Up International Keyboards LG #53</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
ALINK="#FF0000">
<!-- *** END HTML header *** -->
<A HREF="http://www.linuxgazette.com/">
<H1><IMG ALT="LINUX GAZETTE" SRC="../gx/lglogo.jpg"
WIDTH="600" HEIGHT="124" border="0"></H1></A>
<!-- *** BEGIN navbar *** -->
<A HREF="okopnik.html"><IMG ALT="[ Prev ]" SRC="../gx/navbar/prev.jpg" WIDTH="16" HEIGHT="45" BORDER="0" ALIGN="bottom"></A>
<IMG ALT=""
SRC="../gx/navbar/left.jpg" WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="bottom" >
<A HREF="index.html"><IMG ALT="[ Table of Contents ]"
SRC="../gx/navbar/toc.jpg" WIDTH="220" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A>
<A HREF="../index.html"><IMG ALT="[ Front Page ]"
SRC="../gx/navbar/frontpage.jpg" WIDTH="137" HEIGHT="45" BORDER="0" ALIGN="bottom"></A>
<A HREF="../faq/index.html"><IMG ALT="[ FAQ ]"
SRC="./../gx/navbar/faq.jpg"WIDTH="62" HEIGHT="45" BORDER="0" ALIGN="bottom"></A>
<A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue53/sipos.html"><IMG ALT="[ Talkback ]" SRC="../gx/navbar/talkback.jpg" WIDTH="121" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A>
<IMG ALT=""
SRC="../gx/navbar/right.jpg" WIDTH="15" HEIGHT="45" ALIGN="bottom" >
<A HREF="stagner.html"><IMG ALT="[ Next ]" SRC="../gx/navbar/next.jpg" WIDTH="15" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A>
<!-- *** END navbar *** -->
<P>
<!-- A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue53/sipos.html">
<FONT SIZE="+2"><EM>Talkback:</EM> Discuss this article with peers</FONT></A -->
<!--endcut ============================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Setting Up International Keyboards</font></H1>
<H4>By <a href="mailto:xvudpapc@savba.sk">Juraj Sipos</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<p><font face="Courier New,Courier"><font size=-1>This xmodmap and kimap
solutions will work for you in setting up any international keyboard for
(Debian, RedHat, Mandrake, Corel Linux) Linux, FreeBSD, OpenBSD, NetBSD
and possibly every Unix that uses Xfree86 and KDE. The advantage of this
package is that it is not architecture specific and will work on SPARK,
MIPS and all other systems. I don't want to say that other packages are
architecture independent, but I don't like writing garbage in the bash_profile
and XF86Config or possibly somewhere else. This was written by Juraj Sipos
(c) on 4/22/2000, <a href="mailto:xvudpapc@savba.sk">xvudpapc@savba.sk</a></font></font>
<p><font face="Courier New,Courier"><font size=-1>INTRODUCTION</font></font>
<p><font face="Courier New,Courier"><font size=-1>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
&oslash; and Portuguese like &ntilde;. 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 and without writing garbage
to bash_profile and XF86Config files. You can also alternatively look at
my homage at <a href="http://www.home.sk/www/man/bsd1.htm">http://www.home.sk/www/man/bsd1.htm</a></font></font>
<br><font face="Courier New,Courier"><font size=-1>to see pictures 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.).</font></font>
<p><font face="Courier New,Courier"><font size=-1>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 with complicated syntax 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 don't function). According to the KDE documentation it should work,
but it doesn't. After exploring many KDE resources on the net, 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 logic 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.</font></font>
<p><font face="Courier New,Courier"><font size=-1>Here are some solutions
for installing international keyboard layouts.&nbsp; The following information
will help you set up any European keyboard layout. The solution works for
Xfree86 in 3.1 RELEASE in FreeBSD (.Xmodmap solution), Corel Linux, Debian
Linux, RedHat and FreeBSD 3.3 RELEASE and 4.0 RELEASE (KDE *.kimap solution).
I tested it on those systems. Note: .Xmodmap solution works well with other
windows managers. 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.</font></font>
<p><font face="Courier New,Courier"><font size=-1>If .Xmodmap solution
doesn't work in KDE, copy skz.kimap (at the end of this article) to /usr/local/share/apps/kikbd,
which is your KDE keyboard directory. The problem with KDE is that after
installing another keyboard, you have no chance to use 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. BUT WHEN YOU INSTALL ANOTHER KEYBOARD in START/SETTINGS/INPUT
DEVICES/INTERNATIONAL KEYBOARDS from your KDE menu, CHECK AUTOSTART. Then
everything will work fine.&nbsp; 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.</font></font>
<p><font face="Courier New,Courier"><font size=-1>How it all works:</font></font>
<p><font face="Courier New,Courier"><font size=-1>a) Copy the "Compose"
file from /usr/X11R6/lib/X11/locale/iso8859-2 to:</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp; /usr/X11R6/lib/X11/locale/iso8859-1&nbsp;
directory (yes, iso8859-1, not iso8859-2). Back up</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp; the original
"Compose" file if you want (alternatively, copy other iso885*** Compose</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp; file to
iso8859-1 directory).</font></font>
<br><font face="Courier New,Courier"><font size=-1>b) Put the included
.Xmodmap file to your root directory (Slovak language, or make your own</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp; .Xmodmap
file) (or possibly put your own *.kimap file to the kikbd directory if
Xmodmap</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp; will not
work)</font></font>
<br><font face="Courier New,Courier"><font size=-1>c) Install ISO8859-2
fonts (or other pertinent fonts).</font></font>
<br><font face="Courier New,Courier"><font size=-1>d) Disable every "Scroll
lock" uncommented line in your XF86Config, because our .Xmodmap</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp; uses scroll
lock to switch between keyboards.</font></font>
<br><font face="Courier New,Courier"><font size=-1>e) Put the appropriate
fontpath for your newly installed fonts in your XF86Config file, if</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp; necessary.</font></font>
<p><font face="Courier New,Courier"><font size=-1>The .Xmodmap solution
may be applied to all&nbsp; X keyboards except Hebrew, I suppose (I'm joking).
The .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.</font></font>
<p><font face="Courier New,Courier"><font size=-1>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 [&aacute;], eacute [&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. I also tried hexadecimal numbers
and they work. However, other&nbsp; 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&nbsp; you
press, you hold it and nothing happens, but after pressing another key
you will get a special letter). 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.</font></font>
<p><font face="Courier New,Courier"><font size=-1>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:</font></font>
<p><font face="Courier New,Courier"><font size=-1>Section "Keyboard"</font></font>
<br><font face="Courier New,Courier"><font size=-1>Protocol "Standard"</font></font>
<br><font face="Courier New,Courier"><font size=-1>XkbRules "xfree86"</font></font>
<br><font face="Courier New,Courier"><font size=-1>XkbModel "pc101"</font></font>
<br><font face="Courier New,Courier"><font size=-1>XkbLayout "us"</font></font>
<p><font face="Courier New,Courier"><font size=-1>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&nbsp; is switched to by scroll lock with .Xmodmap. 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 - 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 use any language in
StarOffice.</font></font>
<p><font face="Courier New,Courier"><font size=-1>Important note: If you
want to exchange documents between StarOffice or WordPerfect and MS Word,
you must include the information about windows 1250 encoding to the file
you write (win1250 is similar to iso8859-2, but it's a little bit different).
There's a solution: use a converter from iso8859-2 to win1250 (you can
find one at my home page at <a href="http://www.home.sk/www/man/bsd1.htm">http://www.home.sk/www/man/bsd1.htm</a>).</font></font>
<p><font face="Courier New,Courier"><font size=-1>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.</font></font>
<p><font face="Courier New,Courier"><font size=-1>For example, the line:</font></font>
<p><font face="Courier New,Courier"><font size=-1>keycode 0x11 = 8 asterisk
aacute 8</font></font>
<p><font face="Courier New,Courier"><font size=-1>(note: keycode 0x11 is
derived from xkeycaps utility)</font></font>
<br><font face="Courier New,Courier"><font size=-1>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 ("&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:</font></font>
<p><font face="Courier New,Courier"><font size=-1>keycode 0x11 = 8 asterisk
semicolon colon</font></font>
<p><font face="Courier New,Courier"><font size=-1>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:</font></font>
<p><font face="Courier New,Courier"><font size=-1>keycode 0x4e = ISO_Next_Group</font></font>
<br><font face="Courier New,Courier"><font size=-1>add mod5 = ISO_Next_Group</font></font>
<p><font face="Courier New,Courier"><font size=-1>etc. You must also keep
in mind that Unixes are case sensitive.</font></font>
<p><font face="Courier New,Courier"><font size=-1>If you want to find out
more about keycodes, install a package "xkeycaps".</font></font>
<p><font face="Courier New,Courier"><font size=-1>________________cut_here__________________________________________________</font></font><font face="Courier New,Courier"><font size=-1></font></font>
<p><font face="Courier New,Courier"><font size=-1>! This is an `xmodmap'
input file for PC 101 key #2 (FreeBSD/XFree86; US)</font></font>
<br><font face="Courier New,Courier"><font size=-1>! keyboards created
by XKeyCaps, modified by Juraj Sipos on 8/17/1999.</font></font>
<br><font face="Courier New,Courier"><font size=-1>! XKeyCaps 2.38 is Copyright
(c) 1997 Jamie Zawinski &lt;jwz@netscape.com.</font></font>
<br><font face="Courier New,Courier"><font size=-1>! http://people.netscape.com/jwz/xkeycaps/
This is an .Xmodmap solution for</font></font>
<br><font face="Courier New,Courier"><font size=-1>! Slovak keyboard. You
must have ISO-8859-2 fonts installed with a</font></font>
<br><font face="Courier New,Courier"><font size=-1>! pointer in /etc/XF86Config</font></font>
<br><font face="Courier New,Courier"><font size=-1>! <b>NOTE: "!" is a
comment. Some information follows but I deleted</b></font></font>
<br><font face="Courier New,Courier"><font size=-1>!<b> it as it is commented
and not important.</b></font></font>
<br><font face="Courier New,Courier"><font size=-1>! If you want to know
what I deleted, start xkeycaps utility and generate your</font></font>
<br><font face="Courier New,Courier"><font size=-1>! own Xmodmap file.</font></font>
<br><font face="Courier New,Courier"><font size=-1>! The "0 Ins" key generates
KP_Insert and KP_0</font></font>
<br><font face="Courier New,Courier"><font size=-1>! The ". Del" key generates
KP_Delete and KP_Decimal</font></font>
<p><font face="Courier New,Courier"><font size=-1>!#define XK_dead_semivoiced_sound
0xFE5F</font></font>
<p><font face="Courier New,Courier"><font size=-1>!dead_iota, dead_voiced_sound,
dead_belowdot, dead_tilde, dead_macron</font></font>
<p><font face="Courier New,Courier"><font size=-1>keycode 0x09 = Escape</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x43 = F1 F11
F1 Multi_key</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x44 = F2 F12
F2 F12</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x45 = F3 F13
F3 F13 idiaeresis</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x46 = F4 F14
F4 F14 mu yen</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x47 = F5 F15
F5 F15 guillemotright guillemotleft</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x48 = F6 F16
F6 F16 ograve</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x49 = F7 F17
F7 dead_abovedot oacute</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x4A = F8 F18
F8 dead_breve acute</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x4B = F9 F19
F9 dead_cedilla ugrave</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x4C = F10 F20
F10 dead_ogonek</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x5F = F11 F21
dead_acute dead_caron</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x60 = F12 F22
dead_abovering dead_diaeresis</font></font>
<br><font face="Courier New,Courier"><font size=-1>!keycode 0x6F = Print
Execute dead_doubleacute dead_circumflex</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x6F = Print
Execute dead_iota</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x4E = ISO_Next_Group</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x6E = Pause</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x31 = grave
asciitilde semicolon dead_diaeresis</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x0A = 1 exclam
plus 1</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x0B = 2 at
mu 2</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x0C = 3 numbersign
onesuperior 3</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x0D = 4 dollar
egrave 4</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x0E = 5 percent
0x0bb 5</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x0F = 6 asciicircum
threequarters 6</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x10 = 7 ampersand
yacute 7</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x11 = 8 asterisk
aacute 8</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x12 = 9 parenleft
iacute 9</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x13 = 0 parenright
eacute 0</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x14 = minus
underscore equal percent</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x15 = equal
plus dead_acute dead_caron</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x33 = backslash
bar ograve parenright</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x16 = BackSpace</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x6A = Insert</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x61 = Home</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x63 = Prior</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x4D = Num_Lock
Pointer_EnableKeys</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x70 = KP_Divide
slash</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x3F = KP_Multiply
asterisk</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x52 = KP_Subtract
minus</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x17 = Tab ISO_Left_Tab</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x18 = q Q</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x19 = w W</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x1A = e E</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x1B = r R</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x1C = t T</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x1D = y Y z
Z</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x1E = u U</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x1F = i I</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x20 = o O</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x21 = p P</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x22 = bracketleft
braceleft acute slash</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x23 = bracketright
braceright diaeresis parenleft</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x24 = Return</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x6B = Delete</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x67 = End</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x69 = Next</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x4F = KP_Home
7 KP_Home</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x50 = KP_Up
8</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x51 = KP_Prior
9</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x56 = KP_Add
plus</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x42 = Caps_Lock</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x26 = a A</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x27 = s S</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x28 = d D</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x29 = f F</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x2A = g G</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x2B = h H</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x2C = j J</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x2D = k K</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x2E = l L</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x2F = semicolon
colon ocircumflex quotedbl</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x30 = apostrophe
quotedbl section exclam</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x53 = KP_Left
4</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x54 = KP_Begin
5</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x55 = KP_Right
6</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x32 = Shift_L
ISO_Next_Group</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x34 = z Z y
Y</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x35 = x X</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x36 = c C</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x37 = v V</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x38 = b B</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x39 = n N</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x3A = m M</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x3B = comma
less comma question</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x3C = period
greater period colon</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x3D = slash
question minus underscore</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x3E = Shift_R</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x62 = Up</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x57 = KP_End
1</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x58 = KP_Down
2</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x59 = KP_Next
3</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x6C = KP_Enter
Return</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x25 = Control_L
ISO_Next_Group</font></font>
<br><font face="Courier New,Courier"><font size=-1>!keycode 0x40 = Alt_L
Meta_L</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x40 = Meta_L
Alt_L</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x41 = space</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x71 = Alt_R
Meta_R</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x6D = Control_R</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x64 = Left</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x68 = Down</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x66 = Right</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x5A = KP_Insert
0</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x5B = KP_Delete
period</font></font>
<p><font face="Courier New,Courier"><font size=-1>!keysym Alt_L = Meta_L</font></font>
<br><font face="Courier New,Courier"><font size=-1>!keysym F12 = Multi_key</font></font>
<p><font face="Courier New,Courier"><font size=-1>clear Shift</font></font>
<br><font face="Courier New,Courier"><font size=-1>!clear Lock</font></font>
<br><font face="Courier New,Courier"><font size=-1>clear Control</font></font>
<br><font face="Courier New,Courier"><font size=-1>clear Mod1</font></font>
<br><font face="Courier New,Courier"><font size=-1>clear Mod2</font></font>
<br><font face="Courier New,Courier"><font size=-1>clear Mod3</font></font>
<br><font face="Courier New,Courier"><font size=-1>clear Mod4</font></font>
<br><font face="Courier New,Courier"><font size=-1>clear Mod5</font></font>
<p><font face="Courier New,Courier"><font size=-1>add Shift = Shift_L Shift_R</font></font>
<br><font face="Courier New,Courier"><font size=-1>add Control = Control_L
Control_R</font></font>
<br><font face="Courier New,Courier"><font size=-1>!add Mod1 = Alt_L Alt_R</font></font>
<br><font face="Courier New,Courier"><font size=-1>add Mod1 = Meta_L Alt_R</font></font>
<br><font face="Courier New,Courier"><font size=-1>add Mod2 = Num_Lock</font></font>
<br><font face="Courier New,Courier"><font size=-1>add Mod5 = ISO_Next_Group</font></font>
<br><font face="Courier New,Courier"><font size=-1>!add Mod1 =</font></font>
<br><font face="Courier New,Courier"><font size=-1>!add Mod2 = Alt_R Alt_L
Mode_switch</font></font>
<p><font face="Courier New,Courier"><font size=-1>keycode 0x73 = ISO_Next_Group</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x74 = dead_acute
dead_diaeresis</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode 0x75 = dead_caron
dead_abovering</font></font>
<p><font face="Courier New,Courier"><font size=-1>_____________cut_here__________________________________________________________</font></font>
<p><font face="Courier New,Courier"><font size=-1># KDE skz.kimap Config
File, modified by Juraj Sipos</font></font>
<br><font face="Courier New,Courier"><font size=-1># name this file as
skz.kimap and copy it to KDE .../kikbd directory</font></font>
<p><font face="Courier New,Courier"><font size=-1>[International Keyboard]</font></font>
<br><font face="Courier New,Courier"><font size=-1>Label=Skz</font></font>
<br><font face="Courier New,Courier"><font size=-1>Locale=sk</font></font>
<p><font face="Courier New,Courier"><font size=-1># *** here was some info
I deleted.</font></font>
<p><font face="Courier New,Courier"><font size=-1>[KeyboardMap]</font></font>
<br><font face="Courier New,Courier"><font size=-1>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</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym0=1,plus,1,exclam,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym1=2,mu,2,at,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym2=3,onesuperior,3,numbersign,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym3=4,egrave,4,dollar,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym4=5,0x0bb,5,percent,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym5=6,threequarters,6,asciicircum,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym6=7,yacute,7,ampersand,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym7=8,aacute,8,asterisk,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym8=9,iacute,9,parenleft,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym9=0,eacute,0,parenright,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym10=minus,equal,percent,minus,underscore,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym11=grave,dead_diaeresis,dead_circumflex,grave,asciitilde,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym12=equal,dead_acute,dead_caron,equal,plus,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym13=bracketleft,uacute,slash,bracketleft,braceleft,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym14=bracketright,adiaeresis,parenleft,bracketright,braceright,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym15=semicolon,ocircumflex,quotedbl,semicolon,colon,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym21=y,z,Z,,,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keysym22=z,y,Y,,,</font></font>
<br><b><font face="Courier New,Courier"><font size=-1># I changed some
keysyms above (as "mu" instead of "lcaron") and added the following lines</font></font></b>
<br><font face="Courier New,Courier"><font size=-1>keycode43=51,ograve,parenright,backslash,bar,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode40=48,section,exclam,apostrophe,quotedbl,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode51=59,comma,question,less,comma,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode52=60,period,colon,period,greater,</font></font>
<br><font face="Courier New,Courier"><font size=-1>keycode53=61,minus,underscore,slash,question,</font></font>
<br><font face="Courier New,Courier"><font size=-1>____cut_here___________________________________________________________________________</font></font>
<p><font face="Courier New,Courier"><font size=-1>(The numbers of keycodes
are derived from the "xkeycaps" utility)</font></font>
<p><font face="Courier New,Courier"><font size=-1>The purpose of the following
info is to help you build any .Xmodmap keyboard layout with iso8859-2 or
other character sets.&nbsp; 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).</font></font>
<p><b><font face="Courier New,Courier"><font size=-1>UNIX</font></font></b>
<p><b><font face="Courier New,Courier"><font size=-1>ISO-8859-2 (ISO Latin2)
character set</font></font></b>
<p><b><font face="Courier New,Courier"><font size=-1>octal hex (you can
use it for other languages too)</font></font></b>
<p><font face="Courier New,Courier"><font size=-1>----------------------------------------------------------------------</font></font>
<br><font face="Courier New,Courier"><font size=-1>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 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 &frac34; and so on. You will see what you must
substitute. But if you don't know what "&frac34;" is called in ISO terminology,
find and download an appropriate character set table for ISO-8859-1. It
must be somewhere on the net. The symbols on your right (for example, mu
[micro], which is &micro;, will give you lcaron instead of &micro;) will
give you what's on their left. NOTE: vowel *acute signs require no substitution,
therefore I omitted iacute (&iacute;), aacute (&aacute;), etc.&nbsp;</font></font>
<p><font face="Courier New,Courier"><font size=-1>0243 0xa3 /Lslash &pound;&nbsp;&nbsp;&nbsp;&nbsp;
(Explanation: writing the name of &pound; ["pound" in our case]</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
to Xmodmap or kimap file will give you Lslash. But Lslash can be</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
obtained by a dead_caron - you press a dead_caron and L). The sign</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
on the right, if put in Xmodmap or kimap files, will</font></font>
<br><font face="Courier New,Courier"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
print you the character which is on its left</font></font>
<br><font face="Courier New,Courier"><font size=-1>0245 0xa5 /Lcaron &yen;&nbsp;&nbsp;&nbsp;&nbsp;
Thus, writing "yen" to kimap or Xmodmap file will give us Lcaron</font></font>
<br><font face="Courier New,Courier"><font size=-1>0251 0xa9 /Scaron &copy;&nbsp;&nbsp;&nbsp;&nbsp;
copyright (will give us Scaron)</font></font>
<br><font face="Courier New,Courier"><font size=-1>0253 0xab /Tcaron &laquo;&nbsp;&nbsp;&nbsp;&nbsp;
guillemotleft (will give us Tcaron)</font></font>
<br><font face="Courier New,Courier"><font size=-1>0256 0xae /Zcaron &reg;&nbsp;&nbsp;&nbsp;&nbsp;
registered</font></font>
<br><font face="Courier New,Courier"><font size=-1>0265 0xb5 /lcaron &micro;&nbsp;&nbsp;&nbsp;&nbsp;
mu</font></font>
<br><font face="Courier New,Courier"><font size=-1>0271 0xb9 /scaron &sup1;&nbsp;&nbsp;&nbsp;&nbsp;
onesuperior</font></font>
<br><font face="Courier New,Courier"><font size=-1>0273 0xbb /tcaron &raquo;&nbsp;&nbsp;&nbsp;&nbsp;
guillemotright</font></font>
<br><font face="Courier New,Courier"><font size=-1>0276 0xbe /zcaron &frac34;&nbsp;&nbsp;&nbsp;&nbsp;
threequarters</font></font>
<br><font face="Courier New,Courier"><font size=-1>0306 0xc6 /Cacute &AElig;&nbsp;&nbsp;&nbsp;&nbsp;
find out yourself</font></font>
<br><font face="Courier New,Courier"><font size=-1>0312 0xca /Eogonek &Ecirc;&nbsp;&nbsp;&nbsp;
find out yourself</font></font>
<br><font face="Courier New,Courier"><font size=-1>0313 0xcb /Edieresis
&Euml;&nbsp; Edieresis</font></font>
<br><font face="Courier New,Courier"><font size=-1>0314 0xcc /Ecaron &Igrave;&nbsp;&nbsp;&nbsp;&nbsp;
find out yourself</font></font>
<br><font face="Courier New,Courier"><font size=-1>0317 0xcf /Dcaron &Iuml;&nbsp;&nbsp;&nbsp;&nbsp;
find out yourself</font></font>
<br><font face="Courier New,Courier"><font size=-1>0321 0xd1 /Nacute &Ntilde;&nbsp;&nbsp;&nbsp;&nbsp;
Ograve</font></font>
<br><font face="Courier New,Courier"><font size=-1>0322 0xd2 /Ncaron &Ograve;&nbsp;&nbsp;&nbsp;&nbsp;
find out yourself</font></font>
<br><font face="Courier New,Courier"><font size=-1>0324 0xd4 /Ocircumflex
&Ocirc; Ocircumflex</font></font>
<br><font face="Courier New,Courier"><font size=-1>0325 0xd5 /Ohungarumlaut
&Otilde; find out yourself</font></font>
<br><font face="Courier New,Courier"><font size=-1>0330 0xd8 /Rcaron &Oslash;&nbsp;&nbsp;&nbsp;&nbsp;
find out yourself</font></font>
<br><font face="Courier New,Courier"><font size=-1>0331 0xd9 /Uring &Ugrave;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
find out yourself</font></font>
<br><font face="Courier New,Courier"><font size=-1>0333 0xdb /Uhungarumlaut
&Ucirc;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0336 0xde /Tcedilla
&THORN;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0343 0xe3 /abreve &atilde;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0345 0xe5 /lacute &aring;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0346 0xe6 /cacute &aelig;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0350 0xe8 /ccaron &egrave;&nbsp;&nbsp;&nbsp;
egrave</font></font>
<br><font face="Courier New,Courier"><font size=-1>0352 0xea /eogonek &ecirc;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0354 0xec /ecaron &igrave;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0357 0xef /dcaron &iuml;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0361 0xf1 /nacute &ntilde;&nbsp;&nbsp;&nbsp;
ntilde</font></font>
<br><font face="Courier New,Courier"><font size=-1>0362 0xf2 /ncaron &ograve;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0365 0xf5 /ohungarumlaut
&otilde;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0370 0xf8 /rcaron &oslash;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0371 0xf9 /uring &ugrave;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0373 0xfb /uhungarumlaut
&ucirc;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0376 0xfe /tcedilla
&thorn;</font></font>
<br><font face="Courier New,Courier"><font size=-1>0377 0xff /dotaccent
&yuml;</font></font>
<p><font face="Courier New,Courier"><font size=-1>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.&nbsp; Look at my homage
and build your own keyboard.</font></font>
<br>&nbsp;
<p><font face="Courier New,Courier"><font size=-1>Enjoy.</font></font>
<br><font face="Courier New,Courier"><font size=-1>Juraj Sips</font></font>
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2000, Juraj Sipos<BR>
Published in Issue 53 of <i>Linux Gazette</i>, May 2000</H5>
<!-- *** END copyright *** -->
<!--startcut ==========================================================-->
<!-- P --> <HR> <!-- P -->
<!-- A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue53/sipos.html">
<FONT SIZE="+2"><EM>Talkback:</EM> Discuss this article with peers</FONT></A -->
<P>
<!-- *** BEGIN navbar *** -->
<A HREF="okopnik.html"><IMG ALT="[ Prev ]" SRC="../gx/navbar/prev.jpg" WIDTH="16" HEIGHT="45" BORDER="0" ALIGN="bottom"></A>
<IMG ALT=""
SRC="../gx/navbar/left.jpg" WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="bottom" >
<A HREF="index.html"><IMG ALT="[ Table of Contents ]"
SRC="../gx/navbar/toc.jpg" WIDTH="220" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A>
<A HREF="../index.html"><IMG ALT="[ Front Page ]"
SRC="../gx/navbar/frontpage.jpg" WIDTH="137" HEIGHT="45" BORDER="0" ALIGN="bottom"></A>
<A HREF="../faq/index.html"><IMG ALT="[ FAQ ]"
SRC="./../gx/navbar/faq.jpg"WIDTH="62" HEIGHT="45" BORDER="0" ALIGN="bottom"></A>
<A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue53/sipos.html"><IMG ALT="[ Talkback ]" SRC="../gx/navbar/talkback.jpg" WIDTH="121" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A>
<IMG ALT=""
SRC="../gx/navbar/right.jpg" WIDTH="15" HEIGHT="45" ALIGN="bottom" >
<A HREF="stagner.html"><IMG ALT="[ Next ]" SRC="../gx/navbar/next.jpg" WIDTH="15" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A>
<!-- *** END navbar *** -->
</BODY></HTML>
<!--endcut ============================================================-->