Build767での日本語入力
olpc-ja MLでもちょっと書いたのですが、新しい8.2-767上で日本語入力の設定を調べてみました。
普通にSCIMを入れてみる
以前のバージョンで行っていた手順でSCIMを入れます。
しかし、Ctrl-Spaceを押してもIMEが上がってきません。SCIMのデーモンは動いているように見えます。
Fedora9になって依存関係が変わったようで、なにやらたくさんのrpmも一緒にインストールされるのが気に入りません。
ibusを入れてみる
SCIMの直し方のヒントが見つからなくて、検索した際にFedora9で動いたと記述があった、ibus (ibus-anthy)を試してみました。
ibusは、RedHatの人が中心になって開発している新しいInputMethodのフレームワークです。SCIMとの大きな違いとして、dbusベースのAPIを使用していることが大きな特徴です。詳細は、http://ibus-user.googlegroups.com/web/ibus.pdf に説明があります。
今回ibusを試したもう一つの理由は、ibusが XOの将来のOSでのInputMethodの候補としても検討されていることです。直近のバージョンではSCIMが候補ですが、ibusへの移行の容易さも考慮されたようです。
まだいろいろ開発中ではありますが、Fedora9ではyumで普通に入りました。
.xsessionは次のように書きます。
export XMODIFIERS=@im=ibus export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus ibus &
あと、ibus-setupでAnthyを使うように指定しましたが、この指定が効いているかどうかは不明です。
ibusでもやはりCtrl-SpaceでIMEが上がってきませんでした。しかし、色々試しているうちに、TerminalアクティビティだけはIMEが起動されて入力できることがわかりました。
Terminal以外でも入力できるようにするには?
OLPCでは子供に安全に自由に使ってもらうために、セキュリティを大変重要視しています。IvanのBitfrost platformのサブセットである、アクティビティ間の分離機能をRainbowをOS上のサービスの一部として実装しています。8.2-767が前バージョンの8.1と大きく変わった点の一つとして、このRainbowによる分離がデフォルトでONになっていることがあり、これが怪しい気がします。
通常のユーザ向けアクティビティと異なり、Terminalはいろんな管理作業を行えるよう、セキュリティ上の扱いが異なります。TerminalアクティビティだけIMEが動くというのは、重要なヒントです。
そこで、実験的にアクティビティ分離を停止して試してみます。
アクティビティ分離の停止方法は、Wikiのここに説明があります。
その結果、Terminal以外でもibus-anthyでIMEによる入力ができました。
再度SCIMに挑戦する
ibusでの回避手段を見つけたことに気をよくして、再度SCIMに挑戦してみます。
Fedora9での事例やscimのエラーメッセージでいろいろ検索した結果、scim-lang-japaneseをインストールした上で、
.xsessionはこのように変更したら、動くようになりました。
export LC_TYPE="ja_JP.UTF-8" export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=scim-bridge export QT_IM_MODULE=scim export USE_XOPENIM=t scim -d &
この場合でも、アクティビティ分離を停めないとTerminal以外でのIME入力はできません。
今後の課題
実験的な回避手段としては使えると思いますが、Rainbowを停めていることで動かないアクティビティがあったり、本来のセキュリティではないので、このままでは実用には耐えられませんので、MichaelやSayaminduに相談して、Rainbowの中で動作できるように研究してみたいと思います。