概要
Windowsでは"全角/半角"キーでIMEのON・OFFの切り替えができますが、Karabiner-Elementsを使ってMacでも同じ動作を簡単に実現できます。本記事では、その方法を紹介します。
また、IME関連ということで、左右のコマンドキーを「かな/英数」に割り当てたり、JISキーボードの「変換/無変換」を「かな/英数」に割り当てる方法もあわせて紹介します。
従来の設定方法
- Karabiner-Elementsで
全角/半角
キーをF13とかに変換する - 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_source
、input_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関連のキー設定として、以下の2つの設定を"Complex Modifications"で行うためのキーも掲載します。("Simple Modifications"で設定するのであれば、GUIで設定可能な内容です)
- JISキーボードの"ひらがなキー"と"変換キー"を"かなキー"に、"無変換キー"を"英数キー"に変換する。
- 左右のコマンドキー(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" }
]
}
]
}