見出し画像

Karabinerを使ってMacで日英韓をスムーズに切り替える(多言語環境カスタマイズ)

こんにちは、南の島に来るとやたらキーボード遊びがしたくなるセム(@ssem1622)です。キーボードはいいですね、言葉の壁を超えて、全世界にヲタクがいっぱいいます。キーボード沼の底は世界につながっているんだと信じてやみません。

また買ってしまいました…メカニカルキーボード。今回はNuphyのAir75をお迎えしました。控えめに言って最高です。

買った話はまた後日にして、今回はかねてよりやりたかった、日英韓の多言語環境構築が落ち着いたので、世界のみなさまにシェアしたいと思います。

セムを取り巻く環境

毎日、日英韓 3か国語を目まぐるしく切り替えながらMBPを使用するわたくしセム。MacBookってなぜか、3言語以上の切り替えになると途端にしんどくなるんですよね…2言語だとトグルでうまくいくのですが。検索していると、みんなお悩みの様子です。

そこで登場するのがMacのキーマップ入れ替えアプリ、Karabiner-Elements(通称カラビナ)というわけです。キーボードメーカー純正のMac用キーボードファームウェアってほとんどないのですが、これを使えばどんなメーカーのどんなキーボードでも好きなようにキーの入れ替えができるんです。

しかも世界中のユーザーがいろんなキーマップアイデアを公開しているので、それをインポートして瞬時に適用、ということも可能。こんなに素晴らしい機能が無料で使えるなんて太っ腹すぎます。まさに神アプリ!

前提となる環境

MacBook Pro・US配列(韓国語IMEベース)

・Karabinerの公開ライブラリでは、日本語↔英語、英語↔韓国語はあるけど、日本語↔韓国語はない
 (どちらも右Cmdに割り当てるパターンが多い)
・Mac仕様(1)  英数に切り替えた後、Caps Lockキーで韓国語にする
・Mac仕様(2) 日本語からダイレクトに韓国語に切替できない(必ず英語を経由)

Before

右Cmdで日本語・左Cmdで英数にする(公開ライブラリからImport)
・韓国語は一度左Cmdで英語に切り替え後、Caps Lockで韓国語に変更(デフォルト)

課題

・日本語↔韓国語間の切替がめんどくさい(英語を必ず経由する・一発でいけない)

After

・右Cmdで日本語・左Cmdで英数にする(公開ライブラリからImport) - keep
・左Controlで日本語と韓国語のトグル切替(公開ライブラリからDL後カスタマイズ)

・日本語にする→右Cmd
・英数にする→左Cmd
・日本語↔韓国語の切替→左Control
・英語↔韓国語の切替→Caps lock

図にするとこんな感じ

韓国語は多少変動的ではあるけど、ひとつのキーで切替可能になった

数々の試行錯誤

Option 1/2/3で韓/英/日 を切り替える→却下

公開ライブラリに「Option 1/2/3で韓/英/日 を切り替える」があるのですが、適用したものの、結局は却下となりました。(中国語版もあります)

・これを有効にするとマークダウンの見出し作成ショートカット ⌘+⌥+1〜3 がきかなくなる
・強制的にIMEだけ切り替えるため、たまに文字が切り替わらないエラーが発生(地味にイラつく)

左Controlキーに日本語↔韓国語 トグルを割り当てる

これは公式で公開されていないので、公開されているものをインポート後、コピーしてカスタマイズしました。わたくしセムお得意の、似たものを探してきてからコピペと置換で実現するなんちゃってプログラミングです。

元々のコード: 右Cmdで韓国語と英語をトグル切替
・右Cmd→左Controlに置換
・英語を日本語に置換

韓国語はApple Korean 두벌식、日本語IMEはGoogle Japanese Inputを割り当てています。

{
  "title": "Change input-source left ctrl key directly for korean",
  "maintainers": [
    "creatorKoo"
  ],
  "rules": [
    {
      "description": "Left_control to Korean <-> Japanese",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "left_control",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "select_input_source": {
                "input_source_id": "^com\\.apple\\.inputmethod\\.Korean\\.2SetKorean$"
              }
            }
          ],
          "conditions": [
            {
              "type": "input_source_if",
              "input_sources": [
                {
                  "input_source_id": "com.google.inputmethod.Japanese.base"
                }
              ]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "left_control",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "select_input_source": {
                "input_source_id": "com.google.inputmethod.Japanese.base"
              }
            }
          ],
          "conditions": [
            {
              "type": "input_source_if",
              "input_sources": [
                {
                  "input_source_id": "^com\\.apple\\.inputmethod\\.Korean\\.2SetKorean$"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

これで、左Ctrlをポチポチすると日韓IMEが切り替わるようになりました。しかもこれだとエラーも出ません。他のショートカットともかぶらないので一件落着! しかも、MBP本体・Keychron K2/K3・Air75 全部共通で使えます。

JSONファイルの位置と開く方法

Complex Modificationsのカスタマイズで一番重要なJSONファイルはどこにあるんだ問題。多くのサイトには下記のように説明されています。

~/.config/karabiner/karabiner.json

これ、Finderで探しても出てこなくて小一時間検索しまくったのですが、答えはすぐ近くにあったというオチでした。きっとまた探すと思うので、自分のための備忘録です。

Misc→Open Config Folderを押すと開くフォルダ内のAssets内にあるJSONファイルを修正

そろそろまとめ: 結果としては大満足

というわけでここまでせっせとなんちゃってプログラミングで環境を整えていたのですが、ようやく落ち着けそうです。JSONファイルの編集自体はとても簡単なので、多言語の切替が多い方はぜひ参考にしてみてくださいね。

今回参考にさせてもらったサイト

なんだかんだで実装の8割は検索でした。みなさんのおかげです!


この記事が参加している募集

読んでくれてありが豆m(_ _)m よりよいコンテンツ作りを目指していきます。