WebDesigner's Memorandumウェブデザイナーの備忘録

Karabiner-Elementsの独自ルールの作成方法

Karabiner-Elementsに独自ルールを追加する

Karabiner-ElementsのComplex Modificationsでは、複雑なルールを追加してキーボードをより便利にカスタマイズできますが、一見するとインターネット上に公開しているものしか追加できないように思えてしまいます。

  • 自分の好みのルールがない
  • 機能的には欲しいけど、別のキーに設定したい

今回は、このように感じたひとのために、Karabiner-Elementsで独自ルールを作成方法をまとめておきます。

独自ルールの作り方

Karabiner-ElementsのルールはJSON形式で作られていて、下記のようにルールの設定をしていきます。

{
  "title": "ここに独自ルールのタイトルを入力",
  "rules": [
    {
      "description": "ルールの説明",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "i",
            "modifiers": {
              "mandatory": [
                "fn"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "up_arrow"
            }
          ]
        }
      ]
    }
  ]
}

このJSONはfn + iキーを押すと上矢印が入力されるルールです。

ものすごくザックリ説明するとfromには変更前のキーを入力し、toに変更後のキーを入力することで、キーバインドの変更を設定しています。

更に細かく知りたい場合は、Karabiner-Elementsのリファレンスがありますので、そちらをご覧ください。

独自ルールの配置場所

独自ルールは.json拡張子で保存して、下記フォルダ内に配置します。

/Users/ユーザ名/.config/karabiner/assets/complex_modifications

ここに保存してKarabiner-Elementsの「Complex Modifications」の「Add rule」ボタンをクリックすると、配置したルールが反映されています。

独自ルールの反映

あとは「Enable」をクリックすれば他のルールと同じように使えます。

自分の場合は「complex_modifications」フォルダをシンボリックリンクにして、元のフォルダはDropboxに移動させています。

こうすることで、Macの移行の際も設定が一瞬で終わります。

既存ルールの閲覧 → キーの変更

独自ルールの追加方法が分かっても、1からルールを作るのはハードルが高いものです。

しかし、独自ルールの追加方法が分かれば、Karabiner-Elements complex_modifications rulesで公開されているルールを引っ張ってきて、好みのキーに変更することができるようになります。

まずは、Karabiner-Elements complex_modifications rulesにアクセスして「Import」ボタン横にある三角ボタンを押して「Show JSON」を選択します。

Karabiner-Elements Add rules

するとJSONが表示されるので、これをコピーして「complex_modifications」フォルダ内にJSONファイルを保存します。

Karabiner-Elements JSONの閲覧

あとは"key_code"の部分だけ変更していけば、好きなキーにカスタマイズできます。

この方法を使えば「機能的には欲しいけど、別のキーに設定したい」ルールを、自分好みにカスタマイズできますよね。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね