Karabiner-Elements: Полный контроль над клавиатурой и мышью на Mac
Что такое Karabiner-Elements?
Karabiner-Elements — это мощный инструмент для настройки клавиатуры и мыши в macOS, позволяющий полностью контролировать поведение клавиш. Принцип работы приложения прост: оно перехватывает сигналы от устройств и изменяет их перед отправкой в систему.
Зачем мне это понадобилось?
Я случайно приобрёл клавиатуру RSQ-20052:
Эта клавиатура имеет раскладку под Windows. Да, часть клавиш можно переназначить стандартными средствами системы или софта производителя, но функционал таких решений сильно ограничен. В настройках macOS можно поменять местами ⌘, ⌃ и ⌥, но мне хотелось более гибкой настройки.
Кроме того, у меня есть мышь Logitech с дополнительными кнопками, которые по умолчанию не работают на macOS. Их тоже хотелось бы задействовать.
Установка
Karabiner-Elements можно установить либо с официального сайта, либо через Homebrew — я выбрал второй способ:
brew install karabiner-elements
После установки и первого запуска приложения необходимо дать разрешения на использование драйверов. Приложение само покажет, куда зайти и что нажать.
После всех этих шагов у вас будут доступны два приложения:
- Karabiner-Elements — основное приложение для настройки клавиатуры и мыши.
- Karabiner-EventViewer — утилита для просмотра событий от ваших устройств, полезна для определения кодов нажимаемых клавиш.
Настройка мыши
- Открываем Karabiner-EventViewer и нажимаем нужные кнопки на мыши, чтобы узнать их точные идентификаторы.
- Переходим в Karabiner-Elements → Simple Modifications.
- Выбираем ваше устройство (мышь) из списка. Определить модель можно по названию.
- Назначаем новое действие для каждой кнопки по принципу: «Что заменить → Чем заменить».
Настройка клавиатуры
Для сложных переназначений используется раздел Complex Modifications. Он позволяет создавать комбинации и более тонко настраивать поведение клавиш.
- С помощью Karabiner-EventViewer узнаём точные названия клавиш.
- В Karabiner-Elements переходим в Complex Modifications → Add your own rule.
- Вставляем следующий JSON-конфиг:
{ "conditions": [ { "identifiers": [ { "manufacturer": "GSKY", "product": "RSQ-20052", "product_id": 58383, "transport": "USB", "vendor_id": 13357 } ], "type": "device_if" } ], "description": "Make RSQ-20052 for MacOS", "manipulators": [ { "description": "Change Left Alt to Left ⌘", "from": { "key_code": "left_option" }, "to": [{ "key_code": "left_command" }], "type": "basic" }, { "description": "Change Left ⊞ to Left Alt", "from": { "key_code": "left_command" }, "to": [{ "key_code": "left_option" }], "type": "basic" }, { "description": "Change Right Alt to Right ⌘", "from": { "key_code": "right_option" }, "to": [{ "key_code": "right_command" }], "type": "basic" }, { "description": "Change Print Screen to ⌘+⇧+5 (MacOS Screenshot menu)", "from": { "key_code": "print_screen" }, "to": [ { "key_code": "5", "modifiers": ["left_command", "left_shift"] } ], "type": "basic" }, { "description": "Change Pause to Lock Screen", "from": { "key_code": "pause" }, "to": [ { "key_code": "q", "modifiers": ["left_control", "left_command"] } ], "type": "basic" }, { "description": "Change Scroll lock to Mission Control", "from": { "key_code": "scroll_lock" }, "to": [{ "apple_vendor_keyboard_key_code": "mission_control" }], "type": "basic" }, { "description": "Change Insert to ⌘+V", "from": { "key_code": "insert" }, "to": [ { "key_code": "v", "modifiers": ["left_command"] } ], "type": "basic" }, { "description": "Change Caps to Change language", "from": { "key_code": "caps_lock" }, "to": [{ "apple_vendor_top_case_key_code": "keyboard_fn" }], "type": "basic" } ] }
Что делает этот конфиг?
Условие: только для клавиатуры GSKY RSQ-20052
- Левый Alt (⌥) работает как Command (⌘)
- Левый Win (⊞) работает как Alt (⌥)
- Правый Alt (⌥) работает как Command (⌘)
- PrintScreen открывает встроенное меню скриншотов macOS (⌘+⇧+5)
- Pause блокирует экран (⌘+Ctrl+Q)
- ScrollLock вызывает Mission Control
- Insert работает как ⌘+V (вставка)
- CapsLock переключает язык (как Fn)