TGViewer
annFlow annFlow @annsflow · 33 subscribers
Post #75 62
Самая базовая вещь, без которой мне уже сложно нормально ориентироваться в системе, это клавиатурные слои.

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

Karabiner + Hammerspoon

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

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


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

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


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

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

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

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

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

Оглавление темы 📌
Навигация по проектам канала 📍
Все проекты 🎶

#macOSAutomation@annsFlow

💻 annFlow
  • ❤ 4
  • ✍ 3
  • ❤‍🔥 2
  • 🔥 2
More from @annsflow
  1. Sep 24, 2026LiveContext в реальном разговоре. На видео я разбираюсь с претензией по недоставленному за…
  2. Sep 21, 2026Как LiveContext разделяет мой голос и голос собеседника Чтобы LiveContext мог понимать раз…
  3. Sep 16, 2026Почему мне оказалось недостаточно просто сохранять разговоры В VoxBase я решал проблему то…
  4. Sep 15, 2026Как я построил LiveContext, или Как связать живой разговор с памятью проекта ● Почему мне…
  5. Sep 14, 2026annFlow pinned a video
  6. Sep 14, 2026Самая неожиданная вакансия, которую нашел мой бот Моя система постоянно сама ищет вакансии…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →