macOSの日本語入力プログラムでトグルではない方法でひらがなと英字を切り替える

前提

  • あえてmacOSの日本語入力プログラム(macOSデフォルトの日本語IME)だけで生活しようとしている場合の記事
  • ふつうはKarabiner Elementsを使えばよいはず

これまで

以前Ctrlでひらがなと英字モードをトグルするようにした。

Macのセットアップでやること2022 - kymmt

結果としては、これは使いにくかった。理由:

  • ノートブックのキーボードだとCtrlが小さい
  • Option と誤打する
  • どちらのモードなのかメニュー上のIMEの表示を見ないと人間が把握できない
    • 見ればいいのだが見ない

日本語入力ソースの中のモードを使う

実はトグルではない方法で日本語と英語の入力モードを切り替える方法がある。

日本語入力プログラムのドキュメント (https://support.apple.com/ja-jp/guide/japanese-input-method/jpimf6ffb247/mac) を読むと、日本語入力ソースに「ひらがな」と「英字」という日本語入力モードがあることがわかる(英語だと"Hiragana"と"Romaji"という表記)。この「英字」は"ABC"で表される英字ソースとは別物。

「ひらがな」と「英字」のモードはそれぞれCtrl+Shift+JCtrl+Shift+;で切り替えることができる*1。トグルではないので、キーバインドを打鍵すれば確実にそのモードになったことが保証される。

最近はこちらの方法を使っている。

現在の問題点

英字モードのときにGoogle Chromeでフォームのテキストエリアっぽい箇所に文字を入力すると、ブラウザがしばらく反応しなくなることがある(少なくともM1 Macbook Pro + mac OS 12.6 + Chrome 109で発生)。GitHubのインクリメンタルサーチやRedashでクエリを書くときに困る。現象が起きている最中に日本語入力プログラムのメニューを開くと、ロード中のようなUIのまま固まっていることが確認できる。日本語ソースではなく"ABC"表記の英字ソースだと発生しないので、必要ならそちらに切り替えるのがワークアラウンド。

他には、Shiftでローマ字モードに切り替える機能もあるのだが、機能を有効にしても動かない。USキーボードだとうまく動かないという仮説があるが、JISキーボードを持っていないので未検証。Ctrl+JCtrl+;でとくに困らないというのはある。

*1:入力モードとしてあらかじめ「ひらがな」と「英字」だけを使うようにしておくと、「英字」への切り替えはCtrl+Shift+;が使える。設定を変えて「半角カタカナ」なども使えるようにしてしまうと、そちらにCtrl+Shift+;が奪われてしまい、「英字」はCtrl+Shift+'に変わる。ホームポジションに近いほうがいいので「ひらがな」と「英字」だけ入力モードとして有効にしておくのがベター