Karabiner-Elementsで日本語入力のトグル切り替えしたときにちゃんと適用されない問題を解決した!!!

Karabiner-Elementsで日本語入力のトグル切り替えしたときにちゃんと適用されない問題を解決した!!!
4
1
234
2
3
みるみ
Follow Me!
みるみみるめも筆者

朝起きてから夜寝るまでPCしか触っていない人。

Micr◯s◯ft製のソフトウェアが死ぬほど嫌いなことで有名。

あまりにも大きいストレスだった問題を解決できた喜びがあまりにも大きいので記事に残します。

「もっと良い方法がある!」という方はぜひ本記事へのコメントという形でスレッドを残してほしいです!!

問題だったこと

Karabiner-Elementsを使ってMacの日本語入力ON/OFFを1つのキーでトグル切り替えしている場合、画面右上の "あ", "A" はちゃんと切り替わっているのに入力される文字には適用されていないという問題が多発するようになりました。

mac-google-ime-1

今は日本語入力OFFのはずなのに日本語が入力されている、という状態。

Karabiner-Elementsの設定には問題がないので、これが起きたときは

  • だいたい3回くらい切り替えて正常に反応するまで試す
  • トグルの切り替えしたあとに少し時間を空けてから文字入力を始める

などとくだらない対処療法をするしか手がありませんでした。

原因は全くよく分かっていないのだけど、たぶんMacのせいです。Karabiner-Elementsのイベントビューアでも正常にトグル反応しているのは確認できるし、「OS担当範囲の画面上の表示と実際の動作がリンクしていない」という点から見てもMac側の問題と考えるのが自然かなーと思います。

というわけでこれがどれほどのストレスを産むかは言葉にするまでもなく、いつキーボードクラッシャーしてMacごとお釈迦になるかの瀬戸際だったわけです。

解決方法:IMEのON/OFFで入力ソースを変える

日本語入力のONとOFFを現在の状態で振り分けてインプットするわけですが、そのONとOFFをことえりとGoogle日本語入力で互い違いにすると解決しました。

設定ファイル的にはこう。

{
    "title": "",
    "rules": [{
        "description": "",
        "manipulators": [{
            "type": "basic",
            "from": {
                "key_code": "japanese_kana"
            },
            "to": [
                {
                    "select_input_source": {
                        "input_source_id": "^com\\.apple\\.inputmethod\\.Kotoeri.RomajiTyping.Japanese$"
                    }
                }
            ],
            "conditions": [{
                "type": "input_source_if",
                "input_sources": [{
                    "language": "en"
                }]
            }]
        },
        {
            "type": "basic",
            "from": {
                "key_code": "japanese_kana"
            },
            "to": {
                "select_input_source": {
                    "input_source_id": "^com\\.google\\.inputmethod\\.Japanese\\.Roman$"
                }
            },
            "conditions": [{
                "type": "input_source_if",
                "input_sources": [{
                    "language": "ja"
                }]
            }]
        }]
    }]
}

日本語入力ON側をGoogle日本語入力にするパターンでは解決しません。
…なんでやねん!!!!

この辺はおま環もあるかもなので他のマシンでもテストしてみたいところ。

 

一番最初この件に気が付いたとき、Google日本語入力を使っていることが問題に思えたというのが今回の解決法を思いついたきっかけでした。

mac-google-ime

「トグル切り替え後に少し待ってから入力を開始する」というので実際に成功するケースが多く、これはことえりを使うときだと起きる回数がかなり少なかったんですよね。

そこで同じ設定ファイルをことえり用で作ったりしていたのだけど解決せず、「クソくらえ」と思いながらごちゃまぜにしたらまさかの解決したというラッキー展開です。

本音を言えばGoogle日本語入力をIME:ONとして使いたいんだけどねー。

まあMacで日本語の文章を大量に入力することは僕は今のところないので(開発用)、現状はこれで問題ないという判断です。

みるみ
みるみ

Mac版のGoogle日本語入力ってちょっとUIも滲んでたりして満足感薄いしね…。

同様の問題で何かこの記事と違うことが起きたりなどした方は、ぜひご報告いただけると嬉しいです!

おわりに

ちなみに他に試したのは、

  • 設定ファイル内でtoを配列で持たせて切り替えコマンドを3回分送る
  • トグルに使うキーを変更する

とかでした。いずれもダメだったけど。

また、Karabiner-Elementsを使わずに英数キーとかなキーを使って普段通り切り替える場合はもちろん正常に動きました。

Karabiner-Elementsには絶大な信頼感があるけど、Mac側から見ると何かしらは予想外のことが起きてるってことなんでしょうかね。

以上!!

4
1
234
2
3
みるみ
Follow Me!
みるみみるめも筆者

仕事と趣味と副業がプログラミングとブログでごちゃまぜになっている人。

詳しいプロフィールはこのページで色々書いてます。もやってます。

みるめも
コメントが正常に送信されました。承認されるまで表示されませんので二重投稿なさらないようご注意ください。