![見出し画像](https://assets.st-note.com/production/uploads/images/140319417/rectangle_large_type_2_ee5416f9fb9d034d7965cb804eecfd3d.png?width=800)
Karabiner-Elementsで自作キーボードのレイヤー機能を再現する方法
![](https://assets.st-note.com/img/1715453149387-T9h86lG3xe.png?width=800)
記事通りに進めると、スペースを押しながらテンキーの数字キーや、スクショコマンドが打てるレイヤーが実装できるはずです。
⓪Karabiner-Elementsをダウンロード
ダウンロード後、案内の通りに権限を与えてください。SimpleModificationでキーの書き換えができることを確認したらOK!
①テンプレートファイルをダウンロード
②ファイルを移動
~/.config/karabiner/assets/complex_modifications
上記のパスにファイルを移動してください。
パスをコピーしてFinderを開き「⇧⌘G」でフォルダに移動。ファイルをドラドロ。完了するとこんな感じになります。
![](https://assets.st-note.com/img/1715454313056-IdX8oXhMHu.png?width=800)
MacBook本体キーボードなら何も変更しなくても多分大丈夫ですが、他のキーボードの場合はKarabiner-ElementsでIDを確認、VisualCodeなどのエディタで変更をしてください。
これは特定のデバイスのみでキーの変更が行われるようにするために必要です。
③Karabiner-Elementsで設定をインポート
![](https://assets.st-note.com/img/1715454554123-2wlWMTNRtU.png?width=800)
![](https://assets.st-note.com/img/1715454563604-Hu16GPiRoZ.png?width=800)
![](https://assets.st-note.com/img/1715454579510-Q2NG3ALu4Z.png?width=800)
上から書き換えが実行されていきます。
スペースを押しながらASDFあたりを押してみて数字が入力されれば成功です。
VSCodeで自分なりにカスタマイズしてみましょう!
④自分で好きなコマンドを好きな位置に入れてみよう
VisualStudioCodeなどのエディタでファイルを編集します。入ってなければダウンロードしましょう。
さっきのcomplex_modificationsフォルダをエディタで開いて、編集します。
![](https://assets.st-note.com/img/1715454984405-1c24Vyp9dC.png?width=800)
LayerSpacebar.jsonには2つの書き換えルールがあります。
"to": [
{
"set_variable": {
"name": "layerSpacebar",
"value": 1
}
}
],
"to_if_alone": [
{
"key_code": "spacebar"
}
],
"to_after_key_up": [
{
"set_variable": {
"name": "layerSpacebar",
"value": 0
}
}
]
1つ目のルールはスペースを押すと変数の値を変更して、もしスペースしか押されなかった時はスペースを出力し、キーが持ち上がったら変数の値を戻すものです。
この変数を条件付けに使用してレイヤー機能を擬似的に再現できます。これはフォロイーに教えてもらった。
2つ目のルールはキーマップ分あるのでかなり長いです。
例えばスペースを押しながら「1」を押した時の挙動はこうなってる。
![](https://assets.st-note.com/img/1715456052400-QIMtnwAGQm.png?width=800)
Device_ifの部分はMacBookの本体キーボードのIDなので、他の自分のキーボードでやりたい場合はそのIDに書き換える必要があります。
vk_noneは虚無のキーコードです。
ここを書き換えればスペース押しながら押した時に出力されるキーが変えられます。コピーのコマンド⌘Cを入れたかったら
"key_code": "c", "modifiers": "left_command"
みたいに"to"の中身を書けば良いわけです。2つ以上の修飾キーなら[]でくくる感じ。スクショのコマンドを真似すればおっけい。
キーの綴りやがわからないときはEvent Viewerかググるか。
![](https://assets.st-note.com/img/1715456851886-fU58uzGZJ0.png)
![](https://assets.st-note.com/img/1715456941495-5pMTit5gu4.png?width=800)
って感じでテンプレファイルを自由にカスタマイズしていってください!
JISの場合キーコードと名前が異なるところがあるので注意。
終わり
どうでしょうか?
好きなコマンドを親指ともう一つの指だけで完結できるのはかなり便利なはずです。
また、アプリを識別する条件もつけられるのでアプリ別にショートカットを構築するのも可能です。
この記事ではレイヤ機能を再現しましたが、Tap・Hold、ダブルタップ、コンボ(同時押し)なども可能です。サンプルファイルはここに置いておいたので、よければ使ってみてください。
最強すぎるKarabiner-Elements。
僕もあんまりわかってないままこの記事を書いているので、より良い書き換え方法があったら教えてください!多分動きはします。
皆さんのキーボード環境が良くなれば幸いです。それでは〜