Hammerspoon как локальный сервер и “пульт” управления
Одна из самых практичных вещей в моём сетапе Hammerspoon: он работает не только как хоткеи, но и как локальный HTTP-сервер. Это превращает Mac в “хаб”, который можно дергать командами с других устройств.
Как это устроено
-
Поднимается HTTP server на фиксированном порту (в моём случае 9876).
-
Авторизация сделана через header token (X-Auth-Token) вместо Basic Auth, потому что так удобнее и стабильнее интегрироваться с Shortcuts.
-
Есть простой rate limit (минимальный интервал между вызовами), чтобы не спамить одинаковыми командами и не ловить гонки.
-
Есть health-check / watchdog: сервер регулярно проверяет /ping и, если что-то пошло не так, перезапускается. То есть он не “умирает тихо”.
Что даёт на практике
Получается очень прямой “пульт управления”, где каждый endpoint это действие:
-
медиа-команды по конкретным приложениям (например, Twitch/YouTube/Spotify/Music/Podcasts/Books)
-
системные команды, включая pmset displaysleepnow (быстро погасить дисплеи)
Ключевой момент: это не “универсальная кнопка”, а точечные сценарии, завязанные на конкретные приложения и нужную последовательность шагов (активация, задержка, команда и т.д.).
Архитектура
-
Mac Studio выступает как хаб: он выполняет действия локально и предсказуемо.
-
Shortcuts на iPhone или другом Mac выступают как клиенты: нажал кнопку → ушёл HTTP-запрос → на Mac выполнилась команда.
Это даёт ощущение “домашнего пульта”: управление медиа и системными действиями не привязано к тому, где сейчас руки, какое окно активно и на каком устройстве ты находишься.
Дальше разберу связку Hammerspoon + displayplacer: авто-раскладка экранов без ручной правки.