読者です 読者をやめる 読者になる 読者になる

Fcitx-mozc を試してみた

(4/7 追記) fcitx-mozc の master branch では下記の問題は修正されたようです.Great!


Fcitxのテストのお願い - いくやの斬鉄日記 というのがあったので,軽く動作を見てみました.環境はこんな感じ.

  • Ubuntu 13.04 Final Beta 64-bit
  • VMWare 9.0.2
  • Mozc / fcitx は 2013年4月6日午後8時(日本時間)の時点で,ppa:ikuya-fruitsbasket/fcitx に登録されていたバージョン

f:id:NyaRuRu:20130406212509p:plain
以下,ibus-mozc から後退する部分で気付いたものを列挙してみます.

一部の Ctrl 付きのショートカットが動作しない

  1. Open gedit
  2. Enable Mozc
  3. type "kyouha"
  4. hit Ctrl+H

Expected: "きょう"
Actual: "きょうは"

Mozc (というか Windows の代表的な IME は),F7 キー,F8 キー,F9 キーの代わりにそれぞれ Ctrl+i,Ctrl+o,Ctrl+p という感じのショートカットが用意されています (QWERTY 配列では横に並んでいることに注目).また,IME での入力中は Ctrl+h によってバックスペース相当の動作をすることも可能です.これらが fcitx-mozc では使えないようです.ibus-mozc 1.6.1187.102 では動作するはずです.
Mozc プロトコルでのモディファイアキーの扱いについては commands.proto で解説されて います.Windows 版 Mozc の keyevent_handler_test.cc にも大量にテストケースがあります.

ひらがな/カタカナキーが常にカタカナキーとして振る舞う

(On 109 Japanese keyboard)

  1. Open gedit
  2. Enable Mozc
  3. Type "a"
  4. Hit Shift+Hiragana/Katakana
  5. Type "i"
  6. Hit Hiragana/Katakana
  7. Type "u"

Expected: "あイう"
Actual: "あイウ"

期待される実装方法については ibus-mozc の以下のコードあたりが参考になるかと.
https://code.google.com/p/mozc/source/browse/trunk/src/unix/ibus/key_translator.cc?r=131#57

  {IBUS_Hiragana, mozc::commands::KeyEvent::KANA},
  {IBUS_Hiragana_Katakana, mozc::commands::KeyEvent::KANA},
  {IBUS_Katakana, mozc::commands::KeyEvent::KATAKANA},

https://code.google.com/p/mozc/source/browse/trunk/src/unix/ibus/key_translator.cc?r=124#377

  // Due to historical reasons, many linux ditributions set Hiragana_Katakana
  // key as Hiragana key (which is Katkana key with shift modifier). So, we
  // translate Hiragana_Katanaka key as Hiragana key by mapping table, and
  // Shift + Hiragana_Katakana key as Katakana key by functionally.
  // TODO(nona): Fix process modifier to handle right shift
  if (IsHiraganaKatakanaKeyWithShift(keyval, keycode, modifiers)) {
    modifiers &= ~IBUS_SHIFT_MASK;
    keyval = IBUS_Katakana;
  }

一時的な英数モードからシフトキーで復帰しない

  1. Unset "L_SHIFT" from "Extra key for trigger input method" in the Fcitx global config.
  2. Open gedit
  3. Enable Mozc
  4. Hit key as follows
    1. Down Shift key
    2. Hit a key
    3. Up Shift key
    4. Hit i key
    5. Hit u key
    6. Down Shift key
    7. Up Shift key
    8. Hit a key
    9. Hit i key
    10. Hit u key

Expected: "Aiuあいう"
Actual: "Aiuaiu"

MS-IME のローマ字モードには,Shift キーと共に入力を行うことで一時的に英数モードに入るという機能があるのですが、この入力状態はシフトキーを単独で押すことで解除できます。fcitx-mozc ではこの機能が働かないようです。ibus-mozc 1.6.1187.102 では動作するはずです.

ツールを起動する系のショートカットが動作しない

  1. Open the config tool of Mozc
  2. Enter key customize mode
  3. Add an entry as "Precomposition/F2/Launch word register dialog"
  4. Open gedit
  5. Enable Mozc
  6. Hit F2

Expected: word register dialog is launched
Actual: nothing happens

Mozc (というか Windows の代表的な IME )はショートカットキーで設定ダイアログを起動したり単語登録ダイアログを起動したりできるのですが,fcitx-mozc では機能していないようです.ibus-mozc 1.6.1187.102 では動作するはずです.

gedit で確定取り消しが動作しない

  1. Open gedit
  2. Enable Mozc
  3. Type "kyouha"
  4. Hit enter to commit
  5. Hit Ctrl+BackSpace

Expected: commit action is canceled
Actual: nothing happens

Mozc (というか Windows の代表的な IME )は直前の確定動作を取り消せるのですが,fcitx-mozc では機能していないようです.ibus-mozc 1.6.1187.102 では動作するはずです.

gedit で再変換が動作しない

(On 109 Japanese keyboard)

  1. Open gedit
  2. Type something
  3. Enable Mozc
  4. Select some text
  5. Hit Henkan key

Expected: The selected text is reconverted by Mozc
Actual: nothing happens

Mozc (というか Windows の代表的な IME は)選択した単語を再変換できるのですが,fcitx-mozc では機能していないようです.ibus-mozc 1.6.1187.102 では動作するはずです.


冒頭にも追記したとおり,ここに挙げた問題は全て master branch では修正済みのようです.良かった良かった.