Ubuntu Weekly Recipe

第381回インプットメソッドの便利な機能

今回はFcitxやIBusなどインプットメソッドの便利な機能を紹介します。

Ubuntu 15.04リリースパーティ兼オフラインミーティング15.06での出来事

Ubuntu 15.04リリースパーティ兼オフラインミーティング15.06に関しては第380回のレポートがありますので、詳しくはそちらを参照いただきたいのですが、インプットメソッドの機能について知らない、知っていても機能の区別がつかないという声があったので、その場で簡単にデモを行いました。ただ、やっぱり知っていると快適に入力が行えるので、あらためてここで紹介することにしました。再掲も含めて、ほかにもいくつかの機能を紹介することとします。

Ubuntu 15.10の開発状況

と、その前にUbuntu 15.10の開発状況を。第370回でFcitxがmainに入ったことまではお伝えしましたが、15.10の開発開始直後に日本語でもデフォルトになりました。現在は韓国語とベトナム語も続いています。各種フレーバーを含むUbuntu 15.10の開発版をインストールすると、Fcitxとfcitx-anthyがインストールされます[1]⁠。そればかりか、fcitx-mozcをデフォルトにする動きもあります。15.10に間に合うといいのですが。

一時アスキーモード

実のところ筆者はこの機能の正式な名称を知らないのですが、初めて認識したscim-anthyで「一時アスキーモード」と呼ばれているので、ここでもそう称することにします。

例えば「Ubuntuオフラインミーティング」と入力したい場合、通常は、

  1. IMをオフにする。またはオフであることを確認する
  2. Shiftキーを押す
  3. 「U」を入力する
  4. Shiftキーを離す
  5. 「buntu」を入力する
  6. IMをオンにする
  7. 「おふらいんみーぃてんぐ」と入力し、変換キーまたはF7キーを押す

という手順になりますが、一時アスキーモードを使用すると、

  1. IMをオンにする。あるいはオンになっていることを確認する
  2. Shiftキーを押す
  3. 「U」を入力する
  4. Shiftキーを離す
  5. 「buntu」と入力する
  6. Shiftキーを押して離す
  7. 「おふらいんみーぃてんぐ」と入力し、変換キーまたはF7キーを押す

手数としては変わらないですが、Shiftキーでこなせるので、半角/全角キーのように離れたところにあるキーを押さなくてもいいぶん、楽に入力できます図1⁠。また、この方法だと変換エンジンが学習するため、特にMozcだと予測変換に出てきて便利なこともあります。

図1 一時アスキーモードを使用している例
図1 一時アスキーモードを使用している例

ただし、これはibus-mozcやfcitx-mozcといったMozcでの入力方法で、scim-anthyだと一時アスキーモードから抜けるとき(すなわち6番)に押すキーはESCです。ibus-anthyやfcitx-anthyやibus-kkcなどには、この機能はありません[2]⁠。また、ATOKやMicrosoft IMEや、もちろんGoogle日本語入力でも使用できます。

この機能の欠点は、先頭が大文字、大文字小文字混じり、あるいは全部の文字が大文字の場合にのみ使用できることです。例えば大文字小文字混じりでも⁠IBus⁠[3]といった最初の2文字だけが大文字の場合は使用できません。⁠Ubuntu GNOME⁠など、半角スペースが入る場合や大文字が連続している場合には使用できます。

なお、Fcitxで一時アスキーモードを使用する場合は、設定の[全体の設定]タブにある[入力メソッド起動のその他のキー][無効]など、Shift以外に割り当ててください図2⁠。変更しない場合、Shiftキーはこの機能に取られるため、一時アスキーモードから抜ける際に支障が出ます。

図2 ⁠入力メソッド起動のその他のキー][無効]などにしないと一時アスキーモードが使用できません
図2 [入力メソッド起動のその他のキー]を[無効]などにしないと一時アスキーモードが使用できません

再変換

再変換は、すでに確定した語をあとから再び変換する機能です。内部的にはこのような動きになります。

  1. 変換したい語を選択
  2. 再変換キーを押す
  3. 変換したい語を変換エンジンに投げ、一度ひらがなにする。そして再び変換する
  4. 候補として表示し、ユーザーに確定してもらう

ここからいくつかのことがわかります。まずは選択した語を取得し、IMに渡す必要がありますが、これはツールキットの仕事です。すなわち再変換したい場合はツールキットが対応している必要があります。続いては、通常再変換したい語には漢字が混じっているので[4]⁠、変換エンジンに漢字をひらがなにする機能が必要です。もちろん漢字をひらがなにするということなので、語によっては音読み訓読みの関係で意図していないものに変換されることもあります。この場合は再変換は諦めるしかありません。

再変換に対応しているツールキットは、具体的にはGTK+です。バージョン2も3も特殊な例を除いて特に問題なく再変換できます。Qtもバージョン4では対応しています[5]⁠。LibreOffice Writerでは、できたりできなかったりして条件がよくわかりません。CalcやImpressでは正常に機能しているように思えますが、あまり使わないのでよくわかりません。またChrome/Chromiumでも再変換できません。Firefoxでは問題ありません。変換エンジンは、AnthyとMozcは対応しています。libkkcは非対応のようです。ちなみにWindowsでは、筆者が知る限りではどの組み合わせでも再変換できます。

念のため実際の操作は、

  1. Shift+矢印キーまたはマウスで変換したい語を選択
  2. 再変換キーを押す

です図3⁠。再変換のキーは、ATOKキーバインドだとCtrl+変換キー、Microsoft IMEキーバインドだと変換キーです。

図3 極めて理想的に再変換できる例。アプリケーションはleafpad
図3 極めて理想的に再変換できる例。アプリケーションはleafpad

確定取り消し

確定取り消しは、確定した直後に誤変換に気づいた場合などに便利な機能です。Ctrl+Backspaceキーが割り当てられています。Anthyとlibkkcは未対応で、Mozcは対応しています。確定した直後のタイミングだけで有効であり、例えばカーソルをちょっとでも動かした場合は機能しなくなります。おおむねツールキットへの依存はないのですが、Chrome/Chromiumだけは二重挿入したような形になり図4⁠、もともと確定した部分を削除する必要があります。

図4 珍しく確定取り消しが理想的に動作しない例
図4 珍しく確定取り消しが理想的に動作しない例

絵文字変換

Mozcでは絵文字の変換ができます。Mozcの設定ツール(Mozcプロパティ)を開き、⁠辞書]タブの[Unicode 6 絵文字変換]にチェックが入っていることを確認してください。もし入っていない場合はチェックを入れてください図5⁠。ただしUbuntu 14.04 LTSの場合はttf-ancient-fontsパッケージをインストールする必要があります。14.10以降であればデフォルトでインストールされるttf-ancient-fonts-symbolaパッケージに含まれています図6⁠。

図5 ⁠Unicode 6 絵文字変換]にチェックを入れる。あるいはチェックが入っていることを確認する
図5 [Unicode 6 絵文字変換]にチェックを入れる。あるいはチェックが入っていることを確認する
図6 絵文字の変換例
図6 絵文字の変換例

Fcitxのクリップボード機能

Fcitxのクリップボード機能については第297回で取り上げましたが、ずいぶん前のことなので今一度取り上げます。クリップボードの機能拡張については、ParcelliteやClipitなど専用のアプリケーションを使うのがお勧めですが、そこまで本格的ではなくてもちょっとしたクリップボードの履歴が欲しいという場合には、Fcitxのクリップボード機能は便利です。Fcitxの設定の[アドオン]タブに[Clipboard]があるので、これをダブルクリックすると設定画面を表示します図7⁠。デフォルトではクリップボードの履歴は5個表示され、表示のためのショートカットはCtrl+;です。

図7 クリップボードアドオンの設定を確認する
図7 クリップボードアドオンの設定を確認する

IBusのプロパティパネルの表示時間

IBusのプロパティパネルの表示は、非表示と一定時間表示(自動的に隠す)と常に表示の3パターンが選択できますが、一定時間表示にした場合はその表示時間を変更することができます。ただし、設定画面からは変更できないので、まずはdconf-editorパッケージをインストールしてください。⁠desktop][ibus][panel]を開くと、⁠auto-hide-timeout]という名前があります。これの値が[10000]になっていますが、下の説明にもあるとおりミリ秒なので、つまりは10秒です。表示時間を変更したい場合は、この値を変更すればいいというわけです。ちなみにコマンドで確認や変更をしたい場合は、

$ gsettings get org.freedesktop.ibus.panel auto-hide-timeout

で現在の設定を表示し、

$ gsettings set org.freedesktop.ibus.panel auto-hide-timeout 15000

で変更できます。これだと15秒になります。

図8 dconf-editorで値を確認または変更する
図8 dconf-editorで値を確認または変更する

おすすめ記事

記事・ニュース一覧