試行錯誤ダイアリー

新卒エンジニアが日々の技術的な学び,働き方,日々感じたこと等を書きます

Karabiner-Elements キーマップ設定

OSをSierraにしてからKarabinerが使えなくなった.
ですが,Karabiner-Elements なるものがSierra以降の対応版として存在します.

以前こちらの記事でオススメのキーボードとして紹介した
blog.trial-and-error-diary.fun

FILCO Majestouch MINILA US67のようなショートカットが使える設定に変更したので紹介.
キー配列設定はJIS配列版とUS配列版の2種類を用意しました.

環境

OS:MacOSX Sirrra
キーボード配列:JIS配列

キーマップ対応

キーマップ変換は以下の通り

変換前 変換後
かな Fn
英数 Fn
Fn + E
Fn + S
Fn + D
Fn + F
Fn + K Home(macでは行頭に移動のCtrl + A)
Fn + , End(macでは行末に移動のCtrl + E)
Fn + : Return
Fn + ; BackSpace

※英数かな変換はCmd+Spaceで入力ソース切り替えで対応 f:id:appli-in:20180112232815p:plain

設定ファイル編集

まずKarabiner-Elementsを起動し,Simple Modificationのタブの項目を以下の様に設定します. f:id:appli-in:20180523003404p:plain

これで事前準備は完了です.

ここからはjsonファイルを編集し細かい設定を記述していきます. 編集方法に関しては,公式ドキュメントがあるのでそちらを参照します.

以下では「Fn + fを→」に変換する設定を例に設定の仕方を紹介します.
(記事の最後に設定ファイルのjsonファイルを記述します.)

まず,jsonファイルを作成してその中にこのように設定を書き込みます.

{
  "title": "FILCO Majestouch MINILA Like Configulation",
  "rules": [
    {
      "description": "fn + f -> right_arrow",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "f",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_arrow"
            }
          ]
        }
      ]
    }
  ]
}

そしてそのファイルを

~/.config/karabiner/assets/complex_modifications/

の中に入れてKarabiner-Elementsを開いて
Complex_modificationsの"add rules"を押すと
こんな感じに表示されるので
f:id:appli-in:20180113014419p:plain
Enable を押すと適用されます.
※うまく行かない場合は再起動してみてください.

Karabinerのときと若干キーコードが変わっているっぽいので Karabiner-ElementsのEvent Viewerで確認したほうが良さそうです

この記事によると
どうやらjsonファイル名は数字でないと認識しないこともあるみたい(もう修正されているのかもしれません)
qiita.com

設定ファイル(jsonファイル)

設定ファイルです. Githubにも置いています. Github : Karabiner-Conf

JIS配列の場合

{
  "title": "FILCO Majestouch MINILA Like Configulation for JIS",
  "rules": [
    {
      "description": "fn + f -> right_arrow",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "f",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_arrow"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + d -> down_arrow",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "d",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "down_arrow"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + e -> up_arrow",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "e",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "up_arrow"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + s -> left_arrow",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "s",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_arrow"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + semicolon -> delete_or_backspace",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "semicolon",
            "modifiers": {
              "mandatory": [
                "fn"
              ],              
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "delete_or_backspace"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + colon -> return_or_enter",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "quote",
            "modifiers": {
              "mandatory": [
                "fn"
              ],      
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "return_or_enter"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + k -> home",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "k",
            "modifiers": {
              "mandatory": [
                "fn"
              ],      
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "a",
              "modifiers": ["control"]
            }
          ]
        }
      ]
    },

    {
      "description": "fn + , -> end",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "comma",
            "modifiers": {
              "mandatory": [
                "fn"
              ],      
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "e",
              "modifiers": ["control"]
            }
          ]
        }
      ]
    }

  ]
}

US配列の場合

Karabiner-ElementsのSimple Modificationの部分を必要に応じて以下の様に編集してください.

left command -> Fn
right command -> Fn
caps lock -> left command
Fn -> left control

実際に適用して使ったわけではないので,もしかしたら修正が必要かもしれません.

{
  "title": "FILCO Majestouch MINILA Like Configulation for US",
  "rules": [
    {
      "description": "fn + f -> right_arrow",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "f",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_arrow"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + d -> down_arrow",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "d",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "down_arrow"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + e -> up_arrow",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "e",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "up_arrow"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + s -> left_arrow",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "s",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_arrow"
            }
          ]
        }
      ]
    },

    {
      "description": "fn + semicolon -> delete_or_backspace",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "semicolon",
            "modifiers": {
              "mandatory": [
                "fn"
              ],              
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "delete_or_backspace"
            }
          ]
        }
      ]
    },


    {
      "description": "fn + k -> home",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "k",
            "modifiers": {
              "mandatory": [
                "fn"
              ],      
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "a",
              "modifiers": ["control"]
            }
          ]
        }
      ]
    },

    {
      "description": "fn + , -> end",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "comma",
            "modifiers": {
              "mandatory": [
                "fn"
              ],      
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "e",
              "modifiers": ["control"]
            }
          ]
        }
      ]
    }

  ]
}