[SCIM] SCIM and Wubi

Alexander Poquet atp at csbd.org
Sat Jul 3 01:40:01 PDT 2004


Hi folks.

I recently moved from XCIN over to SCIM because it really has become a
superior system.  Good work.

However, I have a problem with the Wubi input method.  Usually I like
to type with Wubi because it is fast.  When typing English, I use the
dvorak keyboard layout for the same reason.

The problem is that Wubi is a structural input method.  That is to say,
the letter which is on the key is not important; rather, its position
on the keyboard is important.  Those of you that type Wubi know that
it divides the keyboard into 5 zones based on stroke, and further
subdivides those zones based on the number of strokes.

The problem is that because I use dvorak and not qwerty, the key in
the 'q' position is not q, for example, it is an apostrophe (').
Essentially all the keys are in completely different places.

This makes Wubi very hard to type.
It also makes it less efficient, because before all similar strokes
were grouped together, but now they are scattered all over the
keyboard.

This was a problem in XCIN too.  What I did in XCIN was simply write
a perl script to remap all the keys to dvorak, so a sequence like 'cex'
would become 'j.q' (because the key in the c position is a j in dvorak,
etc).  This worked fine, although it was an ugly hack.

In SCIM, I cannot seem to do this.  Looking over the code for
scim-make-table, it appears that punctuation characters are not allowed
in the table.  This is a problem for dvorak keyboards.

Now, I am not much of an X programmer, but the most elegant way to cope
with this sort of problem is to somehow allow tables to bypass the
higher levels of XKB and deal with keycodes directly.  I do not know
how difficult this would be.

Admittedly, dvorak is used by only a minority of people, but many non-
qwerty layouts are in widespread use (AZERTY in France, for example).

This annoys me enough that I would be willing to lend coding time to
fix it.

As far as I am concerned, any structural layout (ie, non-phonetic)
should probably operate using key position rather than key value.  If
I understand properly, X already provides us with the layout of the
keyboard (physically) through XKB.

As a disclaimer, I am a C programmer.  C++ has never been my thing. :)

Alexander



More information about the scim mailing list