Настройка Karabiner-Elements для переназначения клавиш на Mac

Переназначить клавиши в macOS через Karabiner-Elements можно за 10 минут: ставите приложение, выдаёте нужные разрешения, делаете простые замены в Simple Modifications или включаете готовые правила в Complex Modifications (например, Caps Lock → Hyper, а по одиночному нажатию — Escape).

Оглавление

Когда хватит macOS, а когда нужен Karabiner

Встроенных настроек macOS достаточно, если нужно лишь поменять модификаторы местами (например, CommandControl) или сделать Caps Lock → Control/Escape — и иногда даже отдельно для конкретной клавиатуры.

Karabiner-Elements нужен, когда вы хотите:

  • Hyper Key (обычно Control + Option + Shift + Command) на одной клавише;
  • поведение “нажал = одно, удержал = другое” (например, тап по Caps Lock = Escape);
  • разные правила для конкретных приложений (IDE/терминал/виртуальная машина);
  • “слои” навигации (стрелки на домашнем ряду и т.п.).

Установка и разрешения macOS (если “не работает”)

После установки Karabiner-Elements критично выдать разрешения, иначе переназначение не применится.

Проверьте в System Settings → Privacy & Security:

  • Input Monitoring — включите для компонентов Karabiner (обычно Karabiner-Elements и/или Karabiner-...Service).
  • Accessibility (если используется в вашей версии/сборке правил) — иногда требуется для корректной обработки событий. А также в System Settings → General → Login Items:
  • включите фоновые элементы Karabiner, чтобы правила работали после перезагрузки.

После изменения разрешений часто нужен перезапуск приложения, иногда — выход из учётной записи или перезагрузка Mac. Если “вчера работало, сегодня нет” — начните с этого.

Simple Modifications: быстрые замены 1→1

Раздел Simple Modifications — самый безопасный старт: одна клавиша всегда превращается в другую без условий и “магии”.

Практичные варианты:

  • caps_lock → left_control (удобно для горячих клавиш);
  • left_command ↔ left_control (если используете Windows-клавиатуру);
  • редкие клавиши можно отдать под нужные (например, right_option под дополнительный модификатор).

Если подключено несколько клавиатур, убедитесь, что меняете правило для нужного устройства (в Karabiner это настраивается по девайсу).

Complex Modifications: Hyper Key, tap vs hold, правила по приложениям

Complex Modifications — это правила на JSON: условия, “тап/холд”, комбинации модификаторов, привязка к приложениям. Начните с готовых “predefined rules”, а уже потом правьте вручную.

Caps Lock → Hyper при удержании и Escape по тапу

Логика обычно такая: удержание Caps Lock даёт Hyper, одиночное нажатие — Escape. Схема минимального правила выглядит так (идея структуры):

{
  "description": "CapsLock: Hyper when held, Escape when tapped",
  "manipulators": [
    {
      "type": "basic",
      "from": { "key_code": "caps_lock" },
      "to": [
        {
          "key_code": "left_shift",
          "modifiers": ["left_command", "left_control", "left_option"]
        }
      ],
      "to_if_alone": [{ "key_code": "escape" }]
    }
  ]
}

Не включайте одновременно несколько правил “CapsLock→Hyper” из разных наборов: частый результат — пропадает Escape, “залипают” модификаторы или конфликтуют горячие клавиши.

Правила только для конкретных приложений

Чтобы ремап работал, например, только в виртуальной машине или только в IDE, используйте условие frontmost application (по bundle id). Принцип: действие применяется, только когда приложение на переднем плане.

Где лежат конфиги и как добавлять свои правила

Полезно для бэкапа и переноса настроек:

  • основной файл профилей: ~/.config/karabiner/karabiner.json
  • пользовательские наборы complex-правил: ~/.config/karabiner/assets/complex_modifications/

Рабочий способ добавления своего правила:

  1. Сохраните .json в assets/complex_modifications/.
  2. Откройте Complex Modifications → Add predefined rule.
  3. Найдите описание правила и нажмите Enable.

Частые ошибки

  • Не выданы разрешения Input Monitoring / отключены фоновые элементы — правило включено, но нажатия не перехватываются.
  • Правило включено не в том профиле — проверьте вкладку Profiles и активный профиль.
  • Karabiner “видит” не тот key_code — откройте Karabiner-EventViewer и посмотрите, что реально приходит от клавиатуры.
  • Конфликт правил и порядок применения — complex-правила применяются сверху вниз; дубликаты лучше отключить.
  • Ожидали F1–F12, а получаете яркость/звук — в macOS функциональный ряд может работать как медиакнопки; это влияет на то, какие события получают приложения.

FAQ

Можно ли сделать разные правила для встроенной и внешней клавиатуры?
Да. Karabiner умеет привязывать Simple/Complex правила к конкретному устройству — это удобно, если внешняя клавиатура “под Windows”, а встроенная остаётся “по-маковски”.

Как понять, почему переназначение не сработало?
Сначала проверьте разрешения macOS, затем откройте Karabiner-EventViewer: если нажатие не отображается — проблема в доступах/службах; если отображается, но не меняется — конфликт или неверное правило.

Что лучше: Simple или Complex?
Для “поменять одну клавишу на другую” — Simple. Для Hyper Key, tap/hold, условий по приложениям и слоёв — Complex.

Где хранить настройки для переноса на другой Mac?
Обычно достаточно каталога ~/.config/karabiner/. Перед переносом убедитесь, что на новом Mac вы заново выдали разрешения (они не мигрируют вместе с файлами).