
			kinput2 version 2.0 

	-- an input server for easy input of Japanese text --


Kinput2 is an input server for X11 applications that want Japanese
text input.

A client that wants kana-kanji conversion service for Japanese text
sends a request to kinput2.  Kinput2 receives the request, does
kana-kanji conversion, and sends the converted text back to the
client.


* Kinput2 Features

    Upward-Compatible with Kinput:
	Kinput2 is fully upward-compatible with kinput, which was
	contributed to X11R4. Applications using kinput to input
	Japanese can also use kinput2 without any modification.

    Multiple Input Style:
	Kinput2 supports 4 input styles: root-window, off-the-spot,
	over-the-spot and on-the-spot.

    Multiple Protocol:
	There are several protocols which define how the communication
	between input server and clients should be done.  Kinput2
	implements following protocols:

		* kinput protocol
		* kinput2 protocol
		* Matsushita's jinput protocol
		* Sony's xlc protocol
		* XIMP protocol (X11R5 Ximp implementation)
		* X Input Method Protocol (X11R6 standard)

	If a client can speak at least one of them, the client can
	communicate with kinput2 and get Japanese text.

	The support of X Input Method Protocol is not yet fully tested
	and might have many bugs.

    Multiple Conversion Engine:
	Kinput2 doesn't do actual kana-kanji conversion itself.  There
	are several conversion servers available, so kinput2 uses them
	as its conversion engine.  Kinput2 can connect to the
	following servers:

		* Wnn jserver (version 4 or 6)
		* Canna cannaserver
		* Sj3 sj3serv

	Canna and Sj3 are contributed to X11R6.  Wnn is contributed
	to X11R5.

	You can choose which server to use at compilation time.  If
	you choose more than one, you can choose your favorite engine
	by a command line option when you invoke kinput2.


                                                +-------------------------+
    +---------+                           +---->|        jserver          |
    | client1 |<------+    +---------+    |     | (Wnn conversion daemon) |
    +---------+       +--->|         |<---+     +-------------------------+
                           | kinput2 |<-----+
    +---------+       +--->|         |<--+  |
    | client2 |<------+    +---------+   |  |   +-------------------------+
    +---------+                          |  +-->|      irohaserver        |
                                         |      |(Canna conversion daemon)|
                                         |      +-------------------------+
                                         |
                                         |      +-------------------------+
                                         +----->|        sj3serv          |
                                                | (SJ3 conversion daemon) |
                                                +-------------------------+


* Directories

This directory contains the following subdirectories:

	lib/		source code for a library kinput2 uses
	include/	header files
	cmd/		kinput2 source code
	doc/		various documents
	client/		sample client library and patch to kterm
	ccdef/		character conversion rule files (for Wnn)
	sj3def/		SJ3 user customization files


* Installation

First you have to decide which conversion server to use.  Currently
kinput2 supports 4 servers -- Wnn4 jserver, Wnn6 jserver, Canna
cannasersver and SJ3 sj3serv.  You can choose one of them, or more (in
this case, you can choose the server to use at run time with a command
line option).  Note that you cannot choose both Wnn4 and Wnn6.

You have to compile and install the conversion system (i.e. conversion
server and client-side library to communicate with the server) you
have chosen before making kinput2.  See the documents in each source
directory for their installation and how to get the servers up and
running.

Then, you have to edit Kinput2.conf in this directory.  It is the
global configuration file for kinput2.  See the file for details.

If you're going to generate Makefiles by xmkmf, maybe you should specify
TOP directory in Imakefile in this directory.

Ready?  Now what you should do to build kinput2 is:

	xmkmf
	make Makefiles
	make depend
	make
	make install

During make depend, you may get warning messages that kinput2.c
includes "WcharDisp.h" more than once, which can be ignored.

Don't forget to do 'make install'.  Kinput2 won't run unless its
application default file (cmd/Kinput2.ad) is properly installed.


* How to Use

Please see cmd/kinput2.man for general setting.  Default key bindings
are described in doc/defaultkeys.  Other documents will be found in
doc subdirectory, though they are written in Japanese.


* Clients

Since kinput2 supports many protocols, various clients can use kinput2
as their input server.

First, internationalized clients using X11R6 Xlib can connect to
kinput2 via X Input Method Protocol.

Also internationalized clients using Ximp implementation of X11R5 Xlib
can connect to kinput2 via Ximp protocol.

A Japanized terminal emulator, 'kterm', can also connect to kinput2
via kinput2 protocol.  A sample client-side library source for kinput2
protocol is provided in client subdirectory.  See client/README for
details.


* Changes

The only major change from version 1.0, which was contributed to
X11R5, is the support of the X Input Method Protocol.  There are many
minor changes.  To name a few:

	+ X11R4 support has been removed.  Kinput2 version 2.0 can
	  only be compiled with X11R5 or X11R6.
	+ Support for Canna old version (version 1.x) has been
	  removed.
	+ A copy of a header file defining XIMP protocol constants,
	  XIMProto.h, which originally resides under X11R5 Xlib source
	  directory, is included for convenience.  In version 1.0,
	  X11R5 Xlib source was required for the compilation in order
	  to include this header file.
	+ Asynchronous error handling library (lib/asyncerr.c) is used
	  to prevent excess XSync call when protecting some operations
	  from X errors.


* Bugs

If you find a bug, please send a bug report to kinput2@sra.co.jp.
Please don't forget to include the description of your environment (your
machine, OS version, X window patchlevel, etc.) as well as the version
of kinput2 ("kinput2 -version" prints version information).


* Credits

I wish to thank the following people who have contributed much to this
release:
    Akira Kon, Naoshi Suzuki, Hiroshi Ohta, Masaki Takeuchi, Hideki Hiura,
    Ryuji Ishiguro, Nayuta Taga, Hideyuki Moribe, Kazuki Yasumatsu, the
    members of the kinput2 mailing list and XXI working group.

Also my thanks go to all the people who participated in beta testing of
kinput2.


					Makoto Ishisone
					Software Research Associates, Inc.
					ishisone@sra.co.jp
