Automator: Отключение Центра уведомлений OS X по расписанию

Функцию iOS 6 Не беспокоить (Do Not Disturb) сложно переоценить — удобно, когда устройство самостоятельно отключает все системные уведомления, когда вы, например, спите или кропотливо работаете. Увы, такой же возможности лишена OS X, в которой предусмотрено только ручное отключение Центра уведомлений. Однако при помощи «Автоматора» этот недостаток настольной операционки Apple можно легко устранить.

Вам понадобится создать в «Автоматоре» два процесса: для отключения и повторного включения Центра уведомлений. Оба процесса должны иметь тип Напоминание календаря (Calendar Alarm) — не забудьте выбрать соответствующую иконку в окне выбора типа документа.

Выбор типа документа «Автоматора».

В первый процесс добавьте действие Запустить AppleScript (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"

Этот сценарий вносит изменения в конфигурационный файл Центра уведомлений: включает функцию «Не беспокоить», назначает конкретную дату и время, до которых уведомления не должны отображаться на экране, и перезапускает ЦУ, чтобы внесенные изменения вступили в силу.

Строение процесса для запланированного выключения Центра уведомлений.
Строение процесса для запланированного выключения Центра уведомлений.

Теперь сохраните этот процесс, скажем, под названием Не беспокоить (Do Not Disturb). Как только вы нажмете кнопку ОК, автоматически запустится программа «Календарь», в которой уже будет заготовка нового события. Двойным щелчком на нем откройте форму просмотра свойств этого события. Нажмите кнопку Правка (Edit) и выполните такие действия:

  • В поля с (from) и до (to) введите время, когда Центр уведомлений нужно отключить. Например, пусть это будет 9:00.
  • В выпадающем списке повторять (repeat) выберите пункт Настроить (Custom) и в появившемся окошке щелкните на всех рабочих днях. Нажмите ОК.
  • Проверьте, чтобы в секции напоминать (alert) уже было указано действие Открыть файл (Open File), имя только что созданного файла Не беспокоить (Do Not Disturb) и время напоминания 0 мин. до (0 minutes before).
  • Нажмите кнопку Готово (Apply) для сохранения параметров этого календарного события.
Параметры настройки календарного события для выключения Центра уведомлений.
Параметры настройки календарного события для выключения Центра уведомлений.

Выключатель ЦУ готов. Теперь нужен включатель. Создайте новое Напоминание календаря (Calendar Alert) и добавьте в него действие Запустить AppleScript (Run AppleScript) с таким кодом:

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"

Этот сценарий выполняет обратные действия — настраивает конфигурационный файл ЦУ таким образом, чтобы функция «небеспокойства» была отключена.

Строение процесса для запланированного включения Центра уведомлений.
Строение процесса для запланированного включения Центра уведомлений.

Сохраните этот процесс под названием Включить Центр уведомлений (Activate Notification Center), и в «Календаре» произведите аналогичную настройку события, определив для него время выполнения 18:00 и проверив наличие имени только что сохраненного процесса в секции напоминать (alert).

Параметры настройки календарного события для выключения Центра уведомлений.
Параметры настройки календарного события для выключения Центра уведомлений.

Вот и все дела. Теперь каждый рабочий день, с понедельника по пятницу, Центр уведомлений будет отключаться в 9 часов утра и включаться обратно в 18:00, тем самым избавляя вас от назойливых сообщений во время работы. Конечно, временны́е рамки можно устанавливать на свое усмотрение.

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