Karabiner-Elementsでcaps lockで修飾キー全押し、caps lock + 修飾キーで押したキー以外の修飾キーを押す方法(reverseキー)
タイトルだけだと、理解できない人もいるかもしませんが、下記の挙動をするキーをKarabiner-Elementsで作成します。
押すキー | 押されたことになるキー |
---|---|
caps lock | control + option + shift + command |
caps lock + control | option + shift + command |
caps lock + option | control + shift + command |
caps lock + shift | control + option + command |
caps lock + command | control + option + shift |
本来であれば、control + option + shift + commandは4つのキーを同時に押す必要がありますが、caps lockを1つ押すだけで済みます。
さらに、caps lockと他の修飾キーを一緒に押すと、4つの修飾キーの中から押されたキーを引いたキーが押されたことになります。
この挙動も本来は3つのキーを同時に押す必要があるところを2つで済むようになります。
このような挙動をするキーを勝手に「reverseキー」と呼んでいます。
Karabiner-Elementsの設定
下記のパスに新しい.json
を作成して、Karabiner-Elementsに独自ルールを追加します。
/Users/ユーザ名/.config/karabiner/assets/complex_modifications
かなり長いですが、ファイルの中身は下記のJSONを貼り付けて保存します(もっとスマートなやり方があるかもしれません)。
{
"title": "reverse key",
"rules": [
{
"description": "Change caps_lock key to reverse key",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "caps_lock"
},
"to": [
{
"key_code": "left_shift",
"lazy": true,
"modifiers": [
"left_command",
"left_control",
"left_option"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"shift"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_command",
"lazy": true,
"modifiers": [
"left_option",
"left_control"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"command"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_shift",
"lazy": true,
"modifiers": [
"left_control",
"left_option"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"option"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_shift",
"lazy": true,
"modifiers": [
"left_command",
"left_control"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"control"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_shift",
"lazy": true,
"modifiers": [
"left_command",
"left_option"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"shift",
"command"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_option",
"lazy": true,
"modifiers": [
"left_control"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"shift",
"option"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_command",
"lazy": true,
"modifiers": [
"left_control"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"shift",
"control"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_command",
"lazy": true,
"modifiers": [
"left_option"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"command",
"option"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_shift",
"lazy": true,
"modifiers": [
"left_control"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"command",
"control"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_shift",
"lazy": true,
"modifiers": [
"left_option"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"control",
"option"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "left_shift",
"lazy": true,
"modifiers": [
"left_command"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"command",
"option",
"control"
],
"optional": [
"caps_lock"
]
}
},
"to": {
"key_code": "left_shift",
"lazy": true
}
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"command",
"option",
"shift"
],
"optional": [
"caps_lock"
]
}
},
"to": {
"key_code": "left_control",
"lazy": true
}
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"command",
"control",
"shift"
],
"optional": [
"caps_lock"
]
}
},
"to": {
"key_code": "left_option",
"lazy": true
}
},
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": [
"option",
"control",
"shift"
],
"optional": [
"caps_lock"
]
}
},
"to": {
"key_code": "left_command",
"lazy": true
}
}
]
}
]
}
保存したら、Karabiner-Elementsを起動して[Complex modifications]→[Rules]の「Add rule」で「Change caps_lock key to reverse key」を追加(Enable)します。
キーを押す順番
caps lockは他の修飾キーとは違う特殊なキーのため、ショートカットキーを押す順番が制限されてしまいます。
具体的には「修飾キー → caps lock → 他のキー」と入力しないとreverseキーの挙動になりません。
逆に「caps lock → 修飾キー → →他のキー」の場合は修飾キー全押し判定になってしまいます。