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」を選択します。

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

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


Illustratorの環境設定ファイルを再生成する方法
Gyazo Proにすると「画像キャプチャから編集、共有」までの流れがかなりラクになった
Google Meetをさらに便利にする便利なChrome拡張機能と、公式でサポートされるようになった機能
Alfred 4のAppearance Optionsから外観の設定を行う
Macでデュアルディスプレイ時に、通知を表示するディスプレイを指定する方法
Alfredで複数のアプリケーションを一気に起動できるようにする
Path Finder 8の一括名称変更で使える設定サンプルまとめ
Path Finder 10がリリース!Big Surに完全対応したり、AirDropが使えるように!
Homebrew Caskで自分がMacにインストールしているアプリの管理を行う
Google Chromeでタブのグループ化機能を使う方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Alfred 4のファイル検索時にプレビュー表示ができるPreviewsの設定項目まとめ
Macユーザーにオススメのスニペットアプリ「Dash」でコードや定型文の管理を行う
SourceTreeのカスタムアクションを使って差分ファイルだけをまとめる方法
macOSの効率化に関するDiscordコミュニティ「CMD-F」を立ち上げました
JetpackでのError during WebSocket handshakeの解決方法
Path Finder 8で動作がおかしいと思ったときにチェックすること
CSSで::placeholderにスタイルを設定する方法
Path Finder 8の一括名称変更機能を使って楽にファイル名を変更する
Google Chromeで「パスワードを保存しますか?」ポップアップを非表示にする方法
Webデザイナーを目指す専門学生が技術ブログを書くメリット