>>587
どうも。
toggle ではなく off にしたいのでそれはやめておきます。
~/.uim.d/socket/uim-helper で状態みてればいいという話もありますが。
# ~/.uim.d/socket/uim-helper に書くときも必要なときだけの方がいいかも。まあ無条件の方が楽か。

で、原因は判りました。1秒 xterm が止まっているときはこんな状態になっています。
- xterm は XSetICValues 呼んで止まっている。uim-xim のレスポンス待ち。
- uim-xim は main_loop 内の select でブロックしている。これの timeout が 1秒。
- 通常なら XSetICValues の X イベントが来ればその処理に進むはず。
ブロックする理由は以下。
uim-xim は select の結果をみて uim-helper から何か来てればそれを処理する。
この処理内で XTranslateCoordinates を呼んでいる。
このタイミング(select - XTranslateCoordinates 間)で XSetICValues の X イベントが来ると
XTranslateCoordinates が読み込んで event queue に入れる。
既に event queue に入っているものは select では検知できないので、ブロックする。
(event queue は X イベントの処理で空になるので、通常の select 時は空になっている。)

とりあえず ↓ な patch で直りましたので、これで使ってみます。いまのところブロックしてません。
# ほとんど意味がなくなるので timeout 時の check_pending_xevent を消しているけど、
# 要るんかな。1,2秒間隔 XFlush の意味しか残らないけど。

ttp://ja.pastebin.ca/2310350
# uim-1.8.4-check-xevents-queued.patch って書いたらファイル名切れた。32文字か。

しかしコマンド実行後に l を押すくせが抜けない。