Karabiner: как переназначить Caps Lock на Mac (и не только)
Caps Lock — самая бесполезная клавиша на современной клавиатуре. Я не помню, когда последний раз мне нужно было НАПИСАТЬ ВОТ ТАК, а место под левым мизинцем — лучшее на всей клавиатуре. Расскажу, как я переназначила Caps Lock в Karabiner, и заодно дам пару моих рабочих сценариев, которые экономят кучу движений в день.
Почему Karabiner, а не системные настройки
Macos сам умеет переназначить Caps Lock на Control, Esc или другой модификатор — System Settings → Keyboard → Keyboard Shortcuts → Modifier Keys. Этого хватит, если ты хочешь простую замену.
Но если ты хочешь:
- чтобы короткое нажатие Caps Lock работало как Esc, а удержание — как Ctrl;
- чтобы Caps Lock + любая клавиша превращалась в кастомное сочетание;
- чтобы у тебя был «hyper key» — единый супер-модификатор для своих горячих клавиш;
тогда нужен Karabiner-Elements. Бесплатный, открытый, работает на macOS Sequoia и новее.
Caps Lock как Esc + Ctrl
Это база. Vim-юзеры, разработчики и все, кто живут в терминале, плачут от радости.
Открываешь Karabiner-Elements, заходишь в Complex Modifications → Add rule → Add your own rule, и кладёшь туда такой JSON:
{
"description": "Caps Lock to Escape (tap) and Control (hold)",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": { "optional": ["any"] }
},
"to": [
{ "key_code": "left_control", "lazy": true }
],
"to_if_alone": [
{ "key_code": "escape" }
]
}
]
}«Tap» — короткое нажатие, отпускание сразу. «Hold» — удержание для зажатого модификатора. Лично я живу с этим уже три года, и руки не помнят, как было раньше.
Hyper Key
Это шаг дальше. Делаем из Caps Lock «hyper» — клавишу, которая внутри Karabiner соответствует одновременному нажатию Cmd + Ctrl + Option + Shift. Такое сочетание никогда не используется в обычных приложениях, поэтому на нём можно собрать целую сетку своих горячих клавиш.
{
"description": "Caps Lock to Hyper, Escape on tap",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": { "optional": ["any"] }
},
"to": [
{
"key_code": "left_shift",
"modifiers": ["left_command", "left_control", "left_option"]
}
],
"to_if_alone": [
{ "key_code": "escape" }
]
}
]
}Теперь в Karabiner можно повесить, например:
- Hyper + j — открыть Slack.
- Hyper + k — открыть Notion.
- Hyper + h — переключить на iTerm.
- Hyper + p — открыть pomodoro-таймер.
Я раздаю эти триггеры в Raycast: настраиваешь там Quicklink/Snippet или Window Management, ставишь Hyper-комбинации, и всё. Один мизинец вместо неудобных Cmd+Shift+Option+что-то.
Двойное нажатие Shift
Ещё один сценарий, который я люблю — двойной Shift открывает Raycast. Удобно: правая рука над буквами, не нужно тянуться к Cmd+Space.
{
"description": "Double tap right shift to open Raycast",
"manipulators": [
{
"type": "basic",
"conditions": [
{ "type": "variable_if", "name": "shift_recent", "value": 1 }
],
"from": { "key_code": "right_shift" },
"to": [
{
"shell_command": "open -a 'Raycast'"
}
]
},
{
"type": "basic",
"from": { "key_code": "right_shift" },
"to": [
{ "set_variable": { "name": "shift_recent", "value": 1 } },
{ "key_code": "right_shift" }
],
"to_delayed_action": {
"to_if_invoked": [
{ "set_variable": { "name": "shift_recent", "value": 0 } }
]
}
}
]
}Профили под клавиатуры
Я работаю на Mac с тремя клавиатурами: внутренней MacBook, ZSA Voyager (внешняя split) и Magic Keyboard у внешнего монитора. На split у меня уже есть кастомная раскладка в самой клавиатуре (через Oryx), поэтому Karabiner на ней почти не нужен. На двух других — нужен.
Karabiner поддерживает Devices → Modify events for the following devices. Я завёл два профиля и переключаю их вручную, когда меняю клавиатуру. Можно сделать автопереключение через скрипт, но это уже перегиб.
Что важно знать
- Karabiner после macOS Sonoma/Sequoia требует выдать Input Monitoring и Accessibility доступ. Без этого ничего работать не будет.
- После апгрейда macOS иногда нужно дать разрешения заново. Если перестало работать после апдейта — иди в Privacy & Security и проверь.
- Для редких системных клавиш (eject, function keys) есть EventViewer — встроенный в Karabiner просмотрщик. Открываешь, нажимаешь клавишу, видишь её код. Без этого не сделать кастомных привязок к нестандартным клавишам.
Чего не делаю
Не превращаю Karabiner в полноценный текстовый процессор с автозаменами. Для этого есть Espanso или встроенный Text Replacement. Karabiner — про клавиши и модификаторы, а не про абзацы текста.
Что в итоге
Если ты на Mac и работаешь хоть сколько-то с клавиатурой — Caps Lock в Esc/Ctrl сделай прямо сейчас, это занимает 5 минут и меняет твою жизнь. Hyper Key — следующий шаг для тех, кто живёт в горячих клавишах. И, пожалуйста, не пытайся сразу собрать сложную систему — добавляй по одной привязке в неделю, чтобы пальцы запомнили.