1 из 132 мин

Клавиатурные слои

Самая базовая вещь, без которой мне уже сложно нормально ориентироваться в системе, это клавиатурные слои.

Я перебрал разные подходы, но в итоге остановился на связке:

Karabiner + Hammerspoon

Karabiner-Elements делает “железо ввода” предсказуемым:

он решает, какая физическая клавиша во что превращается (tap/hold, гипер-модификатор, виртуальные F-клавиши, правила по раскладкам).

Hammerspoon превращает эти сигналы в действия:

запуск и фокус приложений, управление окнами (перемещение, раскладки, перенос между мониторами, восстановление размеров), навигация по окнам, медиа-контроль по конкретным приложениям, системные штуки и быстрые команды, которые обычно спрятаны в меню. Плюс самое важное: это не просто бинды, а логика и контекст (проверки состояния, фокусировка нужного окна перед действием, задержки, фолбэки, сценарии). Так же у меня Hammerspoon ещё работает как локальный сервер: я поднимаю небольшой HTTP endpoint и могу триггерить свои команды удалённо (например, из Shortcuts с других устройств). Всё на Lua, без магии и без UI-лабиринтов.

Почему я выбрал именно Karabiner + Hammerspoon.

Я пробовал разные готовые решения, но у них почти всегда одна проблема: я получаю ровно тот набор возможностей, который придумал автор. Это нормально, пока твой сценарий совпадает с “средним пользователем”. Но как только начинаются слои, контекст, нестандартные правила, надежные фолбэки, своя логика для окон и медиа, упираешься в ограничения интерфейса и философии конкретной программы.

А здесь подход другой:

  • Karabiner даёт мне контроль на уровне ввода: я могу превращать любые физические клавиши в чистые сигналы и строить слои так, чтобы не ломать печать и не ловить конфликты.
  • Hammerspoon даёт мне контроль на уровне поведения: я описываю действия кодом, добавляю проверки, контекст, задержки, фолбэки, и получаю результат, который работает так, как нужно именно мне, а не “как это задумано в UI”.

В итоге это не “ещё одна программа с настройками”, а платформа, где я сам определяю правила. Именно за счёт этой гибкости я и выбрал такой подход.

Оглавление серии
  1. Клавиатурные слои
  2. Karabiner = набор JSON-правил
  3. 1) Caps Lock = Hyper
  4. 2) Слой на Space: tap = пробел, hold = F18
  5. 3) backtick hold = F17
  6. 4) RU-раскладка: точечные правила только для русского набора
  7. Hammerspoon
  8. Window Manager в Hammerspoon
  9. Медиа-контроль как сценарии в Hammerspoon
  10. Hammerspoon как локальный сервер и “пульт” управления
  11. Мониторы и стабильность рабочего места (Hammerspoon)
  12. MIDI-клавиатура и OBS как аппаратный контроллер (Hammerspoon)
  13. Тема клавиатурных слоев на этом этапе закрыта.