Пять хитростей программы Automator на OS X, которые сэкономят ваше время и нервы. Автоматизируем работу в Mac OS X Объединение нескольких PDF-файлов в один

Сегодня у нас премьера – открывается новый, одиннадцатый цикл статей AppStudio, задумывавшийся нами давным-давно. Говорить в нём мы будем об Automator , мощнейшем инструменте автоматизации рутинных действий, который доступен любому обладателю Мака. Но вот в чём парадокс – далеко не каждый маковод пользуется им, да что там, далеко не каждый маковод вообще знает о его существовании. Automator – утилита непримечательная и не особо заметная, найти и запустить её можно разве только из-за иконки.

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

Automator, встроенный в OS X помощник, при наличии смекалки и желания оптимизировать работу позволяет сэкономить часы, дни и даже недели времени. А в связке с языком скриптов AppleScript Automator вообще может решить значительную часть тех вопросов, которые нам шлют в рубрику FAQ. Как и в случае с Терминалом, говоря об Automator, можно быстро уйти в дебри, но не стоит сразу подводить итоги, констатируя «Нет, это заумство не для меня». Как минимум 90% наших советов запросто могут пригодиться обычному человеку, далёкому от всякого рода компьютерных специальностей.

Да, действительно, это так. Мы создадим полноценную программу. Она будет исполняться, помогая нам выполнять монотонные операции. Но для этого не требуется читать слишком толстых фолиантов. Всё достаточно просто.

Для начала нам необходимо запустить сам Automator. Делается это просто. Дальше выбираем в ней «Программу». В данном примере мы рассмотрим создание автономной программы, такой же, как и остальные программы в системе.

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

  • процесс, который запускается непосредственно в Automator и не может существовать вне его
  • программа, которая делается один раз, а потом живёт сама по себе
  • служба, которая интегрируется в OS X и становится доступна отосвюду
  • действие папки, которое отслеживает любые объекты, которые вы складываете в выбранную вами папку, и запускает для них нужные команды

Как видно из скриншота выше, этим дело не ограничивается, но об остальных типах файлов Automator мы поговорим позже. Пока что остановимся на создании собственных программ.

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

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

Окно Automator состоит из двух частей – слева расположена библиотека действий, справа – рабочее пространство. Макрос конструируется обычным перетаскиванием действий из левой части экрана в правую.

Итак, добавляем наш первый этап:

Здесь хорошо видно, где находится данная операция в меню слева. Стоит отметить, что мы должны поставить галочку множественный выбор . Дело в том, что этап этот универсальный, ему и не узнать никогда, что мы хотим получить несколько файлов, так что явно говорим ему об этом, ведь объединять один файл не входит в наши планы!

Дальше нам необходимо выбрать операцию для обработки полученных файлов. Просто перетаскиваем её, образуя цепочку. Тут наглядно видно, что выбранные файлы будут переданы далее для операций с ними, стрелочка тут всё наглядно демонстрирует, проверяем наличие выделенной кнопки добавление страниц . Она и так выделена, но всё же. Можно и просто перемешать страницы, но скорее всё же их нужно будет склеить по порядку.

Завершаем нашу программу операцией для файлов. Переместим результат в некую папку. Ну, предположим, что на рабочий стол, хотя разницы нет, главное, чтобы было удобно нам самим.

Ну а теперь сделаем из нашего проекта полноценную программу:

Выбираем место для её сохранения, проверяем, чтобы нам предложили сохранить её именно как приложение, а потом смотрим, что же у нас появилось в указанном месте. А появиться должна была программа, файл с расширением.app.

Теперь мы можем ею пользоваться по собственному усмотрению – при запуске она спросит у вас файлы, после чего без лишних окошек молча склеит их и положит на рабочем столе.

Так получилось, что при всей своей направленности на людей далеких от техники, в OSX имеется абсолютно гиковый инструмент – Automator, который, незаслуженно, обходит стороной большая часть маководов. Многие слышали о его невиданных возможностях, но с какой стороны подойти и как его использовать?

Сегодня обсудим основы, в следующих материалах пойдем дальше. Сразу хочу предупредить, мы разберем базовые принципы работы с Automator, решим несколько повседневных задач, но не коснемся Apple Script. Причина – Apple Script это язык программирования со своим синтаксисом, логикой, структурой. Пытаться объяснить азы, которые позволят в будущем создавать что-то своё, а не копировать без понимания, достаточно сложно. Поэтому не будем никого обманывать, а покажем, что можно делать, не имея этих знаний.

Я не буду описывать, что означает каждый из пунктов меню на скриншоте ниже, просто потыкайте по ним мышкой и почитайте описание.

Построим обучение от задач. Формулируем задачу, решаем её, фиксируем результат, переходим к следующей.

1. Просмотр буфера обмена

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

Что требуется сделать. Логично предположить, что запускать просмотр содержимого буфера обмена мы будем через горячие клавиши. Соответственно, нам нужно создать службу. Выбираем соответствующий пункт при создании нового документа.

  1. Затем нам нужно прочесть содержимое буфера обмена, для этого в левой части меню выбираем пункт Утилиты → Получить содержимое буфера обмена , который перетаскиваем на свободное место в правой части окна.
  2. После этого содержимое буфера требуется присвоить переменной, для этого вытаскиваем на рабочую зону пункт Установить значение переменной , кликаем на неё и задаем ей имя, произвольное. В примере, я назвал её просто: Буфер .
  3. Теперь нужно вывести уведомление с нашим текстом, для этого вытаскиваем пункт меню Показать уведомление , в заголовок пишем что угодно, главное чтобы Вы понимали что это, а в тело вставляем переменную из п.2. Её можно просто перетащить из нижней части панели, кликнув на иконку в виде перевернутой кнопки Пауза.

После этого сохраняем полученный документ, имя произвольное. И переходим в меню системных настроек  → Системные настройки → Клавиатура → Сочетание клавиш , выбираем раздел Службы и ищем службу, которую мы только что создали.

Ей потребуется назначить комбинацию клавиш. Предлагаю Ctrl + Command + =. Для назначения необходимо кликнуть по слову добавить , правее имени службы, слово добавить заменится на пустой прямоугольник, после чего нажать нужную комбинацию. После этого закрываем настройки, находим любой фрагмент, копируем его, нажимаем Ctrl + Command + = и наслаждаемся результатом.

Все ваши службы всегда присутствуют в верхнем меню [Название приложения] → Службы и их запуск не должен вызывать трудностей.

Я показал только один пример с уведомлениями, но используйте их чаще, например, для оповещения о статусе выполненных работ от других автоматоров.

2. Умная папка

Часто встает задача быстро изменить некоторые данные – например, сконвертировать изображения из PNG → JPG. Для этого в Automator есть действие папки.

Работает это следующим образом. Сначала указываем папку из которой будут браться данные, затем папку, куда они будут копироваться. Наконец, обозначаем действие, в нашем случае Фото → Изменить формат изображения .

После чего копируем файлы с расширением PNG в первую папку и находим документы с расширением JPG во второй. Попутно можно изменять размер изображения.

Задание для самопроверки:

  • поместите в процесс уведомление, которое будет сообщать информацию о том, что задача выполнена;
  • попробуйте сделать так, чтобы файлы из исходной папки удалялись автоматически после завершения операции;

Заключение

Сегодня мы рассмотрели самые базовые возможности Automator. Просто посмотрели на основы. Думаю, что тема интересная, но рассматривать решение моих задач читателям может быть недостаточно увлекательно.

Поступим следующим образом: оставляйте в комментариях свои пожелания (потребности), а я к следующему выпуску попробую дать ответ, как это сделать. Или поделитесь сами, как Automator помогает вам в повседневной жизни!

Automator - это невероятно удобная программа из состава Mac OS X, которая позволяет автоматизировать некоторые рутинные и повседневные операции. К сожалению, большинство новых пользователей Mac даже не догадываются о существовании этого инструмента. Поэтому сегодня я попытаюсь это исправить и с помощью наглядных примеров показать основные принципы создания мини-программ, которые называются «процессами» (workflow).

Групповое переименование изображений

Начнем мы, пожалуй, с довольно простой задачи по групповому переименованию изображений согласно определенной маске, содержащей имя файла, его номер и текущую дату. Если таких файлов несколько, то можно их переименовать и вручную, но при большом количестве файлов я рекомендую воспользоваться услугами Automator.

Чтобы запустить утилиту, достаточно либо найти её значок вверху каталога Программы (Applications), либо воспользоваться любимым лаунчером для запуска приложений/системным Spotlight. И через несколько секунд перед нами появится окно приложения, а также список доступных шаблонов:

  • «Процесс» - это самая простая последовательность действий, которая может быть запущена непосредственно из Automator.
  • «Программа» является автономным процессом и может быть сохранена в виде обычного приложения Mac OS X с расширением *.app .
  • «Служба» - это процесс, который зависит от контекста, может быть использован во всей системе или отдельных приложениях.
  • «Действие папки» запускается только для указанной в нем папки и инициализируется добавленными в неё объектами.
  • «Плагины печати» используются для расширения возможностей диалога печати.
  • «Напоминания iCal» - это процессы, которые запускаются благодаря событиям, добавленным в iCal.
  • И, наконец, «Плагин захвата изображений» может быть использован в соответствующем приложении для обработки фотографий, загружаемых с камеры.

В нашем случае выбираем «Действие папки» - и перед нами появится окно, разделенное на 2 области. В левой половине находится Библиотека (список доступных действий и переменных), а в правой - окно рабочего процесса, в которое можно перетягивать элементы из Библиотеки.

С помощью опции, расположенной в верхней части окна процесса (прямо под панелью инструментов), вам требуется выбрать папку. Для неё и будет выполняться наши действия:

Все, что может нам понадобиться для решения задачи, располагается в категории «Файлы и папки». Для начала требуется найти и перетянуть в окно рабочего процесса действие под названием «Переименовать объекты Finder». Поскольку Automator изменяет их имена, нам будет предложено автоматически добавить еще одно действие, позволяющее сохранить оригинальные файлы в другую папку (я решил не сохранять копии, но это не значит, что вам нужно поступать точно также).

Теперь в самом первом выпадающем списке нашего действия необходимо выбрать пункт «Сделать последовательными» и настроить формат нового имени по своему усмотрению. Сделать это достаточно легко, так как в нижней части действия находится пример.

Для того, чтобы добавить в имя файлов текущую дату, требуется еще раз перетащить действие «Переименовать объекты Finder» в окно рабочего процесса. Только на этот раз вместо «Сделать последовательными» выберите элемент списка «Добавить дату или время» (точнее, она выбирается автоматически) и установите параметры по собственному желанию:

Груповое изменение размеров изображений

Усложняем задачу. Допустим, у нас имеется большое количество изображений (фотографий), которые нужно уменьшить. Для решения этой задачки нам потребуется выбрать шаблон «Программа».

Однако, перед тем, как бросаться решать проблему «в лоб», предлагаю составить последовательность необходимых действий. К примеру, для начала следует предложить пользователю выбрать фотографии, размер которых мы хотим изменить. Кроме этого, желательно работать не с оригиналами файлов, а с их копиями, чтобы всегда была возможность попробовать новые настройки для нашего процесса. А уменьшенные изображения мы будем копировать в отдельный каталог.

Теперь можно переходить к формированию нашей мини-программы. Сперва требуется найти и перетащить в окно рабочего процесса действие «Запросить объекты Finder» в категории «Файлы и папки» (или через строку поиска). Там можно указать текст заголовка окна, начальную папку и тип данных. Не забудьте установить чекбокс для множественного выбора.

Чтобы работать с копиями файлов я предлагаю найти в Бибилиотеке действие «Копировать объекты Finder», указав каталог назначения. Следующее действие находится в категории «Фото» и называется «Изменить масштаб изображения». В настройках можно указать размер результирующего изображения в пикселях или процентах.

Кстати, в нижней панели каждого действия есть три вкладки: Результаты, Параметры и Описание. Поэтому если вы хотите, чтобы Automator каждый раз предлагал вам указать необходимый размер изображения при выполнении этого действия, выберите чекбокс «Показывать действие в процессе выполнения» во владке Параметры (при желании, с помощью этой опции можно расширить и предыдущий процесс, чтобы задавать определенное имя файлам для переименования).

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

И еще один трюк: выбрав чекбокс «Показывать действие в процессе выполнения», станет активным опция «Показывать только выбранные объекты». Таким образом вы сможете отобразить не все окно с действием, а только некоторые элементы. Например, поле для указания необходимого размера.

И в завершение процесса нам требуется перенести уменьшенное изображение в новый каталог. Для этого нам пригодится действие «Новая папка» из категории «Файлы и папки».

Сохраненная программа будет вести себя точно так же, как и любое другое приложение в системе.

Открываем определенные веб-страницы при запуске браузера

Практически каждый день я запускаю Safari и начинаю работать с одними и теми же веб-страницами. Так почему бы не создать приложение, которое будет делать это автоматически?

Нам потребуется шаблон «Приложение» и два действия, находящихся в категории «Интернет»:

  • «Получить выделенные URL», в настройках которого мы указываем наши любимые веб-страницы;
  • и действие «Отображать веб-страницы» для их открытия в браузере по умолчанию.

Извлечение текста из PDF

Это довольно простой, но удобный сценарий для Automator, позволяющий иногда сэкономить время. Он позволит вам извлечь текст из PDF-документа (естественно, в таком документе должен быть именно текст, а не сканированные картинки) и сохранить его в отдельный файл с форматированием или без оного.

Для решения проблемы нам потребуется всего одно действие с аналогичным названием, «Извлечь текст PDF», расположенное в категории «PDF-файлы». Перетащите его в окно рабочего процесса и настройте параметры по своему усмотрению:

Заметьте, что в этом процессе мы не указали действие «Запросить объекты Finder», поэтому после запуска можно будет перетащить любой PDF-файл, подлежащий обработке, прямиком на иконку нашего приложения в Dock. Этот файл и послужит входящим параметром для процесса.

Сохраняем содержимое буфера обмена в текстовый файл

Продолжаем знакомиться с разными шаблонами Automator, и в этом процессе я предлагаю создать службу, которая будет сохранять содержимое буфера обмена в указанный нами текстовый файл. Необходимый шаблон так и называется - «Служба». Она не будет поучать никаких исходных данных, а будет «действовать по обстановке». Поэтому входных данных у неё не будет, что и требуется указать в выпадающем списке над окном рабочего процесса.

Нашей службе нужно дать человеческое название, чтобы мы могли её без проблем найти в меню «Сервисы» любого приложения…

…и назначить ей, если конечно потребуется, сочетание клавиш в приложении Системные настройки.

А если заменить действие «Новый текстовый файл» на «Текст в аудиофайл», то в результате работы процесса вы получите аудиодорожку с содержимым буфера обмена, записанную с помощью встроенной в Mac OS X функции преобразования текста в речь.

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

Простое автоматическое резервное копирование

Продолжаем усложнять задачу, и теперь я предлагаю создать простую систему резервного копирования, которая будет срабатывать при наступлении определенного события в iCal. Для этого мы воспользуемся его возможностью в качестве напоминания о событии запустить определенное приложение или файл.

В Automator выбираем новый тип шаблона - «Напоминание iCal», после чего в окно рабочего процесса перетягиваем три действия из категории «Файлы и папки»:

  • «Получить указанные объекты Finder» (выбираем нужную папку для бекапа с помощью кнопки Добавить).
  • «Получить содержимое папок» с выбранной опцией «Повторить для каждой найденной подпапки».
  • И «Копировать объекты Finder» (для него необходимо указать каталог назначения и позволить заменять существующие файлы).

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

Завершить работу всех приложений

Иногда требуется завершить все запущенные приложения, которые мешают работать или заняли практически все свободные ресурсы компьютера. В этом случае можно воспользоваться специальной утилитой вроде Blitz , одним из советов по концентрации внимания в Mac OS X или же начать работу «с чистого листа», закрыв все приложения одним махом.

Такой рабочий процесс потребует всего одного действия, оформленного в виде программы. И называется это действие аналогично - «Завершить все программы» (оно находится в категории «Служебные программы»). Вы, также, можете добавить некоторые приложения в исключения. В «трудные моменты» достаточно запустить наше мини-приложение, подождать некоторое время и вновь насладиться быстродействием Мака.

Вот и все на сегодня! Надеюсь, что эта статья поможет вам не только разобраться в замечательном и полезном инструменте Automator, но и позволит в значительной степени упростить некоторые рутинные операции. Не бойтесь экспериментировать, ведь при желании вы можете взять за основу любой из рассмотренных выше примеров и изменить их по своему усмотрению.

Современные операционные системы предлагают довольно большой набор различных встроенных инструментов и настроек, позволяющих более гибко организовать работу, избегая различных рутинных операций. Но все равно найдется еще тысяча мелких действий, которые не были учтены разработчиками. И тут на помощь нам приходят множественные скриптовые языки, в которых зачастую проблема решается на раз-два-три. Но сегодня мы рассмотрим еще одно решение с несколько иным подходом, на случай если, например, в программе не предусмотрен консольный режим. Этим решением является программа, входящая в состав стандартной поставки OS X под названием Automator.

Автоматор позволяет легко и быстро создавать workflow - по сути, скрипты, которые могут прекрасно интегрироваться с операционной системой. Отличие от традиционных bash-, Python-, Lua- и прочих скриптов в том, что вместо традиционного подхода с написанием кода ты в графическом виде собираешь скрипт из маленьких кирпичиков - событий и действий. В стандартной библиотеке этих базовых компонентов достаточно для различных случаев жизни, а если необходимо, можно ее существенно расширить, установив пакеты дополнений. Впрочем, обо всем по порядку.

При создании нового скрипта автоматор спросит о его типе. На выбор предлагается:

  • Workflow - стандартный файл, запускаемый либо из GUI автоматора, либо через консоль командой automator.
  • Application - воркфлоу, оформленный в виде отдельного приложения. Его можно запустить, не заходя в GUI.
  • Service - специальный тип, позволяющий запускать скрипты в контексте приложений. После создания они будут доступны в пункте меню Services.
  • Print Plugin - эти воркфлоу будут доступны в диалоге выбора принтера. Они принимают на вход PDF-версию печатаемого документа.
  • Folder Action - привязываются к определенной папке и запускаются при добавлении файлов в эту папку.
  • Calendar Alarm - скрипты запускаются по определенному событию в календаре.
  • Image Capture Plugin - интеграция с сервисом захвата изображения. Workflow получает на вход изображение.

В статье мы рассмотрим несколько довольно интересных юз-кейсов, которые могут пригодиться любому пользователю OS Х или подтолкнут читателей на написание новых рецептов.

Объединение нескольких PDF-файлов

В стандартной библиотеке автоматора есть ряд действий с PDF-документами. Что ж, оформим небольшой воркфлоу, который позволит в будущем объединять несколько отдельных файлов в один.

Оформим его в виде отдельного приложения, выбрав соответствующий тип в первом диалоге автоматора. Далее последовательно перетащим в наш скрипт такие действия: Ask for Finder Items - диалог выбора файлов, Combine PDF Pages - собственно действие компоновки в один файл и Open Finder Items - действие, открывающее сохраненный PDF-файл в дефолтном ридере.

Вот и все, можно запустить скрипт, нажав на кнопку Run в правом верхнем углу окна автоматора.

Шаринг скриншотов

Этот рецепт позволит тебе автоматом синхронизировать и расшаривать скриншоты, которые ты делаешь. В OS X уже встроены механизмы снятия скриншота (сочетания клавиш <⌘ + ⇧ + 3> для снятия снимка со всего экрана и <⌘ + ⇧ + 4> для снимка области экрана или окна приложения). Также функции синхронизации присутствуют во многих облачных хранилищах, например Dropbox. Поэтому нам остается только немного их подружить.

Создадим новый воркфлоу с типом Folder Action. Необходимо будет выбрать папку, в которую макось сохраняет скриншоты, по умолчанию это ~/Desktop. Как только в папку будет добавляться какой-либо файл, будет вызываться наш воркфлоу, поэтому создадим фильтр, чтобы исключить расшаривание остальных файлов. Для этого добавим действие Filter Finder Items. По умолчанию все снимаемые скриншоты называются следующим образом «Screen Shot [дата] at [время].png», поэтому зададим в фильтре поля: Name begins with “Screen Shot”, а также: Kind is image. Если необходимо, то ты можешь еще добавить другие параметры, например дату создания, чтобы не трогать старые скриншоты, находящиеся на рабочем столе.

Теперь добавим действие Move Finder Items, которое будет перемещать картинки в соответствующую директорию - ~/Dropbox/Public/. И теперь добавим небольшой хинт, который будет копировать URL расшаренного скриншота в буфер обмена. Для этого добавим действие Run Shell Script и добавим в него следующее содержание:

Combined="https://dl.dropbox.com/u/XXXXXXX/"$(basename $1) final=`echo $combined | sed "s/ /%20/g"` echo -ne ${final} | pbcopy afplay /System/Library/Sounds/Hero.aiff

Заметь, что вместо тебе нужно будет подставить свой идентификатор из семи цифр в дропбоксе. Как его найти? Самый простой вариант - зайти залогиненным на сайт дропбокса и в яваскриптовой консоли браузера набрать:

Console.log(Constants.uid)

Опционально можно еще добавить нотификэйшн. Тут возможно два варианта: либо использовать действие, которое идет вместе с Growl’ом, либо скачать и установить бесплатное действие, позволяющее показывать уведомления в теперь уже стандартном центре уведомлений OS X (is.gd/mgqFro).

Готово. Теперь сохраняем наш воркфлоу (автоматор положит его в ~/Library/Workflows/Applications/Folder Actions/) и наслаждаемся работой.

Do Not Disturb по календарю

В последней версии операционки от Apple был представлен новый центр сообщений с возможностью отключения всплывающих аллертов до определенного времени. Эта функция получила название Do Not Disturb. Она позволяет до конца текущего дня отключить все отвлекающие факторы. Но что, если ты хочешь, чтобы эта функция включалась по расписанию? Этот воркфлоу придет тебе на помощь.

Для начала создадим новый Calendar Workflow, так как мы хотим уже потом в календаре настроить расписание запуска нашего скрипта.

Добавим действие Run AppleScript и в поле скрипта заменим следующим содержанием:

Do shell script "defaults write ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist doNotDisturb -boolean true" set theDate to quoted form of (do shell script "date +\"%Y-%m-%d %I:%M:%S +0000\"") do shell script "defaults write ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist doNotDisturbDate -date " & theDate do shell script "killall NotificationCenter"

Этот скрипт пишет в настройки центра уведомлений о включении DND, а потом перезапускает его, чтобы новые настройки возымели эффект.

Готово, теперь сохраняем наш воркфлоу. Автоматор сам поместит его в нужное место на диске для данного типа, ~/Library/Workflows/Applications/Calendar, запустит приложение Calendar и создаст в нем событие, в котором уже можно будет настроить время запуска, периодичность и так далее. Сохраняем событие и наслаждаемся тишиной и спокойствием в нужные часы.

Кстати, если тебе нужен аналогичный скрипт, который, наоборот, отключает DND, то придется создать второй воркфлоу, такого же типа, но со следующим скриптом:

Do shell script "defaults write ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist doNotDisturb -boolean false" try do shell script "defaults delete ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist doNotDisturbDate" end try do shell script "killall NotificationCenter"

После этого также необходимо будет настроить расписание его включения.

PopClip и Alfred

Помимо автоматора, пользователям OS X доступны и другие средства автоматизации. Одно из них - PopClip, небольшое приложение, позволяющее производить различные манипуляции с выделенным текстом, второе - Alfred, приложение, функциональностью напоминающее стандартный Spotlight, с кучей различных дополнений, позволяющих переключать музыку в iTunes, выдавать результат поиска в Wolfram Alpha или писать простенький To-Do-список.

PopClip - утилита платная, но стоит всего 4,99 доллара. Впрочем, попробовать ее можно бесплатно, с ограничением на 150 запусков. После установки в системе и запуска программы, при выделении текста будет появляться небольшой pop-up, позволяющий произвести различные операции с выделением, подобно тому как это происходит с редактируемым текстом в iOS. По умолчанию это поиск выделенного текста в Google, стандартные операции: вырезать, копировать, вставить, а также, если было выделено одно слово, поиск его значения в словаре.

Но вся мощь PopClip кроется в множественных и качественных его дополнениях (pilotmoon.com/popclip/extensions). Там есть и переводы выделения в верхний регистр, и шаринг ссылки через Droplr, и создание твита. Кроме того, без лишних сложностей ты можешь расширить библиотеку расширений чем-то самописным, набросав скрипт на любимом ЯП и оформив его в виде экстеншна. Подробности по оформлению и примеры можно найти в гитхабе проекта github.com .

Alfred

Альфред доступен в двух вариантах: простом и расширенном. Первый распространяется бесплатно, второй можно приобрести за 15 фунтов стерлингов. Программа реализована в виде небольшого всплывающего окна с текстовым поисковым полем, появляющегося по нажатию хоткея (по умолчанию - ). По мере ввода символов в текстовое поле альфред, подобно Spotify, подбирает релевантные варианты (поиск приложений, файлов, подсчет математического выражения…). Powerpack добавляет целый ряд полезных возможностей, позволяющих, например, проиграть найденный альбом (если по запросу были найдены музыкальные треки) в iTunes, отправить найденные файлы по e-mail, а также подключить различные экстеншны, написанные на shell, AppleScript, а также workflow автоматора. На сайте разработчиков есть специальный раздел посвященный дополнениям support.alfredapp.com .

Заключение

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

Для начала рассмотрим работу с Автоматором. Это очень далеко от «настоящего» программирования, но не менее захватывающе и полезно.

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

Когда все это будет освоено, отбросим все сомнения и кинемся в самую глубину. В программирование непосредственно для Mac OS X. Родные приложения, родной язык разработки, родной IDE, родные проблемы.

Automator

Автоматор - это стандартное программа, которое поставляется вместе с операционной системой и позволяет автоматизировать несложные действия. На самом деле с её помощью можно создавать разные действия, не называя это программами. Это здорово. Разработки пугаются, и не хотят с ней связываться. А тут вроде как не программирование, поэтому можно попробовать.

Рис. 2 - Автоматор запущен

Запустим автоматор. Сразу после запуска появится окно с возможностью выбора типа «workflow» («рабочего процесса» в русском переводе) (рис. 2). Что это такое? Дословно это переводится, как «поток работ». На самом деле это последовательность действий. Например, что нужно сделать, чтобы сварить кофе?

  1. Взять кофе из банки в шкафу.
  2. Найти кофемолку.
  3. Намолоть кофе.
  4. Запихнуть молотый кофе в кофеварку.
  5. Налить в кофеварку воду.
  6. Поставить чашку.
  7. Включить кофеварку, подождать пока выключится.
  8. Взять чашку, поставить на стол.

Вот именно эта последовательность действий и называется непонятным словом «workflow» или не менее непонятным «рабочим процессом». При работе с автоматором мы набираем действия одно за другим для того, чтобы из исходных данных получить результат.

Тип рабочего процесса (возьмем этот термин за отправную точку, раз так перевели в Apple) определяет как раз исходные данные, с которыми хочется что-либо сделать. Нам предлагают работать с файлами, аудио-данными, фотографиями, текстом или чем-то совершенно непонятным и своим. Например, попробуем взять интернет-страничку, скачать с нее все картинки, по дороге немного над ними поиздевавшись. И сохранить результат к себе в папку.

Тут начинается небольшая чехарда. В английской версии можно выбрать подходящий тип процесса, который собирает ссылки на картинки с текущей страницы. В русской версии этого нет. Поэтому, дабы избежать ненужных повторений и разногласий, выбираем тип процесса «Произвольный» или «Custom». Появляется чистое поле справа, где мы будем составлять последовательность действий и внушительный список действий слева. Составим предварительный список того, что нужно сделать:

  1. Взять текущую страницу приложения Сафари.
  2. Получить оттуда все картинки.
  3. Поиздеваться над ними (надо всеми одинаково).
  4. Сохранить результат.

Сафари вроде как относится к интернету. Поэтому выбираем раздел «Интернет», там есть действие «Получить текущую страницу из Safari», перетаскиваем его в поле справа (рис. 3).

Рис. 3 - Перетащили первое действие

Из полученной страницы нужно выковырять картинки. Нужного действия нет. Но есть действие, которое получает URL’ы картинок, то есть их адреса. Ну, попробуем. Перетаскиваем действие «Получить URL изображений веб-страницы» так, чтобы оно оказалось под предыдущим. Это общее правило, процесс выполняется сверху вниз. Обращаем внимание, что действия связались стрелкой. Это обозначает, что результат верхнего действия используется в нижнем. Если не используется - стрелки не будет. Но что делать с этими адресами? Скачать! Поскольку термин «скачать» - неформальный, ищем что-то более официальное. О! «Загрузить URL». Берем. Тащим это действие, снова появляется стрелка. В действии есть какое-то непонятное поле (рис. 4).

Поле называется «Где» (хотя должно бы называться «Куда») и показывает, куда сохранять добытое. Оставим как есть. Если ткнуть в «Описание», то увидим, что на вход действие получает URL- адреса, в качестве результата «Файлы/папки». Это хорошо, потому что мы теперь работаем с файлами. У нас получилось преобразовать ссылки на странице в реальные картинки на нашем компьютере. Едем дальше.

Выбираем библиотеку «Фото» в списке действий слева. Нас сейчас интересует какое-нибудь извращение. Подойдет «Обработка изображений Quartz- фильтром». Звучит таинственно. На самом деле это просто применение фильтров к картинкам. Вроде «Сепии». Перетаскиваем действие под остальные, выбираем тип фильтра по вкусу. В процессе перетаскивания нас предупредят, что этот фильтр совершает надругательства над изображениями. Нам это подходит, поэтому смело соглашаемся.

Осталось взять полученные файлы и положить их в какое-нибудь правильное место. Пускай это правильное место будет в «Документах», в подпапке «Картинки из интернета». Работаем с файлами, поэтому выбираем библиотеку действий «Файлы и папки», там есть замечательное действие «Новая папка». Замечательное, потому что, выбрав его и посмотрев на описание (внизу под списком действий), читаем: «Данное действие создает новую папку с указанным именем. Вход:(Файлы/папки) Если файлы переданы в это действие, они будут скопированы в новую папку. Результат: Файлы/папки». Отлично! Именно то, что нам нужно. Кидаем вниз. Вводим имя новой папки и выбираем, где ее создать.

Пошли проверять работу всего этого дела. Открываем любимый сайт в Safari. Переходим в Автоматор, и сверху справа нажимаем большую кнопку «Запустить». Начинается волшебство. Крутятся колесики около действий, рядом с выполненными - появляются галки и в конце звучит победный «Донг». Проверяем. Открываем в Finder папку «Картинки из интернета», которая создалась в «Документах». Хм, действительно картинки. Работает!

Рис. 6 - Как выглядит «рабочий процесс» после выполнения

Обратите внимание на зеленые «галки» снизу слева у каждого действия. Это обозначает, что действие выполнено успешно. Если что-то сломается, там будет красный крестик.

Первые шаги сделаны. Вот список того, что еще можно сделать при помощи Автоматора:

  1. Переименовать пачку файлов.
  2. Послать письмом файл(-ы) прямо с рабочего стола.
  3. Массово изменить размер картинок. Как файлов, так и альбома в iPhoto.
  4. Сделать рассылку по адресной книге (по группе адресов).
  5. Сделать по текстовому файлу аудиофайл (к сожалению, нет возможности заставить компьютер говорить по-русски).
  6. Закачать полученный файл на FTP.

Все эти и другие действия можно комбинировать в произвольном порядке. В общем, простор для творчества огромный. И никакого программирования. It just works!




Top