[m17n-lib:00117] Re: [Uim] Re: Re: SCIM help for M17N input methods (was: Custom Keyboard Layout Editor/Interpreter for SCIM)

Kenichi Handa handa at m17n.org
Wed Feb 23 03:32:14 EET 2005

In article <200502220908.j1M98aN6006665 at mbox00.iij4u.or.jp>, YamaKen <yamaken at bp.iij4u.or.jp> writes:
>>  > (4) For loading and saving the customization.
>>  We have not yet implemented (4).  Do you think it's surely
>>  necessary?

> I think that selecting better way should be based on user
> convenience and your own development/maintenance cost.

Implementing (4) is quite easy in m17n-lib.  Just to recode
all calls of minput_assign_command_keys and
minput_set_variable into a plist, and to call a plist
serializing (into an M-text) function.

I'm also going to implement functions to
serialize/deserialze a plist to/form XML.  So, it's possible
to store the customization data in XML.

But, having such functions only for m17n-lib input methods
is not that useful for users.  The better is that all of
m17n-lib, SCIM, and UIM uses the common format and semantics
of customization data.

> uim can save the customization using uim's own facility or
> m17n's one as required, although some key binding customization
> data overriding m17nlib's one will be saved into uim's facility
> to preserve uim-dependent special key handling information (such
> as chord operation). The implementation cost for uim may
> approximately be same in both ways.

> Since I don't know what amount and variety of the customization
> items exist, my opinion should be ignored if inappropriate.

My proposal for the variety of customazation data is as

(1) command key customization

A command is an action of an input method invoked when a
user types a keyseq assigned to that command.  A command has
a name, description (and optional detail description), and
global and local (per input-method) keyseq assignments.
Multibyte keyseqs can be assigned to the same command, and
the same keyseq can be assigned to multiple commands.

There should be a common name and semantics (action)
definition for each command.  For instance, "commit" command
is to "commit the currnet preedit text", "first-candidate"
command is to "select the first candidate of the current
candidate group".  The file im-cmd.tbl in imtest.tar.gz is
our proposal for such commands.

(2) variable customization

A variable is to control the behaviour of an input method in
various way, e.g. to select a specific mode, to specify what
kind of characters to be input, etc.  A variable has a name,
description (and optional detail description), global and
local initial value, and optional specification for a range
of valid values.

There should also be a comman name and semantics (how to
control the IM behaviour) as well.

For instance, isn't it good that a user can customize the
single variable, say "cjk-punctuation", for all CJK input
methods to select which kind of comma and period should be
generated (i.e. ASCII-comma/period, full-width-comma/period,
or touten/kuten (U+3001/U+3002))?

Do SCIM or UIM use the other kind of customization data?

Ken'ichi HANDA
handa at m17n.org

More information about the uim mailing list