Лайфхакер
Лайфхакер
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Куда поехать на выходные
✍️ Написать
Добрые новости
Есть мнение
Норм или стрём
Личный опыт
Объясняем за минуту
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
Это интересно
3 причины, почему с дачи мы всегда возвращаемся с полным багажником

3 причины, почему с дачи мы всегда возвращаемся с полным багажником

Чем заняться в выходные осенью в Санкт-Петербурге: 5 идей на любой вкус

Чем заняться в выходные осенью в Санкт-Петербурге: 5 идей на любой вкус

Няня и социальный контракт: что нужно знать о господдержке многодетных семей в 2026 году  

Няня и социальный контракт: что нужно знать о господдержке многодетных семей в 2026 году  

Не Питером единым: 10 мест в Ленобласти, которые стоит посетить 

Не Питером единым: 10 мест в Ленобласти, которые стоит посетить 

Комментарии
Авторизуйтесь, чтобы оставить комментарий
Denis Yurashku
24.03.16 18:43
А-а-а-а!.. :) Вот он, AutoHotKey для (наконец-то!) OS X!.. ??
Что вы могли пропустить
Bluetooth станет в 4 раза быстрее и позволит слушать музыку без потери качества
Bluetooth станет в 4 раза быстрее и позволит слушать музыку без потери качества
0
Вчера
Новости
Технологии
Baseus выпустила плоскую колонку для сна SK1, которая кладётся под подушку
Baseus выпустила плоскую колонку для сна SK1, которая кладётся под подушку
0
Вчера
Новости
Устройства
Объясняем за минуту: нужно ли выключать компьютер на ночь
Объясняем за минуту: нужно ли выключать компьютер на ночь
0
Вчера
Технологии
Технологии
Китайский конкурент Neuralink готовит «электронный „Оземпик“» — гаджет для похудения без лекарств
Китайский конкурент Neuralink готовит «электронный „Оземпик“» — гаджет для похудения без лекарств
0
Вчера
Новости
Устройства
ChatGPT научился создавать гифки — можно оживить даже собственный рисунок
ChatGPT научился создавать гифки — можно оживить даже собственный рисунок
0
Вчера
Веб-сервисы
Новости
11 дофаминовых гаджетов с распродажи 11.11 на AliExpress
11 дофаминовых гаджетов с распродажи 11.11 на AliExpress
0
4 ноября
Покупки
Устройства
Шагай до Мордора, корми пингвина, сажай деревья: 10 трекеров привычек с игровыми механиками
Шагай до Мордора, корми пингвина, сажай деревья: 10 трекеров привычек с игровыми механиками
0
3 ноября
Технологии
Технологии
Google запустила автосохранение фото с Android на ПК через Quick Share
Google запустила автосохранение фото с Android на ПК через Quick Share
0
3 ноября
Android
Новости
Apple готовит домашнего робота с экраном, который сможет прогонять кота со стола
Apple готовит домашнего робота с экраном, который сможет прогонять кота со стола
0
3 ноября
Новости
Устройства
Один из лучших графических редакторов Affinity вышел на iPad — он доступен бесплатно
Один из лучших графических редакторов Affinity вышел на iPad — он доступен бесплатно
0
3 ноября
iOS
Новости
25 гаджетов и устройств для дома, которые было бы приятно получить в подарок
25 гаджетов и устройств для дома, которые было бы приятно получить в подарок
0
2 ноября
Покупки
Праздники
OnePlus выпустила флагманские наушники Buds Pro 4 — они уже на AliExpress
OnePlus выпустила флагманские наушники Buds Pro 4 — они уже на AliExpress
0
2 ноября
Новости
Покупки
Вышла TwinDesk — бесплатная программа, которая объединяет Windows, Mac, Android и Linux в одну систему
Вышла TwinDesk — бесплатная программа, которая объединяет Windows, Mac, Android и Linux в одну систему
0
2 ноября
Новости
Технологии
На Android обнаружили «СМС смерти» — оно выводит смартфон из строя без ведома владельца
На Android обнаружили «СМС смерти» — оно выводит смартфон из строя без ведома владельца
0
2 ноября
Android
Новости
22-летний студент воссоздал в Minecraft всю Швейцарию в масштабе 1:1
22-летний студент воссоздал в Minecraft всю Швейцарию в масштабе 1:1
0
31 октября
Новости
Технологии

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

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

+1 / 0

Даже сикс севен нет...
Портал «Грамота.ру» назвал 10 претендентов на звание слова 2026 года
Аватар автора комментария
Виктор Медведев6 часов назад

0 / 0

А как объясняли?
На этом маркетплейсе можно купить массу оригинальных брендов со скидками до 30%
Аватар автора комментария
Dmitry Sizonov6 часов назад

0 / 0

Эмм. Это хорошая цена? Меньше, чем за 25к покупал этой осенью. Сейчас на Озоне можно найти даже ещё подешевле.
Популярный планшет Poco Pad M1 сейчас по хорошей цене — с ним не нужен ноутбук
Аватар автора комментария
Ilya Yarovykh (dj Carpe Diem)7 часов назад

0 / 0

С него фиг че приходит. 4 раза заказал - 4 раза вернули бабки(
На этом маркетплейсе можно купить массу оригинальных брендов со скидками до 30%
Что в сумке? Как изменилось то, что мы носим с собой

Что в сумке? Как изменилось то, что мы носим с собой

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