lenec ru

← все посты

Karabiner: как переназначить Caps Lock на Mac (и не только)

18K

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 — следующий шаг для тех, кто живёт в горячих клавишах. И, пожалуйста, не пытайся сразу собрать сложную систему — добавляй по одной привязке в неделю, чтобы пальцы запомнили.

Комментарии 0

  • Будьте первым, кто оставит комментарий.

Войдите, чтобы оставить комментарий.