mozc_emacs_helper on macOS Sierra

macOS Sierra をクリーンインストールしたので mozc_emacs_helper を使えるようにした。google日本語入力と連携できるようにビルドできるという以下のサイトの Tips を参考にしたが、ちょっと解りにくかったので備忘録として整理しておく。

準備

Xcodeが必要と言うことだけどコマンドラインツールのみで大丈夫だった。

xcode-select --install

ninja が要るらしいので homebrew でインストールしておく。

brew install ninja

mozc をダウンロードする

作業ディレクトリはどこでもいいが、僕は基本的にdesktopで作業することが多い。

cd desktop
git clone https://github.com/google/mozc.git -b master --single-branch --recursive

Mac の google日本語入力と連携させるためにソースを修正

以下のファイルを作ってパッチをかけてもいいが、簡単なのでぼくは直接修正した。

diff --git a/src/build_mozc.py b/src/build_mozc.py
index a56aaaf..d419f49 100644
--- a/src/build_mozc.py
+++ b/src/build_mozc.py
@@ -167,6 +167,8 @@ def GetGypFileNames(options):
   # Include subdirectory of win32 and breakpad for Windows
   if options.target_platform == 'Windows':
     gyp_file_names.extend(glob.glob('%s/win32/*/*.gyp' % SRC_DIR))
+  elif options.target_platform == 'Mac':
+    gyp_file_names.extend(glob.glob('%s/unix/emacs/*.gyp' % SRC_DIR))
   elif options.target_platform == 'Linux':
     gyp_file_names.extend(glob.glob('%s/unix/*/*.gyp' % SRC_DIR))
     # Add ibus.gyp if ibus version is >=1.4.1.
diff --git a/src/mac/mac.gyp b/src/mac/mac.gyp
index 76b540d..2ee4006 100644
--- a/src/mac/mac.gyp
+++ b/src/mac/mac.gyp
@@ -586,7 +586,6 @@
             ['branding=="GoogleJapaneseInput"', {
               'dependencies': [
                 'DevConfirmPane',
-                'codesign_client',
               ],
             }],
           ],
           

コンパイル

cd mozc/src
GYP_DEFINES="mac_sdk=10.12 mac_deployment_target=10.12" python build_mozc.py gyp --noqt --branding=GoogleJapaneseInput
$ python build_mozc.py build -c Release unix/emacs/emacs.gyp:mozc_emacs_helper

動作確認

以下のように表示されれば成功!

echo -e '(0 CreateSession)\n(1 SendKey 1 hiragana)\n(2 SendKey 1 hiragana)\n(3 SendKey 1 97)' | out_mac/Release/mozc_emacs_helper
((mozc-emacs-helper . t)(version . "2.19.2643.101")(config . ((preedit-method . roman))))
((emacs-event-id . 0)(emacs-session-id . 1)(output . ()))
((emacs-event-id . 1)(emacs-session-id . 1)(output . ((id . "4087100232139049092")(mode . hiragana)(consumed . nil)(key . ((special-key . kana)))(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana))))))
((emacs-event-id . 2)(emacs-session-id . 1)(output . ((id . "4087100232139049092")(mode . hiragana)(consumed . nil)(key . ((special-key . kana)))(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana))))))

インストールする

パスの通ったところにコピーするだけ。

sudo cp out_mac/Release/mozc_emacs_helper /usr/local/bin

Emacs で使えるようにする

mozc.el をコピーするか Package install する。

cp mozc/src/unix/emacs/mozc.el "YOUR EMACS ELISP PATH"

init.elに設定を書く

  • mozc-popup.el をパッケージインストールして変換候補を表示させる。
  • mozc の on/off でカーソルの色を変える(mozc-el-extensions)
(require 'mozc)
(setq default-input-method "japanese-mozc")
(setq mozc-helper-program-name "mozc_emacs_helper")

(require 'mozc-popup)
(setq mozc-candidate-style 'popup) ; select popup style.

;; Changing the color of the cursor with on/off
(require 'mozc-cursor-color)
M-x mozc-mode

で使える。toggle-input-method をキーバインドしてもよい。

使用感

google日本語の辞書、ユーザ辞書ともに完全に連携できるのでとても便利。