【人権回復】Karabiner-ElementsでOne-to-many, Many-to-oneマッピング

やっとヒューマンライツを回復することができました。

いま、私は、自分が思った通りにタイピングできる喜びと、あの長く、辛い日々を噛み締めながら、この記事を書いています。

macOS Sierra 10.12.4
Karabiner-Elements 0.91.4

**ベータ版なので、使用は自己責任でお願いします。故障・損害などに関しては一切の責任を負いかねます。また、今後仕様が変更されて、下の設定では動かない可能性もあります。**

##[Karabiner-Elements](https://github.com/tekezo/Karabiner-Elements)とは
macOS Sierra用の、キーボードのマッピングをカスタマイズできるアプリケーション。

OSXには[Karabiner](https://pqrs.org/osx/karabiner/)(もっと以前はKeyRemap4MacBooという名前でした)というアプリケーションがあるのですが、新しいmacOS Sierraでは正常に動作しません。

Karabinerでかなりキーボードをカスタマイズしているにも関わらず、Sierraに対応しているかちゃんと確認せずにアップグレードしてしまった、私のような生きる価値もない人間は、当然人権を剥奪され、長く、辛い日々を強いられることになったのです。

代替になりそうなアプリケーションを漁りまくり、結局は[BetterTouchTool](https://www.boastr.net/)とKarabiner-ElementsのSimple Modificationsの組み合わせで、不完全ながらなんとか凌いでいました。

自分で書いてPRを送ろうかとも思いましたが、コードを追うのもそれなりに大変ですし、私のクソコードでは...という気持ちもあり、また、他の方のPRに対しても開発者様の応答がなかったようなので、座して待つしかないと思い、寄付だけしときました。

##One-to-oneマッピング

1. Karabiner-Elementsのインストール
[usage/README](https://github.com/tekezo/Karabiner-Elements/blob/master/usage/README.md)を見てください。

2. キーボードを選択
Karabiner-Elementsを起動。`Preferences...`を選択。`Virtual Keyboard`タブへ行き、キーボードがJIS（キーボードにアルファベットとひらがなが書かれているもの）なら`Keyboard type`で`JIS`を選択。USキーボードなら`ANSI`を選択。

3. GUIでマッピングしてみる
`Simple Modifications`のタブへ行き、`Add item`を押し、左のドロップダウンからマッピングを変えたいキーを選択。右のドロップダウンからどのキーへマッピングしたいか選択。例えば、`左Shift`キーを`a`に変えたければ、左のドロップダウンは`left_shift`、右のドロップダウンは`a`を選択。これで左Shiftを押すと、`a`が入力されるようになります。

キーボードの名前がわからない場合、**Karabiner-EventViewer**がKarabiner-Elementsと一緒にインストールされているはずなので、起動して、そこで当該キーを押してみると、キーの名前などがわかります。

##設定ファイルを見る

1. 設定ファイルを開く
`~/.config/karabiner/`配下にある、`karabiner.json`というファイルを開く。なかったら作る。

2. プロファイル
キーマッピングの設定のセットは、`profile`と呼ばれ、いくつも登録し、切替もできます。例えば、`default`という名前のprofileを設定をしてみます。`"simple_modifications"`のところには、Simple Modificationsのところで設定したものが表示されているはずです。

Karabinerでは、設定ファイルを変更したらリロードする必要がありましたが、Karabiner-Elementsでは、設定ファイルを保存するとすぐリロードされるようです。

```json:~/.config/karabiner/karabiner.json
{
    "global": {
        "check_for_updates_on_startup": true,
        "show_in_menu_bar": true,
        "show_profile_name_in_menu_bar": false
    },
    "profiles": [
        {
            "name": "default",
            "selected": true,
            "devices": [],
            "fn_function_keys": {
                "f1": "display_brightness_decrement",
                "f2": "display_brightness_increment",
                "f3": "mission_control",
                "f4": "launchpad",
                "f5": "f5",
                "f6": "illumination_increment",
                "f7": "rewind",
                "f8": "play_or_pause",
                "f9": "fastforward",
                "f10": "mute",
                "f11": "volume_decrement",
                "f12": "volume_increment"
            },
            "simple_modifications": {
                "backslash": "quote",
                "caps_lock": "vk_none",
                "international1": "semicolon",
                "quote": "delete_or_backspace",
                "right_shift": "vk_none",
                "semicolon": "return_or_enter"
            },
            "virtual_hid_keyboard": {
                "caps_lock_delay_milliseconds": 0,
                "keyboard_type": "jis"
            }
        }
    ]
}
```

##One-to-many, Many-to-oneマッピング
1. ベータ版（2017年6月23日現在）へアップデート
時間が経てばベータではなく、製品版のほうで利用できるようになると思うので、アップデート情報はチェックされると良いと思います。
`Preferences... -> Misc -> Check for beta updates`

2. `"complex_modifications"`を追加
今回できるようになったのは、この部分です。例えば、英数キーが単体で押されたときには、普段通り、英数への切替、`a` と組み合わせて押されたときには`1`を入力する、みたいなことができます。先程の`default`プロファイルの`"simple_modifications"`と同じ階層に`"complex_modifications"`を作ります。

```json
{
    "complex_modifications": {
        "rules": [
            { 
                "manipulators": [
                    { "mapping goes here": "hello" }
                ] 
            }
        ]
    },
    "name": "default",
    "selected": true,
    "devices": [],
    "fn_function_keys": {
        "f1": "display_brightness_decrement",
        "f2": "display_brightness_increment",
        "f3": "mission_control",
        "f4": "launchpad",
        "f5": "f5",
        "f6": "illumination_increment",
        "f7": "rewind",
        "f8": "play_or_pause",
        "f9": "fastforward",
        "f10": "mute",
        "f11": "volume_decrement",
        "f12": "volume_increment"
    },
    "simple_modifications": {
        "backslash": "quote",
        "caps_lock": "vk_none",
        "international1": "semicolon",
        "quote": "delete_or_backspace",
        "right_shift": "vk_none",
        "semicolon": "return_or_enter"
    },
    "virtual_hid_keyboard": {
        "caps_lock_delay_milliseconds": 0,
        "keyboard_type": "jis"
    }
}
```

3 設定例
設定の仕方は、[examples](https://github.com/tekezo/Karabiner-Elements/tree/master/examples)と、[このPRでのこのコメント](https://github.com/tekezo/Karabiner-Elements/pull/247#issuecomment-308761899)以下が参考になりました。

+ spacebar単体 -> spacebar; 別のキーとの組み合わせ -> left_shift

```json
{ "type": "basic",
  "from":        { "key_code": "spacebar", "modifiers": { "optional": [ "any" ] } },
  "to":          [ { "key_code": "left_shift" } ],
  "to_if_alone": [ { "key_code": "spacebar" } ]　}
```

+ left_shift -> 英数, escape

```json
{ "type": "basic",
  "from": { "key_code": "left_shift",
            "modifiers": { "optional": [ "caps_lock" ] } },
  "to": [ { "key_code": "lang2" },
          { "key_code": "escape" } ] }
```

+ left_control + h -> 左カーソル移動

```json
{ "type": "basic",
  "from": { "key_code": "h", 
            "modifiers": { 
                "mandatory": [ "left_control" ], 
                "optional": [ "caps_lock" ] } },
  "to": [ { "key_code": "left_arrow" } ] }
```

+ 英数単体 -> 英数; 英数 + a -> 1

```json
{ "type": "basic",
  "from": { "key_code": "lang2",
            "modifiers": { "optional": [ "any" ] } },
  "to": [ { "key_code": "left_command",
            "modifiers": [ "left_shift", "left_option" ] } ],
  "to_if_alone": [ { "key_code": "lang2" } ] },

{ "type": "basic",
  "from": { "key_code": "a",
            "modifiers": {
                "mandatory": [ "left_command", "left_shift", "left_option" ],
                "optional": [ "caps_lock" ] } },
  "to": [ { "key_code": "1" } ] }
```

とりあえず書いた設定ファイルの全体は以下のような感じです。JISキーボード用の設定なので、ANSIキーボードで同じことをしようと思ったら、設定が少し異なるはずです。

```json:~/.config/karabiner/karabiner.json
{
    "global": {
        "check_for_updates_on_startup": true,
        "show_in_menu_bar": true,
        "show_profile_name_in_menu_bar": false
    },
    "profiles": [
        {
            "complex_modifications": {
                "rules": [
                    {
                        "manipulators": [
                            {
                                "description": "left_shift -> eisuu, esc",
                                "from": {
                                    "key_code": "left_shift"
                                },
                                "to": [
                                    {
                                        "key_code": "lang2"
                                    },
                                    {
                                        "key_code": "escape"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana -> right_hyper | kana",
                                "from": {
                                    "key_code": "lang1",
                                    "modifiers": {
                                        "optional": [
                                            "any"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "right_command",
                                        "modifiers": [
                                            "right_shift",
                                            "right_option"
                                        ]
                                    }
                                ],
                                "to_if_alone": [
                                    {
                                        "key_code": "lang1"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu -> left_hyper | eisuu",
                                "from": {
                                    "key_code": "lang2",
                                    "modifiers": {
                                        "optional": [
                                            "any"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "left_command",
                                        "modifiers": [
                                            "left_shift",
                                            "left_option"
                                        ]
                                    }
                                ],
                                "to_if_alone": [
                                    {
                                        "key_code": "lang2"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "spacebar -> left_shift | spacebar",
                                "from": {
                                    "key_code": "spacebar",
                                    "modifiers": {
                                        "optional": [
                                            "any"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "left_shift"
                                    }
                                ],
                                "to_if_alone": [
                                    {
                                        "key_code": "spacebar"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + a -> 1",
                                "from": {
                                    "key_code": "a",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "1"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + a -> !",
                                "from": {
                                    "key_code": "a",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "1",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + s -> 2",
                                "from": {
                                    "key_code": "s",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "2"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + s -> \"",
                                "from": {
                                    "key_code": "s",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "2",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + d -> 3",
                                "from": {
                                    "key_code": "d",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "3"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + d -> #",
                                "from": {
                                    "key_code": "d",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "3",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + f -> 4",
                                "from": {
                                    "key_code": "f",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "4"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + f -> $",
                                "from": {
                                    "key_code": "f",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "4",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + g -> 5",
                                "from": {
                                    "key_code": "g",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "5"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + g -> %",
                                "from": {
                                    "key_code": "g",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "5",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + h -> 6",
                                "from": {
                                    "key_code": "h",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "6"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + h -> &",
                                "from": {
                                    "key_code": "h",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "6",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + j -> 7",
                                "from": {
                                    "key_code": "j",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "7"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + j -> '",
                                "from": {
                                    "key_code": "j",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "7",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + k -> 8",
                                "from": {
                                    "key_code": "k",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "8"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + k -> (",
                                "from": {
                                    "key_code": "k",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "8",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + l -> 9",
                                "from": {
                                    "key_code": "l",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "9"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + l -> )",
                                "from": {
                                    "key_code": "l",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "9",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + o -> 0",
                                "from": {
                                    "key_code": "o",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "0"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + b -> [",
                                "from": {
                                    "key_code": "b",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "close_bracket"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + b -> {",
                                "from": {
                                    "key_code": "b",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "close_bracket",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + n -> ]",
                                "from": {
                                    "key_code": "n",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "backslash"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + n -> }",
                                "from": {
                                    "key_code": "n",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "backslash",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + c -> :",
                                "from": {
                                    "key_code": "c",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "quote"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + c -> ;",
                                "from": {
                                    "key_code": "c",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "semicolon"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + e -> =",
                                "from": {
                                    "key_code": "e",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "hyphen",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + p -> ^",
                                "from": {
                                    "key_code": "p",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "equal_sign"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + p -> +",
                                "from": {
                                    "key_code": "p",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "semicolon",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + m -> *",
                                "from": {
                                    "key_code": "m",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "quote",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + m -> -",
                                "from": {
                                    "key_code": "m",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "hyphen"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + u -> _",
                                "from": {
                                    "key_code": "u",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "international1"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + y -> ¥",
                                "from": {
                                    "key_code": "y",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "y",
                                        "modifiers": [
                                            "left_option"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + y -> |",
                                "from": {
                                    "key_code": "y",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "international3",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + / -> \\",
                                "from": {
                                    "key_code": "slash",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "international3",
                                        "modifiers": [
                                            "left_option"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + . -> >",
                                "from": {
                                    "key_code": "period",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "period",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + , -> <",
                                "from": {
                                    "key_code": "comma",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "comma",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + t -> ~",
                                "from": {
                                    "key_code": "t",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "equal_sign",
                                        "modifiers": [
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "left_option + / -> ¡",
                                "from": {
                                    "key_code": "slash",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "1",
                                        "modifiers": [
                                            "left_option"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "eisuu + ] -> «",
                                "from": {
                                    "key_code": "quote",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_command",
                                            "left_shift",
                                            "left_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "backslash",
                                        "modifiers": [
                                            "left_option"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "kana + ] -> »",
                                "from": {
                                    "key_code": "quote",
                                    "modifiers": {
                                        "mandatory": [
                                            "right_command",
                                            "right_shift",
                                            "right_option"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "backslash",
                                        "modifiers": [
                                            "left_option",
                                            "left_shift"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "left_control + h -> left_arrow",
                                "from": {
                                    "key_code": "h",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_control"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "left_arrow"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "left_control + j -> down_arrow",
                                "from": {
                                    "key_code": "j",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_control"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "down_arrow"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "left_control + k -> up_arrow",
                                "from": {
                                    "key_code": "k",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_control"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "up_arrow"
                                    }
                                ],
                                "type": "basic"
                            },
                            {
                                "description": "left_control + l -> right_arrow",
                                "from": {
                                    "key_code": "l",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_control"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "right_arrow"
                                    }
                                ],
                                "type": "basic"
                            }
                        ]
                    }
                ]
            },
            "devices": [],
            "fn_function_keys": {
                "f1": "display_brightness_decrement",
                "f10": "mute",
                "f11": "volume_decrement",
                "f12": "volume_increment",
                "f2": "display_brightness_increment",
                "f3": "mission_control",
                "f4": "launchpad",
                "f5": "f5",
                "f6": "illumination_increment",
                "f7": "rewind",
                "f8": "play_or_pause",
                "f9": "fastforward"
            },
            "name": "default",
            "selected": true,
            "simple_modifications": {
                "caps_lock": "vk_none",
                "international1": "semicolon",
                "international3": "quote",
                "quote": "delete_or_backspace",
                "right_shift": "vk_none",
                "semicolon": "return_or_enter"
            },
            "virtual_hid_keyboard": {
                "caps_lock_delay_milliseconds": 0,
                "keyboard_type": "jis"
            }
        }
    ]
}
```

##あとは言語の設定キー
私はフランス語とロシア語も高頻度で使うので、以前のKarabinerではできていた、言語の切替や言語ごとのキーボード設定がKarabiner-Elementsだけでできるようになれば最高です。

とにかく、私、いま、とっても幸せです！

参考:
https://github.com/tekezo/Karabiner-Elements
https://github.com/tekezo/Karabiner-Elements/blob/master/usage/README.md
https://github.com/tekezo/Karabiner-Elements/tree/master/examples
https://github.com/tekezo/Karabiner-Elements/pull/247