About uim-xim
*uim package includes an XIM server named uim-xim.

XIM is a legacy protocol and has many severe restrictions.
However, there are many software which supports only XIM
protocol to input text especially in Japanese.
So, I had written uim-xim as a tentative tool.

Currently, uim-xim has many defects. Some of them can be
fixed. But the real way to go is to discard XIM itself.
*We already have gtk immodule version of uim.
*Project to make fully pluggable input method
 for Qt is in progress.

Main defects of uim-xim
*Only supports Japanese.

If someone want uim-xim to support specific another
language, say Chinese, please tell me so. I will try
or give some advice to you.

How to use uim-xim
(1) Invoke uim-xim. You can choose default conversion engine with
    --engine=ENGINE option (replace ENGINE with one of anthy, prime,
    skk, tcode, tutcode, and you can get availble engines with
    invoking uim-xim --list).  Default conversion engine is anthy.
(2) Set XMODIFIERS=@im=uim
    and invoke client.
(3) Set UIM_CANDWIN_PROG before calling uim-xim if you want to use other
    candidate helper such as uim-helper-candwin-qt*, uim-helper-candwin-xaw*,
    and so on.
    (* uim-helper-candwin-qt and uim-helper-candwin-xaw is not implemented yet.)

     sh:  UIM_CANDWIN_PROG=uim-helper-candwin-qt export UIM_CANDWIN_PROG
     csh: setenv UIM_CANDWIN_PROG uim-helper-candwin-qt

    If nothing specified and using GTK+, uim-helper-candwin-gtk become default.
    Or if nothing specified and not using GTK+, candidate helper is not used
    as default.
(4) Backend conversion engines are dynamically changeable using helper applet.

How to use extra modifier keys
uim supports 'Super' and 'Hyper' modifier keys for customized
key operations. Try following steps to enable the feature.
(1) map arbitrary keys to Super and Hyper keys
  xmodmap -e 'keycode 115 = Super_L'      # left Windows key
  xmodmap -e 'keycode 116 = Super_R'      # right Windows key
  xmodmap -e 'add mod3 = Super_L Super_R' # uim-xim treats mod3 as Super

  xmodmap -e 'keycode 117 = Hyper_L'      # 'Application' key
  xmodmap -e 'add mod4 = Hyper_L'         # uim-xim treats mod4 as Hyper

(2) define your own key-bindings
  (define-key generic-cancel-key? "<Super>g")
  (define-key generic-return-key? "<Hyper>m")

Bypassing uim temporarily
uim has 'emergency key' feature to bypass uim temporarily. This
is useful with some applications.

(1) Set the environment variable as follows
  LIBUIM_ENABLE_EMERGENCY_KEY=1

(2) Press Shift + Backspace to disable/enable uim key
    processing. Key inputs are directly passed to applications
    while uim key processing is disabled by emergency key.

--
Yusuke TABATA
