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

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

Эти товары быстро расхватают 11.11: добавляйте в корзину сейчас, чтобы урвать

Эти товары быстро расхватают 11.11: добавляйте в корзину сейчас, чтобы урвать

6 комплектов термобелья для защиты от проклятого холода

6 комплектов термобелья для защиты от проклятого холода

Механическая клавиатура Aula F75, которую купили 21 тысячу раз на AliExpress

Механическую клавиатуру Aula F75 отдают за полцены на AliExpress

Подождать, но сэкономить: в России заработал маркетплейс SuperCheap. Что о нём нужно знать

Подождать, но сэкономить: в России заработал маркетплейс SuperCheap. Что о нём нужно знать

Надо брать: внешний аккумулятор для ноутбука от Kuulaa со скидкой 68%

Надо брать: внешний аккумулятор от Kuulaa со скидкой 68%

Melochi do 1 000 rublej

15 мелочей до 1 000 рублей, которые делают жизнь удобнее

120 klassnyh podarkov podrostku na Novyj god

120 классных подарков подростку на Новый год

Компактный перфоратор от DeWalt со скидкой 60%

Надо брать: компактный перфоратор от DeWalt со скидкой 60%

Это интересно
7 фактов о детском пюре «ФрутоНяня», которые стоит знать родителям

7 фактов о детском пюре «ФрутоНяня», которые стоит знать родителям

Реклама
Как покупать продукты рационально: полезная инструкция

Как покупать продукты рационально: полезная инструкция

Реклама
Не просто плохое настроение: 6 фактов о депрессии, которые нужно знать каждому

Не просто плохое настроение: 6 фактов о депрессии, которые нужно знать каждому

Ребёнок в машине: 6 главных ошибок, которые допускают родители

Ребёнок в машине: 6 главных ошибок, которые допускают родители

Комментарии
Denis Yurashku
24.03.16 18:43
А-а-а-а!.. :) Вот он, AutoHotKey для (наконец-то!) OS X!.. ??
Что вы могли пропустить
Объясняем за минуту: можно ли заливать воду из-под крана в увлажнитель воздуха
Объясняем за минуту: можно ли заливать воду из-под крана в увлажнитель воздуха
0
16:00
Ликбез
Технологии
Кнопку остановки будильника в iOS 26.1 заменили на слайдер — но её можно вернуть
Кнопку остановки будильника в iOS 26.1 заменили на слайдер — но её можно вернуть
0
15:50
iOS
Новости
Samsung раскрыла информацию о линейке Galaxy S26 — они станут «революцией в ИИ»
Samsung раскрыла информацию о линейке Galaxy S26 — они станут «революцией в ИИ»
0
15:40
Новости
Устройства
Google внедрила «Режим ИИ» в мобильный Chrome и расширила его возможности
Google внедрила «Режим ИИ» в мобильный Chrome и расширила его возможности
0
14:10
Браузеры
Новости
SanDisk выпустила самую компактную в мире флешку с USB-C на 1 ТБ
SanDisk выпустила самую компактную в мире флешку с USB-C на 1 ТБ
0
13:47
Новости
Устройства
Представлено Stream Ring — ИИ-кольцо, которое позволяет делать голосовые заметки шёпотом
Представлено Stream Ring — ИИ-кольцо, которое позволяет делать голосовые заметки шёпотом
0
12:40
Новости
Устройства
Huawei представила Mate 70 Air — тонкий 7-дюймовый смартфон с батареей 6 500 мА·ч
Huawei представила Mate 70 Air — тонкий 7-дюймовый смартфон с батареей 6 500 мА·ч
0
10:31
Новости
Устройства
«Трикладушку» Galaxy Z TriFold от Samsung впервые показали на видео
«Трикладушку» Galaxy Z TriFold от Samsung впервые показали на видео
0
10:10
Новости
Советы
XPeng показала антропоморфного робота Iron — в мужской и женской версии
XPeng показала антропоморфного робота Iron — в мужской и женской версии
0
Вчера
Новости
Технологии
AnTuTu назвал 10 лучших смартфонов среднего сегмента — все с процессором MediaTek
AnTuTu назвал 10 лучших смартфонов среднего сегмента — все с процессором MediaTek
0
Вчера
Новости
Устройства
Представлен Lexar Air — ультратонкий SSD для смартфонов и ПК
Представлен Lexar Air — ультратонкий SSD для смартфонов и ПК
0
Вчера
Новости
Устройства
В России введут специальные сим-карты для детей — с геолокацией по запросу
В России введут специальные сим-карты для детей — с геолокацией по запросу
0
Вчера
Новости
Технологии
Microsoft запустила свой первый ИИ-генератор картинок — сразу в двух сервисах
Microsoft запустила свой первый ИИ-генератор картинок — сразу в двух сервисах
0
Вчера
Новости
Технологии
У соцсети с нейровидео Sora появилось приложение для Android
У соцсети с нейровидео Sora появилось приложение для Android
0
Вчера
Android
Новости
Apple готовит бюджетный MacBook с процессором от iPhone и новым дизайном
Apple готовит бюджетный MacBook с процессором от iPhone и новым дизайном
0
Вчера
Новости
Устройства

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

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

0 / 0

Супер! Спасибо тебе добрый человек! Я кучу лет мучился от незнания этой разницы, но взяться и найти всю эту информацию самому как-то не доходило... Спасибо! Теперь я знаю🙏🏻 Ещё бы ips упомянул и разницу, ну чтобы уж знать И буду благодарен если сделаешь статью подобного плана про камеры смартфонов, про объективы и все что с этим связано, а то надоело читать и не понимать, где-то стоит телевик, где-то перископический объектив, где-то сверхширик отдельный, где-то совмещенный с перископическим(вроде), а как и почему не ясно.. Короче сложно...
Что лучше — OLED или AMOLED
Аватар автора комментария
Horugvi50 минут назад

0 / 0

Приехали. Теперь вк видео.
Король возвращается: вышел первый тизер байопика о Майкле Джексоне
Аватар автора комментария
Alexandr Al1 час назад

0 / 0

зависит от воды из крана всегда заливаю только оттуда, уже много лет, без малейших проблем.
Объясняем за минуту: можно ли заливать воду из-под крана в увлажнитель воздуха
Аватар автора комментария
Игорь Каштаев1 час назад

0 / -1

У Huawei стоят именно OLED экраны, а не AMOLED (Mate 50/60/70, Pura 60/70/80), это показывает и Aida64, и информация на официальном сайте.
Что лучше — OLED или AMOLED
Задача — дойти до школы самому: как подготовить ребёнка и убедиться, что всё будет в порядке 

Задача — дойти до школы самому: как подготовить ребёнка и убедиться, что всё будет в порядке  

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