Лайфхакер
Лайфхакер
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Рецепты на Масленицу
Новости
Здоровье
Спорт и фитнес
Покупки
Технологии
Отношения
Кино
Реклама
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

Лучшие предложения

3D-принтер для большой печати Creality Ender-5 Max

Надо брать: 3D-принтер для большой печати Creality Ender-5 Max со скидкой 56%

Моющий пылесос Dreame G10 Pro

Популярный моющий пылесос Dreame G10 Pro отдают за полцены на AliExpress

Забираем дебетовку «Т-банка» с 2 000 баллов и повышенным кешбэком на автоуслуги

Забираем дебетовку «Т-банка» с 2 000 баллов и повышенным кешбэком за автоуслуги

Непромокаемые кроссовки от Li-Ning

Кроссовки от Li-Ning, которые не боятся слякоти, отдают со скидкой 37%

Три необычных продукта, которые точно стоит попробовать во «ВкусВилле»

Три необычных продукта, которые точно стоит попробовать во «ВкусВилле»

Находки AliExpress: самые интересные и полезные товары недели

Находки AliExpress: самые интересные и полезные товары недели

Нескользящий коврик для йоги

Нескользящий коврик для йоги, на который можно залипнуть после тренировки

7 надёжных камер для безопасности людей и питомцев

7 надёжных камер для безопасности людей и питомцев

Это интересно
Культурный челлендж: 6 способов получить новые впечатления в этом году

Культурный челлендж: 6 способов получить новые впечатления в этом году

Что такое «Редуксин Форте» и как он работает

Что такое «Редуксин Форте» и как он работает

Правда ли, что диабет молодеет? Разбираемся с эндокринологом

Правда ли, что диабет молодеет? Разбираемся с эндокринологом

РОЦИТ: 2026 год изменит правила игры для бизнеса в сфере кибербезопасности

РОЦИТ: 2026 год изменит правила игры для бизнеса в сфере кибербезопасности

Комментарии
Denis Yurashku
24.03.16 18:43
А-а-а-а!.. :) Вот он, AutoHotKey для (наконец-то!) OS X!.. ??
Что вы могли пропустить
Apple анонсировала мартовскую презентацию — на ней могут представить недорогой MacBook и iPhone 17e
Apple анонсировала мартовскую презентацию — на ней могут представить недорогой MacBook и iPhone 17e
0
16 февраля
Новости
Устройства
8 способов подключить телефон к телевизору
8 способов подключить телефон к телевизору
0
16 февраля
Ликбез
Устройства
Названы устройства Xiaomi, Redmi и Poco, которые получат Android 17 — в списке более 70 моделей
Названы устройства Xiaomi, Redmi и Poco, которые получат Android 17 — в списке более 70 моделей
0
16 февраля
Android
Новости
Как полностью удалить файлы на iPhone
Как полностью удалить файлы на iPhone
0
15 февраля
iOS
Ликбез
В Microsoft назвали точные сроки, когда ИИ сможет заменить офисных сотрудников — скоро
В Microsoft назвали точные сроки, когда ИИ сможет заменить офисных сотрудников — скоро
0
14 февраля
Новости
Технологии
Samsung Galaxy S26 и S26+ показали на фото со всех сторон
Samsung Galaxy S26 и S26+ показали на фото со всех сторон
0
14 февраля
Новости
Устройства
Как скачать видео с любого сайта без дополнительных программ: 10 универсальных сервисов
Как скачать видео с любого сайта без дополнительных программ: 10 универсальных сервисов
0
14 февраля
Веб-сервисы
Ликбез
Бюджетный iPhone 17e показали на рендерах — его могут выпустить в феврале
Бюджетный iPhone 17e показали на рендерах — его могут выпустить в феврале
0
13 февраля
Новости
Устройства
Дублинский стартап создал «парктроник» с ИИ для велосипедистов
Дублинский стартап создал «парктроник» с ИИ для велосипедистов
0
13 февраля
Новости
Устройства
Sony впервые за три года выпустила флагманские TWS‑наушники
Sony впервые за три года выпустила флагманские TWS‑наушники
0
13 февраля
Новости
Устройства
Как сделать парное фото на 14 февраля с кем угодно: 20 промптов
Как сделать парное фото на 14 февраля с кем угодно: 20 промптов
0
13 февраля
Ликбез
Технологии
В Сети вирусится бой Тома Круза и Брэда Питта — это ролик нейросети Seedance 2.0, удивившей даже кинематографистов
В Сети вирусится бой Тома Круза и Брэда Питта — это ролик нейросети Seedance 2.0, удивившей даже кинематографистов
0
13 февраля
Новости
Технологии
В пару кликов: как удалить тяжёлые письма в Gmail и освободить место на «Google Диске»
В пару кликов: как удалить тяжёлые письма в Gmail и освободить место на «Google Диске»
0
12 февраля
Технологии
Технологии
Xiaomi выпустила бюджетный аналог AirTag, который работает с сетями Apple и Google
Xiaomi выпустила бюджетный аналог AirTag, который работает с сетями Apple и Google
0
12 февраля
Новости
Устройства
«Белый список» сайтов и приложений в России: что в него входит и как пользоваться
«Белый список» сайтов и приложений в России: что в него входит и как пользоваться
0
12 февраля
Ликбез
Технологии

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

Аватар автора комментария
Horugvi22 минуты назад

0 / 0

господи до чего дожили осталось выездных виз дождаться
12 недорогих смартфонов для установки мессенджера Max
Аватар автора комментария
S G1 час назад

0 / 0

в моем случае скорее жалко своего времени, которое при чтении таких статей тратится впустую
FORS: почему мы боимся больших и сложных текстов — и как это исправить
Аватар автора комментария
Виктор Подволоцкий1 час назад

0 / 0

то есть ребрендинг
«Яндекс» анонсировал Fasten — приложение для вызова такси без лишних сервисов
Аватар автора комментария
Evialroot1 час назад

0 / 0

С бюджетными гнусмаСами не советую связываться - покупаешь, вроде как можно пользоваться, а через годик после нескольких обновлений система начинает жестко тормозить
12 недорогих смартфонов для установки мессенджера Max
Что такое «Велгия» и «Велгия Эко» и как они работают

Что такое «Велгия» и «Велгия Эко» и как они работают

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