Kalabiner-Elementsを使ったキーボード設定のメモ

Eisu+jkli で上下右左に移動する。
```
{
    // グループ名です。何でも良い。
    "title": "My Options",
    "rules": [
        {
            // 名前です。何でも良い。
            "description": "Change Eisu + JKLI to arrow keys",
            "manipulators": [
                // 変数を用意して、英数キーを押してるかどうか判別する
                {
                  "from": {
                    "key_code": "japanese_eisuu",
                    "modifiers": {
                    // caps_lockを押してても有効にする
                      "optional": [
                          "caps_lock"
                      ]
                    }
                  },
                // キーを押したらeisuuに1を入れる
                  "to": [
                    {
                      "set_variable": {
                        "name": "eisuu",
                        "value": 1
                      }
                    }
                  ],
                // キーを離したらeisuuに0を入れる
                  "to_after_key_up": [
                    {
                      "set_variable": {
                        "name": "eisuu",
                        "value": 0
                      }
                    }
                  ],
                // 通常は元の動作
                  "to_if_alone": [
                    { 
                      "key_code": "japanese_eisuu"
                    }
                  ],
                  "type": "basic"
                },
                {
                // 英数キーを押してる場合のみ（eisuuに1が入ってる場合のみ）
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],
                // 変換元
                  "from": { 
                    "key_code": "j",
                    "modifiers": {
                    // 他のキーとの組み合わせも有効にする 
                      "optional": [
                        "any"
                      ]
                    }
                  },
                // 変換先
                  "to": [
                    { 
                      "key_code": "left_arrow"
                    }
                  ],
                  "type": "basic"
                },
                {
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],
                  "from": { 
                    "key_code": "k",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  },
                  "to": [
                    { 
                      "key_code": "down_arrow"
                    }
                  ],
                  "type": "basic"
                },
                {
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],
                  "from": { 
                    "key_code": "l",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  },
                  "to": [
                    { 
                      "key_code": "right_arrow"
                    }
                  ],
                  "type": "basic"
                },
                {
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],                  
                  "from": { 
                    "key_code": "i",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  },
                  "to": [
                    { 
                      "key_code": "up_arrow"
                    }
                  ],
                  "type": "basic"
                },
                {
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],
                  "from": { 
                    "key_code": "h",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  },
                  "to": [
                  // optionキー + 左矢印
                    { 
                      "key_code": "left_arrow",
                      "modifiers": [
                        "left_option"
                      ]
                    }
                  ],
                  "type": "basic"
                },
                {
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],
                  "from": { 
                    "key_code": "g",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  },
                  "to": [
                    { 
                      "key_code": "a",
                      "modifiers": [
                        "left_control"
                      ]
                    }
                  ],
                  "type": "basic"
                },
                {
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],                    
                  "from": { 
                    "key_code": "semicolon",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  },
                  "to": [
                    { 
                      "key_code": "right_arrow",
                      "modifiers": [
                        "left_option"
                      ]
                    }
                  ],
                  "type": "basic"
                },
                {
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],                    
                  "from": { 
                    "key_code": "quote",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  },
                  "to": [
                    { 
                      "key_code": "e",
                      "modifiers": [
                        "left_control"
                      ]
                    }
                  ],
                  "type": "basic"
                },
                {
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],                    
                  "from": { 
                    "key_code": "o",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  },
                  "to": [
                    { 
                      "key_code": "return_or_enter"
                    }
                  ],
                  "type": "basic"
                },
                {
                  "conditions": [
                    { 
                      "name": "eisuu", 
                      "type": "variable_if", 
                      "value": 1
                    }
                  ],                    
                  "from": { 
                    "key_code": "u",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  },
                  "to": [
                    { 
                      "key_code": "delete_or_backspace"
                    }
                  ],
                  "type": "basic"
                },
                {
                    "conditions": [
                        { 
                            "name": "eisuu", 
                            "type": "variable_if", 
                            "value": 1
                        }
                    ],
                    "from": { 
                        "key_code": "c",
                        "modifiers": {
                            "optional": [
                                "any"
                            ]
                        }
                    },
                    "to": [
                        { 
                            "key_code": "c",
                            "modifiers": [
                                "left_command"
                            ]
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        { 
                            "name": "eisuu", 
                            "type": "variable_if", 
                            "value": 1
                        }
                    ],
                    "from": { 
                        "key_code": "x",
                        "modifiers": {
                            "optional": [
                                "any"
                            ]
                        }
                    },
                    "to": [
                        { 
                            "key_code": "x",
                            "modifiers": [
                                "left_command"
                            ]
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        { 
                            "name": "eisuu", 
                            "type": "variable_if", 
                            "value": 1
                        }
                    ],
                    "from": { 
                        "key_code": "v",
                        "modifiers": {
                            "optional": [
                                "any"
                            ]
                        }
                    },
                    "to": [
                        { 
                            "key_code": "v",
                            "modifiers": [
                                "left_command"
                            ]
                        }
                    ],
                    "type": "basic"
                },
                {
                    "type": "basic",
                    "description": "英数＋aで全選択",
                    "conditions": [
                        { 
                            "name": "eisuu", 
                            "type": "variable_if", 
                            "value": 1
                        }
                    ],
                    "from": { 
                        "key_code": "a",
                        "modifiers": {
                            "optional": [
                                "any"
                            ]
                        }
                    },
                    "to": [ 
                      { "key_code": "a", "modifiers": ["left_command"] }
                    ]
                  },
                  {
                    "type": "basic",
                    "description": "英数＋dでdelete",
                    "conditions": [
                        { 
                            "name": "eisuu", 
                            "type": "variable_if", 
                            "value": 1
                        }
                    ],
                    "from": { 
                        "key_code": "d",
                        "modifiers": {
                            "optional": [
                                "any"
                            ]
                        }
                    },
                    "to": [ 
                      { "key_code": "delete_forward" }
                    ]
                  },
                  {
                    "type": "basic",
                    "description": "英数＋zで戻る",
                    "conditions": [
                        { 
                            "name": "eisuu", 
                            "type": "variable_if", 
                            "value": 1
                        }
                    ],
                    "from": { 
                        "key_code": "z",
                        "modifiers": {
                            "optional": [
                                "any"
                            ]
                        }
                    },
                    "to": [ 
                      { "key_code": "z", "modifiers": ["left_command"] }
                    ]
                  },
                  {
                    "description": "かなキーで入力をトグルできるようにする",
                    "manipulators": [
                      {
                        "type": "basic",
                        "description": "入力ソースが英字の場合、かなキーによりひらがなに切り替える",
                        "from": { "key_code": "japanese_kana" },
                        "to": [ { "key_code": "japanese_kana" } ],
                        "conditions": [
                          {
                            "type": "input_source_if",
                            "input_sources": [ { "language": "en" } ]
                          }
                        ]
                      },
                      {
                        "type": "basic",
                        "description": "入力ソースがひらがなの場合、かなキーにより英字に切り替える",
                        "from": { "key_code": "japanese_kana" },
                        "to": [ { "key_code": "japanese_eisuu" } ],
                        "conditions": [
                          {
                            "type": "input_source_if",
                            "input_sources": [ { "language": "ja", "input_mode_id": "com.apple.inputmethod.Japanese" } ]
                          }
                        ]
                      }
                    ]
                  }

            ]
        }
    ]
}
```
かなkeyで入力を英数とトグルできるようにする。
```
{
    "title": "自分用の設定",
    "rules": [
      {
        "description": "かなキーで入力をトグルできるようにする",
        "manipulators": [
          {
            "type": "basic",
            "description": "入力ソースが英字の場合、かなキーによりひらがなに切り替える",
            "from": { "key_code": "japanese_kana" },
            "to": [ { "key_code": "japanese_kana" } ],
            "conditions": [
              {
                "type": "input_source_if",
                "input_sources": [ { "language": "en" } ]
              }
            ]
          },
          {
            "type": "basic",
            "description": "入力ソースがひらがなの場合、かなキーにより英字に切り替える",
            "from": { "key_code": "japanese_kana" },
            "to": [ { "key_code": "japanese_eisuu" } ],
            "conditions": [
              {
                "type": "input_source_if",
                "input_sources": [ { "language": "ja", "input_mode_id": "com.apple.inputmethod.Japanese" } ]
              }
            ]
          }
        ]
      }
      
    ]
  }
  
```