<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>International Keyboard Handbook: Creating a new National Keyboard</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="keywords" CONTENT="KDE multilanguage X11">
<META NAME="description" CONTENT="KDE International Keyboard">
</HEAD>
<BODY BGCOLOR="#ffffff" LINK="#aa0000" TEXT="#000000" > 
<FONT FACE="Helvetica">
<A HREF="http://www.kde.org/"><IMG SRC="logotp3.gif" BORDER="0" ALT="The K Desktop Environment"></A>
<HR WIDTH="100%" SIZE=2 ALIGN="CENTER" NOSHADE>

 
<P ALIGN="RIGHT">

<A HREF="kikbd-10.html">Next</A>
<A HREF="kikbd-8.html">Previous</A>
<A HREF="kikbd.html#toc9">Table of Contents</A>
</P>
<H3><A NAME="create"></A> <A NAME="s9">9. Creating a new National Keyboard</A></H3>

<P>
<P>All system-wide keyboard files are stored in <CODE>$KDEDIR/share/apps/kikbd</CODE>
and all personal keyboard files in <CODE>$HOME/.kde/share/apps/kikbd</CODE>.
Each is identified by its file name excluding the <CODE>.kimap</CODE> extension. A
personal keyboard file hides a system keyboard file having the same file name
(not label).
<P>For creating a new keyboard map you should use one of the existing <CODE>.kimap</CODE>
files as a template. Each keyboard file has two major sections.
<P>
<OL>
<LI><B>International Keyboard</B><BR>
In this section the following items can be defined:
<UL>
<LI><CODE>Authors</CODE>:a list of authors, separated by commas, 
in the format "name last_name &lt; email address&gt;";</LI>
<LI><CODE>Comment</CODE>**: a descriptive comment phrase for this keyboard;</LI>
<LI><CODE>Language</CODE>**: the language this keyboard is for;</LI>
<LI><CODE>Charset</CODE>: the charset this keyboard is for;</LI>
<LI><CODE>Locale</CODE>: the locale this keyboard is for;</LI>
<LI><CODE>Label</CODE>*: the label used by <CODE>kikbd</CODE> to identify this keyboard.</LI>
</UL>

* - required<BR>
** - can be translated to other languages
<P>
</LI>
<LI><B>KeyboardMap</B><BR>
This section contains mapping from default symbols to two, three or four
new symbols in the form:
<PRE>
    keysym&lt;num> = &lt;default sym>,&lt;sym1>,&lt;sym2>,&lt;sym3>,&lt;sym4>,
  
</PRE>

and mapping from key codes to symbols:
<PRE>
    keycode&lt;num> = &lt;key code>,&lt;sym1>,&lt;sym2>,&lt;sym3>,&lt;sym4>,
  
</PRE>


Where <CODE>num</CODE> means any unique number, <CODE>sym</CODE> means symbol
in the form of a hexadecimal number or a form interpreted by X11,
<CODE>keycode</CODE> means the decimal code, and <CODE>default sym</CODE> means the
default symbol for this key (before starting <CODE>kikbd</CODE>).
The first two symbols <CODE>sym1, sym2</CODE> define the <I>national</I>
symbols while <CODE>sym3, sym4</CODE> define <I>alternate</I> symbols.
It is preferrable to use only <CODE>keysym</CODE> definitions. 
<P>Additionally, in this section, you can also specify
<I>CapsSymbols</I> as a list of Latin symbols, separated by commas.
which <CODE>kikbd</CODE> should process during <CODE>Caps Lock</CODE> emulation.
</LI>
</OL>
<P>After you create and test a new keyboard map, you could submit
it to the KDE developer team, or directly to the author or
maintainer of <CODE>kikbd</CODE>.
<P>
<P ALIGN="RIGHT">

<A HREF="kikbd-10.html">Next</A>
<A HREF="kikbd-8.html">Previous</A>
<A HREF="kikbd.html#toc9">Table of Contents</A>
</P>
<CENTER>
<HR WIDTH="100%" SIZE=3 ALIGN=CENTER NOSHADE>
</CENTER>    
</FONT>

 
</BODY>
</HTML>
