Sunday, December 6, 2009

MaemoCJK screencast

MaemoCJK Screencast in the scratchbox environment.

Should work fine with the normal GTK widgets. With the custom widgets (e.g. Nokia browser), the input may not be recognized properly from time to time. The reason is obvious, but I just cannot think of any good solution to work it around at the moment.

Monday, November 9, 2009

working with key event

There's one thing that I'm stuck.

I would like the preedit window to pop up as you type, in the CJK mode. It shouldn't be there all the time. Currently, when I type in "watashi", the character "w" is sent to both the client and the cjk-preedit window. This results in "wわたし" in the client.

As soon as the CJK mode is on, I would like the client to avoid receiving the key events, but HIM plugin doesn't allow me to propagate gdk events. I haven't been able to come up with a good solution for this problem. I tried key_snooper and gtk_invisible, but both aren't good enough.

The best workaround may be to send the backspace to the client just like as follows as in this example.

However, this doesn't work with the browser. This is because for the browser (or any custom gtk input widgets), the example code results in XFakeKeyEvent (Backspace) to the root window and naturally IBus is forced to swallow the Backspace unnecessarily.
I guess this entry is for me to get some structure in my thinking.

Tuesday, October 27, 2009

HIM and IBus

The HIM plugin now talks to Anthy through IBus.

Preedit dialog.

Committed (seemingly) Japanese characters in the google search field.

1) UI polish. Fixing obvious bugs.
2) IBus tweaking. Some UI related daemons may not be necessary for N900
3) Debian packaging
4) Pynin and Hangul support

Sunday, October 18, 2009

IBus 0.1 to 1.2

Ubutntu jaunty by default uses IBus 0.1.

0.1 out of box doesn't allow you to write C code which handles the lookup-table and the auxiliary-text. 0.1 expects you to do this in python. These missing features in C are no showstoppers since most of the UIs are written in python anyway.

With the latest 1.2, these features are added on the C side too, so I wanted to upgrade from 0.1 to 1.2. Some APIs changed here and there, but nothing so major as far as I feel.

During the upgrade, I had to spend sometime to understand why [ja:anthy] didn't appear in the "preload_engines" gconf entry. I assume this is caused by the old gconf setting from the 0.1 time.

I think all the enablers for the C implementation is ready now, I just need more time.

Friday, October 9, 2009

MaemoCJK on Fremantle

You definitely need the CJK input for a cool device like N900.

I thought about continuing with the original SCIM track, but I will try something new now. Here's what I'm going to experiment.

Hildon Input Method <=> Plugin <=> Ibus

The reason for the HIM plugin is that many people would like to switch back
and forth between the Default-HIM & CJK. Additionally, considering
that the Nokia browser doesn't support the preedit properly (i.e.
native SCIM/UIM won't work with the N900 Nokia browser), I thought it was better to have the CJK support as the HIM plugin.

The reason for the Ibus is that the Ibus client implementation can be
really simple. See this as an example.

The screenshot of my prototype application.

Things to do are:

1) Rewrite this python prototype in C
2) Rewrite the above in the form of the HIM Plugin
3) Ibus tweaking. Some UI related daemons may not be necessary for N900
4) UI improvement
5) Debian packaging
6) Pynin and Hangul support