Hammerspoon — запуск программ и не только

04 June 2019 #osx#soft#tools

Приятно иметь возможность запускать программы или вызывать определенные программы с помощью комбинаций клавиш. Но не очень приятно, когда за это еще приходиться платить и при этом не малые суммы. К примеру, данная возможность есть в Alfred, но только в Powerpack версии. А это £23, не знаю как вы, предпочитаю использовать бесплатную версию, коей вполне достаточно для 98% моих запросов.

Есть возможность автоматизировать процессы с помощью возможностей самой системы. Создание службы в Автоматоре и затем назначение для нее клавиши в системных настройках. Все отлично работает: за исключением того момента, что на запуск сервиса тратится много времени. И нажав на сочетание клавиш приходится ждать реакции.

Недавно наткнулся на Hammerspoon, бесплатная программа, которая висит в фоне и выполняет задачи, которые описаны в ее конфигурационном файле. При этом используется язык программирования lua.

Просто в качестве примера, для того, чтобы активировать, либо запустить Emacs, если он еще не запущен, используется следующая конафигурация:

hs.hotkey.bind({"cmd"}, "F11", function()
  ok,result = hs.execute('open -a Emacs')
end)

Забираем программу с сайта, устанавливаем и запускаем. Она сигнализирует о том, что файл конфигурации не найден и создает пустой файл ~/.hammerspoon/init.lua. Его можно открыть с помощью системного редактора из меню программы. Просто вставляем указанный фрагмент в поле редактирования. Открываем консоль из меню програмы и используем конпку перезагрузить конфигурацию. В консоли увидим сообщение о том, что новая конфигурация была загружена, после чего можно пробовать нажимать сочетание клавиш Cmd + F11 и наблюдать: как запускается Emacs, или активируется, если он был запущен ранее.

Примеров использования масса, много можно найти на сайте в документации: Spoons или Getting Started with Hammerspoon. Плюс есть примеры в интернете.

Если интересна возможность использования сочетаний клавиш для выполнения определенных команд, обратите внимание Hammerspoon.