@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

Emacs Mac Portで日本語入力モードの時にカーソルの色を変える

OSXのEmacsにインラインパッチなんていらなかったんや... / マスタカの ChangeLog メモ

設定はそのまま

(defun mac-selected-keyboard-input-source-change-hook-func ()
  ;; 入力モードが英語の時はカーソルの色をfirebrickに、日本語の時はblackにする
  (set-cursor-color (if (string-match "\\.US$" (mac-input-source))
                        "firebrick" "black")))

(add-hook 'mac-selected-keyboard-input-source-change-hook
          'mac-selected-keyboard-input-source-change-hook-func)

IMEの状態でカーソルの色を変えたりmode-lineの表示を変えたかった。 これでうまくいかなくて迷っていたら、OS Xの設定が問題だった。

日本語環境設定で、入力ソース=日本語の設定項目にある、入力モードでひらがなと英字にチェックを入れているのが原因だった。

f:id:peccu:20150311115446p:plain

このおかげで、入力ソースは日本語のままで、英字入力とひらがな入力を切り替えられるので、 Emacsの設定で (mac-input-source) がつねに "com.apple.inputmethod.Kotoeri.Japanese" になっていた。

f:id:peccu:20150311115335p:plain

入力ソースにU.Sを追加し、入力モードの英字からチェックを外すと "com.apple.keylayout.US" も返すようになり、 カーソルの色を変えられるようになった。