Лайфхакер
Лайфхакер
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Куда поехать на выходные
Добрые новости
Стыдные вопросы
Есть мнение
Норм или стрём
Личный опыт
Объясняем за минуту
Сервисы
macOS
24 марта 2016

Hammerspoon для Mac — автоматизируй меня полностью

Многие действия в OS X можно автоматизировать с помощью штатного приложения Automator. Бесплатная утилита Hammerspoon делает то же самое, но при этом более глубоко интегрируется с системой, позволяя создавать привязанные к горячим клавишам действия и даже небольшие программы.
Фото автора Артём Козориз
Артём Козориз

Автор Лайфхакера

Hammerspoon для Mac — автоматизируй меня полностью

Таким необычным названием создатели, видимо, хотели подчеркнуть многофункциональность и универсальность Hammerspoon. Их вряд ли можно упрекнуть, ведь благодаря поддержке Lua-скриптов перед нами открываются действительно огромные возможности.

👌 В телеграм-канале «Лайфхакер» лучшие статьи о том, как сделать жизнь проще.

⚡ Новости из мира гаджетов, обзоры, гайды и не только — в телеграм-канале «Технологии | Лайфхакер».

Сразу стоит сказать, что с Hammerspoon нам придётся немножко повозиться с кодом. Но не пугайтесь, уметь писать его самому не обязательно (хотя в случае с Lua это очень легко), на сайте приведено много готовых примеров на основе расширений, которые можно использовать или видоизменять.

После установки Hammerspoon нужно включить для него универсальный доступ, после чего перейти в меню Open Config и в открывшемся окне текстового редактора добавить код нашего первого скрипта.

автоматизация

По традиции можно начать с Hello World или сразу перейти к более сложным вещам: разработчики подготовили подробный гид. Мы с вами не будем размениваться по мелочам и сделаем шорткаты для перемещения окон. Для этого вставляем в наш init.lua следующий код, сохраняем документ и выбираем в меню Hammerspoon Reload Config.

hs.hotkey.bind({“cmd”, “alt”, “ctrl”}, “Y”, function()

local win = hs.window.focusedWindow()

local f = win:frame()

f.x = f.x — 10

f.y = f.y — 10

win:setFrame(f)

end)

hs.hotkey.bind({“cmd”, “alt”, “ctrl”}, “K”, function()

local win = hs.window.focusedWindow()

local f = win:frame()

f.y = f.y — 10

win:setFrame(f)

end)

hs.hotkey.bind({“cmd”, “alt”, “ctrl”}, “U”, function()

local win = hs.window.focusedWindow()

local f = win:frame()

f.x = f.x + 10

f.y = f.y — 10

win:setFrame(f)

end)

hs.hotkey.bind({“cmd”, “alt”, “ctrl”}, “H”, function()

local win = hs.window.focusedWindow()

local f = win:frame()

f.x = f.x — 10

win:setFrame(f)

end)

hs.hotkey.bind({“cmd”, “alt”, “ctrl”}, “L”, function()

local win = hs.window.focusedWindow()

local f = win:frame()

f.x = f.x + 10

win:setFrame(f)

end)

hs.hotkey.bind({“cmd”, “alt”, “ctrl”}, “B”, function()

local win = hs.window.focusedWindow()

local f = win:frame()

f.x = f.x — 10

f.y = f.y + 10

win:setFrame(f)

end)

hs.hotkey.bind({“cmd”, “alt”, “ctrl”}, “J”, function()

local win = hs.window.focusedWindow()

local f = win:frame()

f.y = f.y + 10

win:setFrame(f)

end)

hs.hotkey.bind({“cmd”, “alt”, “ctrl”}, “N”, function()

local win = hs.window.focusedWindow()

local f = win:frame()

f.x = f.x + 10

f.y = f.y + 10

win:setFrame(f)

end)

Если внимательно посмотреть на этот код, можно увидеть параметры, указывающие количество пикселей, на которое будет перемещаться окно, его положение и комбинации клавиш, отвечающие за перемещение. Проверяем: удерживая ⌃⌥⌘, жмём на клавиши H/L для перемещения влево-вправо и J/K для перемещения вниз-вверх. Всё работает.

В качестве мини-программ можно привести в пример реализацию аналога популярной утилиты Caffeine, предотвращающей переход Mac в режим сна. В соответствующем скрипте всего с десяток строк кода.

local caffeine = hs.menubar.new()

function setCaffeineDisplay(state)

if state then

caffeine:setTitle(“AWAKE”)

else

caffeine:setTitle(“SLEEPY”)

end

end

function caffeineClicked()

setCaffeineDisplay(hs.caffeinate.toggle(“displayIdle”))

end

if caffeine then

caffeine:setClickCallback(caffeineClicked)

setCaffeineDisplay(hs.caffeinate.get(“displayIdle”))

end

После сохранения в строке меню появляется простая кнопка SLEEPY, меняющаяся на AWAKE, если запретить переход в режим сна.

В скрипт можно добавлять несколько фрагментов кода с теми или иными функциями, они будут работать независимо друг от друга. Всего в Hammerspoon доступно около сотни API, которые позволяют автоматизировать самые различные действия: от перемещения окон, взаимодействия с буфером обмена и запуска AppleScript до всяческих процессов, основанных на событиях, вроде подключения к Сети, подсоединения USB-устройств и многих других.

Утилита весьма полезна, и если вы не боитесь повозиться с кодом, то без преувеличения сможете с её помощью свернуть горы.

Обложка: mama_mia / Shutterstock.com
Если нашли ошибку, выделите текст и нажмите Ctrl + Enter
Это интересно
Чем различаются сахарный диабет 1‑го и 2‑го типа и почему это важно знать

Чем различаются сахарный диабет 1‑го и 2‑го типа и почему это важно знать

От станка до зарплаты: 7 необычных экскурсий, которые помогут школьнику понять, какую выбрать профессию

От станка до зарплаты: 7 необычных экскурсий, которые помогут школьнику понять, какую выбрать профессию

Гид по здоровому весу. Что нужно знать об ожирении

Гид по здоровому весу. Что нужно знать об ожирении

Не только стройматериалы: как экосистема «Петровича» закрывает все задачи по ремонту

Не только стройматериалы: как экосистема «Петровича» закрывает все задачи по ремонту

Реклама
Комментарии
Denis Yurashku
24.03.16 18:43
А-а-а-а!.. :) Вот он, AutoHotKey для (наконец-то!) OS X!.. ??
Что вы могли пропустить
Litejam представила гитару с RGB-подсветкой, которая сама учит играть
Litejam представила гитару с RGB-подсветкой, которая сама учит играть
0
Вчера
Новости
Устройства
В России утвердили обязательные для предустановки приложения на 2027 год
В России утвердили обязательные для предустановки приложения на 2027 год
0
Вчера
Новости
Технологии
Seeed Studio показала электронный блокнот‑стикер с ePaper и магнитным креплением на стену
Seeed Studio показала электронный блокнот‑стикер с ePaper и магнитным креплением на стену
0
Вчера
Новости
Устройства
40 лучших онлайн-игр для Android и iOS в 2026 году — только бесплатные хиты
40 лучших онлайн-игр для Android и iOS в 2026 году — только бесплатные хиты
0
Вчера
Технологии
Технологии
OnePlus подтвердила выпуск смартфона OnePlus 16 с тремя важными улучшениями для геймеров
OnePlus подтвердила выпуск смартфона OnePlus 16 с тремя важными улучшениями для геймеров
0
31 июля
Новости
Устройства
В Chrome для Android появилась персонализация главного экрана
В Chrome для Android появилась персонализация главного экрана
0
31 июля
Браузеры
Новости
Tecno показала концепт смартфона с «нулевыми рамками» и сравнила его с iPhone 17 Pro
Tecno показала концепт смартфона с «нулевыми рамками» и сравнила его с iPhone 17 Pro
0
31 июля
Новости
Устройства
Блогер построил для своего кота стадион с 30 тысячами кресел и голосовым управлением
Блогер построил для своего кота стадион с 30 тысячами кресел и голосовым управлением
0
31 июля
Новости
Технологии
В Великобритании создали «первую в мире систему безболезненных татуировок»
В Великобритании создали «первую в мире систему безболезненных татуировок»
0
31 июля
Новости
Технологии
Друг, который висит на шее: ИИ-кулон Friend обновился и научился разговаривать
Друг, который висит на шее: ИИ-кулон Friend обновился и научился разговаривать
0
31 июля
Новости
Устройства
Доступен в России без костылей: как пользоваться бесплатным чат-ботом DeepSeek
Доступен в России без костылей: как пользоваться бесплатным чат-ботом DeepSeek
0
31 июля
Ликбез
Технологии
Casio показала часы-кольцо CRW‑H001 с пульсометром и вибрацией
Casio показала часы-кольцо CRW‑H001 с пульсометром и вибрацией
0
30 июля
Новости
Устройства
Аналитики подтвердили, что теория о «мёртвом интернете» уже стала реальностью
Аналитики подтвердили, что теория о «мёртвом интернете» уже стала реальностью
0
30 июля
Новости
Технологии
В «Яндекс Картах» появились ИИ-маршруты для прогулок — вот где их найти
В «Яндекс Картах» появились ИИ-маршруты для прогулок — вот где их найти
0
30 июля
Новости
Технологии
Лучшие смартфоны июля
Лучшие смартфоны июля
0
30 июля
Устройства
Устройства

Новые комментарии

Аватар автора комментария
Abobus5 часов назад

0 / 0

Тоже
180 идей, чем заняться, когда вам скучно
Аватар автора комментария
Viktoria Zavorotnyuk7 часов назад

0 / 0

А какой рецепт посоветуете вы?
Как и сколько варить раков, чтобы они получились сочными
Аватар автора комментария
Екатерина Таширева9 часов назад

+2 / 0

Такие статьи почитать интересно, но вот подача... Не могут учёные что-то раз и навсегда выяснить! Наука - это поле конкурирующих друг с другом теорий, смена парадигм, где никакое знание не может быть окончательным. "Любая теория истинна до тех пор, пока она не опровергнута" (Поппер) И даже в публикации об этом конкретном исследовании, я убеждена, был раздел "Perspectives and Limitations".
Учёные выяснили, что оказывает влияние на сюжеты наших снов
Аватар автора комментария
Ivan F11 часов назад

+1 / 0

Удалить их 😏
В России утвердили обязательные для предустановки приложения на 2027 год
Зачем ходить на квизы, если всё можно спросить у ИИ

Зачем ходить на квизы, если всё можно спросить у ИИ

Лайфхакер
Информация
О проектеРубрикиРекламаРедакцияВакансииО компании
Подписка
TelegramВКонтактеTwitter (X)PinterestYouTubeИнициалRSS
Правила
Пользовательское соглашениеПолитика обработки персональных данныхПравила применения рекомендательных технологийПравила сообществаСогласие на обработку персональных данныхСогласие для рекламных рассылокСогласие для информационной программы
18+Копирование материалов запрещено.
Издание может получать комиссию от покупки товаров, представленных в публикациях