Ubuntu Weekly Recipe

第274回Fcitxを使用する

今となっては「日本語入力」というのは不正確で「インプットメソッド(入力メソッド⁠⁠」という言い方が正確なのですが、わかりやすいのでここでは日本語入力としましょう。もちろんUbuntuの連載なのでUbuntu固有のことについて述べます。

昨今の日本語入力事情

Ubuntu 13.04では、表面的には日本語入力に関して大きな変化はありませんでした。IBusも1.4系列の最新版(そしてたぶん最終版)の1.4.2です。しかし内部的には大きく変わっています。と言うのも、日本語入力を自動的に起動するしくみとして、これまでは[im-switch]を採用していましたが、13.04からは[im-config]になりました。しかし、この変化を通常は意識することはないでしょう。明確なメリットとしては、今まではときどきインジケーターにIBusのアイコンが表示されないことがありましたが、これが最終的に解決されたことです[1]⁠。しかも、upstartの新機能で起動しています[2]⁠。

次はIBusの話に移りますが、先程も申し上げたとおり13.04のIBusは1.4.2です。しかし、本稿執筆時のIBusの最新版は1.5.2です。IBusを最新版にしていないのには理由があり、GNOME 3.6以降にIBusが統合されたのです[3]⁠。⁠統合」というとIBusの機能が完全に取り込まれたかのような印象を与えますが、そういうことではなく、⁠システム設定][地域と言語]で、IBusで使用するAnthyやMozcなどの変換エンジンを切り替えられるようになったのです。ただし統合の対象となるIBusのバージョンは1.5(とその開発版)以降であり、1.4以前は対象外です。

それだけであればよかったのですが、IBusのあり方が大幅に変わってしまいました。まずは[IBusを起動する]という概念がなくなり、⁠日本語キーボード]から[Anthyが使用できるキーボード]注4[Mozcが使用できるキーボード]などに切り替えることによって起動とする、ということになりました。⁠入力ソース]のスクリーンショットは、つまりはそういうことです。ログイン直後に一番上になり、あとは下へ下へ切り替えていくということです。そして、その『切り替えキー』[Ctrl+Space]であり、これまでのように[半角/全角キー]での起動ができなくなりました[5]⁠。

図1 IBusを統合すると、⁠地域と言語]から設定できるようになります。これはFedora 18のスクリーンショットです。
図1 IBusを統合すると、[地域と言語]から設定できるようになります。これはFedora 18のスクリーンショットです。
図2 これは手元で作成したUbuntu 13.04で動作するIBus 1.5.1です。⁠切り替え」というイメージが伝わったと思います。
図2 これは手元で作成したUbuntu 13.04で動作するIBus 1.5.1です。「切り替え」というイメージが伝わったと思います。

他にも[IBusの設定]のスクリーンショットを見ていただければ一目瞭然ですが、設定できる項目が著しく減少しています。1.5に関する議論で実際に出てきた話題としては、⁠IBusの設定][詳細]タブにあった[すべてのアプリケーション間で同じインプットメソッドを使用する]がなくなったのはとても困る、とのことでした。IBus 1.5だとこの機能がデフォルトでオンになっており、オフにすることはできません。たしかにWindows 8では[すべてのアプリケーション間で同じインプットメソッドを使用する]に相当する機能がデフォルトでオンになり(Windows 7以前ではオフでした⁠⁠、言語パネル相当機能も表示されなくなり、このあたりの影響を受けていると思われます。

図3 IBusの設定画面です。随分すっきりしたことと、Ctrl+Spaceキーで切り替えることがわかります。
図3 IBusの設定画面です。随分すっきりしたことと、Ctrl+Spaceキーで切り替えることがわかります。
図4 図2のアイコンと一致しており、ここにリストされたものを切り替えているということがわかると思います。ちなみにGNOMEと統合すると、図1で設定することになります。と言いますか、統合したらこのIBusの設定画面自体使うことがほぼなくなります。
図4 図2のアイコンと一致しており、ここにリストされたものを切り替えているということがわかると思います。ちなみにGNOMEと統合すると、図1で設定することになります。と言いますか、統合したらこのIBusの設定画面自体使うことがほぼなくなります。
図5 図7との比較用に掲載しました。
図5 図7との比較用に掲載しました。

しかし、いずれも隠されていますが設定を変更すれば切り替えはできます。GNOMEは可能な限り設定機能を少なくする方向なので、そもそも選択肢がなくなったのと、言語パネルはGNOME Shellとの兼ね合いでなくなったのかも知れません。

たしかに機能としてはインジケーターに統合されるべきであるとも考えられます。しかし、ついつい右下を見る癖はなかなか治らないので、言語パネルが表示されるほうが個人的には嬉しいです。筆者が困ったのはこの言語パネルが表示できなくなったことと、⁠半角/全角キー]で起動できなくなったことです。

なお13.10では、今のところはアナウンスがないもののIBus 1.5に移行するものと思われます。IBus 1.4まではUnityのインジケーターに対応するためのパッチが適用されていましたが、1.5では適用できません。しかし、よりきちんと実装したIndicator keyboard[6]がCanonicalの社員によって開発されているのです。Canonicalも人材が潤沢というわけではないので、一社員が趣味で作っているとは考えにくい、ぐらいの根拠しかありませんが。

図6 IBus 1.4.2の設定画面です。図3と比較してください。
図6 IBus 1.4.2の設定画面です。図3と比較してください。
図7 IBus 1.4.2の設定画面です。図5と比較して、⁠すべてのアプリケーション間で同じインプットメソッドを使用する]があります。
図7 IBus 1.4.2の設定画面です。図5と比較して、[すべてのアプリケーション間で同じインプットメソッドを使用する]があります。

そこでFcitx

IBus 1.5だとこれまでと同じように使うことができない、かと言って1.4はすでに開発が完了している、となるとIBus以外の日本語入力にするしかありません。IBus 1.4と同等以上の使い勝手で現在も活発に開発されているもの、ということでFcitx[7]⁠[ˈfaɪtɪks])に白羽の矢を立てました。fcitx-anthyやfcitx-mozcがあったのもポイントが高いです。

とは言え、最初はほとんど翻訳されていなかったので、まずは翻訳することから始めました。fcitx-anthyはほぼ使いものになりませんでしたが、根気強く問題点を報告して現在では一点を除いて[8]実用レベルになりました[9]⁠。fcitx-mozcに関しては、⁠筆者がしたことはとくにないのですが)ibus-mozcと同等の使い勝手となりました。と言うわけで、UbuntuがIBus 1.5以降に移行してもこれまでと使い方を変えたくないという方は、Fcitxの使用を検討しても良いのではないでしょうか。

Fcitxのインストール

Fcitxのパッケージはいくつか13.04にもありますが、今回は一切使用しません。現在は筆者のPPAにあるものを使用することになりますが、13.10では全部は無理かも知れませんが可能な限りオフィシャルのリポジトリから取得できるようになればいいな、と思っています。

次のコマンドを実行して、インストールしてください。

$ sudo add-apt-repository ppa:ikuya-fruitsbasket/fcitx
$ sudo apt-get update
$ sudo apt-get install fcitx fcitx-anthy fcitx-mozc libfcitx-qt5-0

Fcitxへの切り替えは、⁠システム設定][言語サポート][キーボード入力で使用するIMシステム][fcitx]にしてください。

図8 ⁠キーボード入力で使用するIMシステム][fcitx]に切り替えます。
図8 [キーボード入力で使用するIMシステム]を[fcitx]に切り替えます。

システムまるごとの設定を行いたい場合は、

$ sudo im-config -c

でim-configコマンドを実行し、指示に従って[fcitx]を選択してください。通常は前者でいいでしょう。切り替え後、ログアウトして再ログインすれば使用できます。

半角/全角キーを押せばMozcが起動します。状態パネル(これはFcitx用語で、IBus用語だと[言語パネル]のこと)が小さすぎる場合は、⁠dark]スキンを使用するといいでしょう。状態パネルを右クリックするなどして表示される[スキン]から変更できます。設定方法などはまた別の機会で解説できればと思います。

ただし、Unityで使うと不具合[10]があります。Ubuntu Kylin[11]のデフォルトはFcitxなのでさぞかし困っていると思うのですが、14.04でUnity Nextになればなし崩し的に問題がなくなる[12]ので、修正されるのが望ましいものの、修正されなくてもいずれは解決されます。

余談:UnityとGNOME Shellで異なるIBusアイコンが表示されない理由

Ubuntu 12.04までのUnityでIBusのアイコンが表示されなかったのは、単純に起動のタイミングの問題です。インジケーターアプレットよりもIBusが先に起動すると、それはアイコンの表示は無理というものです。結局これは10秒待たせる[13]というアドホックな方法で解決しました。im-configは、よりエレガントな方法で解決しています。

一方GNOME ShellでIBusアイコンが表示されないのはまったく別の話ですが、筆者の力量では原因が特定できませんでした。gnome-control-centerパッケージにパッチを適用し、IBusとの統合部分は削除されています。ほかにインジケーターに対応するパッチも当たってはいるものの、いずれも表示されない原因にはならないように思えます。そればかりか、なぜかibus-daemonのverboseオプションが有効にならないので、なおさら原因追求が困難でした。

おすすめ記事

記事・ニュース一覧