FreeBSD6.0、qt-3.3.4、kde-3.4.2、ja-kde-i18n-3.4.2、skim-1.4.0_1、scim-1.4.0、 ja-scim-uim-0.1.3_3、ja-uim-0.4.9.1、ja-anthy-6700bを用いて、 on the spot で日本語入力をする。 http://www.scim-im.org/wiki/documentation # 基本的にトライアンドエラーで挙動を確認しており、間違った部分がある可能性が # 高いのであしからず。 変換の流れ この構成だと、 ・skimは、scimの起動や設定をするためのフロントエンドで日本語入力には 絡んでいない(多分)。 ・scimが、アプリケーションから入力を受け取る(一部後述)。 ・scim-uimが、scimから受け取ったデータを(多分プロトコルの変換なんかをして) uimに渡す。 ・uimは、scimから受け取ったデータを(多分プロトコルの変換なんかをして) 変換サーバに渡す。 ・anthyは、辞書を持った変換サーバで、uimにもらったデータをかなや漢字に直して 返す。 ・uimが、返されたデータを(多分またプロトコルの変換なんかをして)scim-uimに 返す。 ・scim-uimが、返されたデータを(多分またプロトコルの変換なんかをして)scimに 返す。 scimが、アプリケーションに日本語のデータを返す(一部後述)。 といった流れになるはず。 # scim>uimの流れが無駄に見えるかもしれないが、フロントエンドに近い部分をscim、 # 変換サーバ近い部分をuimと、役割分担をしているのだと思う(多分)。少なくとも、 # 変換エンジンの切替えが手軽にできるというメリットがある。 構成が違えば、scimがanthyと直接データのやりとりをしたり(scim-uimではなく scim-anthyを使う)、アプリケーションがuimと直接データのやりとりをする 場合もある。scim-anthyを使うケースは、Webでも解説をよく見るが、変換エンジンや 言語の切り替えを行わないなら、そっちの方がスッキリするのかもしれない。 Xの設定 ~/.xinitrcに export LC_CTYPE="ja_JP.eucJP" export LANG="ja_JP.eucJP" export LC_ALL="ja_JP.eucJP" # scim公式ページのドキュメントではja_JP.UTF-8が推奨されているが、 # 筆者は上記の設定で使っている(もちろん、ja_JP.UTF-8でも問題なく動いた) の3行のうちいずれか(scim公式ページのドキュメントによると、LC_ALLの指定は 推奨されていない)と export XMODIFIERS="@im=SCIM" export GTK_IM_MODULE="scim" export QT_IM_MODULE="scim" の3行を書いておく(大文字小文字の区別に注意)。 # 公式サイトには、qt-immodule patch が当たっていて、scim-qtimmが入って # いなければならないとあるが、筆者の環境ではとくに何もしなくても # 上記の設定で大丈夫だった。何かの理由でqtやgtkがscimと直接通信できない場合、 # export QT_IM_MODULE="xim" などと、scimではなくximを指定すればXIM経由で入力可能。 OpenOfficeを使う場合は USE_XOPENIM=t も必要らしい。 QT_IM_MODULE="scim"とQT_IM_MODULE="xim"についてだが、これはアプリ>QT>scimと データを直接渡すのか、アプリ>QT>X>scimとXを挟んで渡すのかの違い(のはず)。 ximは古い規格なので、scimの本領を発揮するには直接通信した方がよい。 QTの設定 rootユーザーでqtconfigを実行し、InterfaceタブのXIM Input Style を on the spot にしておく。 SCIMの設定 # ~/.kde/share/config/skimrcが設定ファイルで、手書きでもある程度設定できる。 skimを使うための設定 ・skimのアイコン(なければskim -d なりskim -f なりで呼び出す)を右クリック >設定を選び、フロントエンド>SCIM全般>その他で、パネルプログラムを scim-panel-kdeに、設定モジュールをkconfigにする。 ・フロントエンド>Xウィンドウで、KDEの起動時にskimを開始するにチェックを入れる。 On the Spot で変換する(インライン入力)ための設定 ・フロントエンド>SCIM全般>全般で、未確定文字列をクライアントのウィンドウに 表示にチェックを入れる(これはscimを使うすべてのアプリケーションに適用される)。 ・フロントエンド>Xウィンドウで、Dynamic Event Flow にチェックを入れ、 On the Spot にチェックを入れる。(これはxim経由でscimを使う アプリケーションにのみ適用される) # scimの設定を変更した後はXを再起動しておく(放置すると挙動がおかしくなる)。 その他の設定 http://www.h4.dion.ne.jp/~apricots/scim-anthy/howto.html http://www.scim-im.org/wiki/documentation/usage_of_scim/skim_setup_kde パネル ・skimプラグイン:文字どおり使用するプラグインを選択する。メインツールバー (「あ」とか「R」とかが入ったツールバー)にも反映される(全体設定ダイアログを 消してしまうと、設定ファイルを手で書き換えないと復旧できなくなる、はず)。 composit:候補ウィンドウなどを半透明化するためのモジュールらしい。 ・トレイアイコン:あまり使わないが、筆者は終了ボタンを追加している。 ・メインツールバー:埋め込み型にすると、メインツールバーがKDEのタスクバーに 入る。独立型だと普通に表示される。オートスナップは、メインツールバーを 動かしたときに自動で画面左右(近い方)の端にくっつく機能。 ・入力ウィンドウ:縦型ウィンドウは、文字どおり変換候補ウィンドウを縦型にする。 幅の最小化も文字どおり。固定ウィンドウは、変換候補ウィンドウを(画面端ではなく) 文字を入力している場所の付近にもってくる。埋め込み候補ウィンドウは効果が わからなかった(EmbeddedLookupTableのこと?)。 IMエンジン ・全体設定:利用するIMエンジンを選択する。通常は、日本語1種類と 直接入力だけでよいと思う。 フロントエンド ・SCIM全般:全てのアプリケーションで入力メソッドを共有は、試していないが、 scimのオンオフをアプリケーション間で引き継ぐということか。 ・Xウィンドウ:Dynamic Event Flow はキーイベントの取得方法のことらしく、 Static Event Flow の方が安定して動くのだが、互換性に一部問題が出るそうな。 バッドノウハウ KDE上でscim-panel-kdeやkconfig以外のパネルや設定モジュールを選択すると、 scimがゾンビ化(killしてもすぐ復活する)して元に戻せなくなることがあるが、 ~/.kde/share/config/skimrcを手書きで修正してやれば元に戻る。 上記の場合に限らず、いつ必要になるかわからないので、skimrcのバックアップは 必ず取っておく。 その他のバッドノウハウは期間限定メモに書いたが、2004年10月ごろの記述なので 現在は問題にならないものもある(scim-1.4で突然日本語が入力できなる症状は まだ見ていないし、scim-panel-kdeはシェルスクリプトではなくなった)。