LoginSignup
22
12

More than 5 years have passed since last update.

Karabiner-Elementsだけで"全角/半角"でのIME切り替えを実現する方法など

Last updated at Posted at 2017-11-10

概要

Windowsでは"全角/半角"キーでIMEのON・OFFの切り替えができますが、Karabiner-Elementsを使ってMacでも同じ動作を簡単に実現できます。本記事では、その方法を紹介します。
また、IME関連ということで、左右のコマンドキーを「かな/英数」に割り当てたり、JISキーボードの「変換/無変換」を「かな/英数」に割り当てる方法もあわせて紹介します。

従来の設定方法

  1. Karabiner-Elementsで全角/半角キーをF13とかに変換する
  2. Macの「環境設定 -> キーボード -> ショートカット -> 入力ソース」で、「前の入力ソースを選択」のショートカットキーを1.で変換したキーに設定する

一見して分かりますが、Karabiner-Elementsでの設定に加えて、Macの環境設定も変更する必要がありますので、面倒な作業となります。

Ver.11.1.9以降のKarabiner-Elementsを使う新しい設定方法

Ver.11.1.8で、IMEのON・OFFに応じた処理の切り替えを実現するinput_source_ifという設定項目が追加されています。また、Ver.11.1.9で、IMEの切り替えを指定するselect_input_sourceinput_source_idという設定項目も追加されています。
これを使うと、IMEがOFF(ON)のときに"全角/半角"キーを押したらIMEをON(OFF)にする、という動作がKarabiner-Elementsだけで実現できます。

実際のコード

これらの設定項目を利用して"全角/半角"キーをIME切り替えキーにするコードは以下のとおりです。

{
  "description": "JISキーボードの全角/半角キーをIMEのON/OFF切り替えキーに変換。",
  "manipulators": [
    {
      "type": "basic",
      "from": { "key_code": "grave_accent_and_tilde" },
      "to": [
        {
          "select_input_source": {
            "input_source_id": "^com\\.apple\\.inputmethod\\.Kotoeri\\.Japanese$"
          }
        }
      ],
      "conditions": [
        {
          "type": "input_source_if",
          "input_sources": [
            { "language": "en" }
          ]
        }
      ]
    },
    {
      "type": "basic",
      "from": { "key_code": "grave_accent_and_tilde" },
      "to": [
        {
          "select_input_source": {
            "input_source_id": "^com\\.apple\\.inputmethod\\.Kotoeri\\.Roman$"
          }
        }
      ],
      "conditions": [
        {
          "type": "input_source_if",
          "input_sources": [
            { "language": "ja" }
          ]
        }
      ]
    }
  ]
}

これらの設定を使うことで、従来のようなKarabiner-ElementsとMacの環境設定の2本立ての設定を行うことなく、"全角/半角"キーをIME切り替えのキーとして使うことが可能となります。

IMEのON・OFFの判定や切り替えに使う値の確認について

上記のコードで使用している"ja", "en", "^com\\.apple\\.inputmethod\\.Kotoeri\\.Roman$"の値については、「Karabiner-EventViewew -> Variables」の画面で確認できます。実際に指定する際は、正規表現で指定するのが正しいようです。あと、私はGoogleIMEなどのサードパーティー製のIMEはインストールしておらず、Mac標準のIMEを利用しています。その状態で撮影した以下のスクリーンショットで"input_source_id"Kotoeriの文字がありますので、GoogleIMEとかを使っている場合は値が違うかもしれません。そこは各自で確認して頂ければと思います。

IME_ON.png

IME_OFF.png

蛇足

IME関連のキー設定として、以下の2つの設定を"Complex Modifications"で行うためのキーも掲載します。("Simple Modifications"で設定するのであれば、GUIで設定可能な内容です)

  1. JISキーボードの"ひらがなキー"と"変換キー"を"かなキー"に、"無変換キー"を"英数キー"に変換する。
  2. 左右のコマンドキー(JISキーボードのWindowsキー)を"かなキー"と"英数キー"に変換する。
{
  "description": "'左コマンドキー'は'英数キー'に、'右コマンドキー'は'かなキー'に変換。",
  "manipulators": [
    {
      "type": "basic",
      "from": {
        "key_code": "left_command",
        "modifiers": {
          "optional": [ "any" ]
        }
      },
      "to": [
        { "key_code": "left_command" }
      ],
      "to_if_alone": [
        { "key_code": "japanese_eisuu" }
      ]
    },
    {
      "type": "basic",
      "from": {
        "key_code": "right_command",
        "modifiers": {
          "optional": [ "any" ]
        }
      },
      "to": [
        { "key_code": "right_command" }
      ],
      "to_if_alone": [
        { "key_code": "japanese_kana" }
      ]
    }
  ]
}
{
  "description": "JISキーボードの'変換キー'と'ひらがなキー'を'かなキー'に、'無変換キー'を'英数キー'に変換。",
  "manipulators": [
    {
      "type": "basic",
      "from": {
        "key_code": "international2",
        "modifiers": {
          "optional": [ "any" ]
        }
      },
      "to": [
        { "key_code": "international2" }
      ],
      "to_if_alone": [
        { "key_code": "japanese_kana" }
      ]
    },
    {
      "type": "basic",
      "from": {
        "key_code": "international4",
        "modifiers": {
          "optional": [ "any" ]
        }
      },
      "to": [
        { "key_code": "international4" }
      ],
      "to_if_alone": [
        { "key_code": "japanese_kana" }
      ]
    },
    {
      "type": "basic",
      "from": {
        "key_code": "international5",
        "modifiers": {
          "optional": [ "any" ]
        }
      },
      "to": [
        { "key_code": "international5" }
      ],
      "to_if_alone": [
        { "key_code": "japanese_eisuu" }
      ]
    }
  ]
}
22
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
12