たわごと (05年01月分)

今月分(ホーム)先月分04年12月分04年11月分04年10月分04年09月分04年08月分04年07月分04年02月分04年01月分03年12月分03年11月分03年8-10月分03年6月分03年1月分02年12月分02年11月分02年10月分02年9月分02年8月分02年7月分02年6月分


05/1/17
●IIIMF

下に書いた説明、嘘のような気がしてきた。
たとえ httx が key イベントを trigger イベントに変換していたとしても、 Shift+Space が conversionOnKeys に設定されていないのならスルーして htt に渡され htt で trigger イベントに変換されるはずだが、httx の場合には Shift+Space では変換モードはオンにならない。
httx は CannaLE を直接呼び出しているということだろうか?
だとしたら、設定を共通化させるには同じ設定ファイルを読みにいくようなことしかない。せっかく階層化するんだったら、ひとつにまとめてすっきりさせてほしいものだが、どうなっているん(どうしていくつもりなん)だろう。xrdb に変わるような設定サーバー&クライアントか?


05/1/12
●お買い物

UML 仕様書 2000円
UML による統一ソフトウェア開発プロセス 105円


05/1/10
●IIIMF

Fedora Core 3 の IIIMF について調べてみた。
まずは、変換開始のキーに Shift+Space が追加されているが、これは、 iiimsf/src/IIIMP_hotkey_profile.cpp の 27 から 32 行目で

    hkid = HOTKEY_ID_TRIGGER_NOTIFY;
    sflag = 0;
    aflag = 1;
    hks.push_back(IMKeySpec(IM_VK_SPACE, 0, IM_CTRL_MASK, 0));
    hks.push_back(IMKeySpec(IM_VK_SPACE, 0, IM_SHIFT_MASK, 0));
    label = "TRIGGER KEYS";
のようにして追加されている。htt サーバーのデフォルトである。
この設定、実は XIM (httx) を使用した場合は使われていない。
XIM では、アプリからのキーイベントは *conversionOnKeys という Xresource の設定に従い trigger イベント (変換モード On/Off) に変換されてから htt に送られる。

アプリ -(key)-> httx -(trigger)-> htt -(trigger)-> CannaLE

GtkIM ではキーイベントのまま送られ htt により、trigger イベントに変換される。

アプリ -(key)-> im-iiim -(key)-> htt -(trigger)-> CannaLE

最も簡単にこの変換モードオンの設定を変える方法は、htt にコマンドラインオプション -conversionkeys を付けることのようである。 しかし、このコマンドラインオプションのためのデフォルトはコードを読むかぎり、 <Ctrl>space とだけしか書いてないのに Shift+space の設定も有効になっている。 つまり、上に書いたコードの部分が設定を上書きしているような気がするのだが本当に大丈夫なのだろうか?
また、スーパーユーザーでしか設定できないこと、XIM に対しては無効なのも問題である。
考えられる簡単かつ比較的美しい方法は、httx がキーイベントをトリガーイベントに変換するのをやめ、その設定を htt のトリガーキー設定のイベントにして送ることであろう。

IIIMF FAQ