Mac
Karabiner
karabiner-Elements

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

More than 1 year has passed since last update.


概要

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" }
]
}
]
}