Главная ценность Hammerspoon в том, что он работает не как “ещё один ремаппер”, а как движок логики:
Запуск/фокус приложений, окна (позиции/раскладки/мониторы), навигация по окнам, медиа-контроль, системные действия, логика (проверки/задержки/фолбэки).
В моей практике это выглядит так:
- Caps Lock (мой “суперклавишный” слой): Caps Lock + любая цифра/клавиша у меня привязаны к запуску или фокусу конкретных приложений. Это основной способ перемещаться по системе без Dock и поиска.
- Space-layer: удержание Space включает отдельный режим, где собраны быстрые действия, в том числе медиа-контроль и запуск дополнительных приложений.
- BackTick-layer: удержание backtick завязано на Leader Key: это вход в подслои, где, например, отдельные клавиши открывают нужные папки в Finder или конкретные проекты в ChatGPT. Я описывал об этом ранее тут.
Технически всё это описывается в конфигурации init.lua. Стандартный путь:
~/.hammerspoon/init.lua
Конфиг удобно хранить как код: версионировать, переносить на другие устройства, развивать поэтапно. В моём сетапе конфигурация синхронизируется через iCloud (через симлинк): система видит стандартный путь ~/.hammerspoon/, но фактически конфиг лежит в папке iCloud Drive, поэтому одинаковое поведение доступно на всех устройствах.
Базовый пример того, как выглядит действие в Hammerspoon: создаётся хоткей и привязывается к функции, которая делает нужное действие, например открывает приложение. В реальном конфиге это дополняется слоями, модальными режимами и сценариями, которые делают управление системой быстрым и предсказуемым.
Как выглядит запуск приложения в Hammerspoon
Базовая конструкция в конфиге выглядит так:
hs.hotkey.bind(hyper, "i", function()
hs.application.open("путь к приложению")
end)
-
hs.hotkey.bind(...) регистрирует сочетание клавиш-
hyper это набор модификаторов (Hyper-слой)- "
i" это клавиша-триггер внутри слоя-
function() ... end это действие, которое выполняется при нажатии-
hs.application.open(...) открывает приложение по точному путиАльтернативный вариант для многих задач:
hs.application.launchOrFocus("AppName").В следующем посте расскажу про Window Manager в Hammerspoon.
Оглавление темы 📌
Навигация по проектам канала 📍
Все проекты 🎶
#macOSAutomation@annsFlow
💻 annFlow
