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

Пишем скрипт

Для начала, нам потребуется запустить Редактор AppleScript, который может быть найден в папке Программы > Служебные программы (Applications > Utilities).

В открывшемся окне нужно будет набрать вот такой код. Я его постарался по-максимуму снабдить комментариями (они начинаются с двух минусов), чтобы можно было разобраться в действиях, но если вникать лень, можно просто скопировать и вставить в Редактор:

-- разрешаем другим процессам получить список всех процессов
tell application "System Events" to set the visible of every process to true
-- добавляем в «белый список» Finder
set white_list to {"Finder"}
-- конструкция < try … end try > используется для попытки выполнения каких либо действий
-- для обработки ошибки внутри конструкции try можно использовать оператор on error
try
-- просим Finder
tell application "Finder"
-- записать в переменную process_list имена всех видимых процессов
set process_list to the name of every process whose visible is true
end tell
-- запускаем цикл от 1 до числа элементов, записанных в process_list
repeat with i from 1 to (number of items in process_list)
-- записываем в переменную this_process имя процесса
-- с номером i (который мы перебираем циклом)
set this_process to item i of the process_list
-- оператор условия < if … end if > используется для выполнения команд,
-- удовлетворяющих определенному условию. В нашем случае это:
-- если процесс не находится в «белом списке», то…
if this_process is not in white_list then
-- … просим его завершить работу
tell application this_process
quit
end tell
-- завершаем оператор условия
end if
-- завершаем цикл
end repeat
-- вот тут мы как раз обрабатываем ошибки, которые
-- могут возникнуть при закрытии приложений
on error
-- показываем окно с ошибкой
tell the current application to display dialog "Error" & return & "Что-то пошло не так и сейчас скрипт завершит свою работу" buttons {"Quit"} default button 1 with icon 0
-- закрываем конструкцию try
end try

Правда в этом нет ничего сложного? Теперь остается сохранить этот скрипт в виде программы (application) и дать ему какое-то простое имя, например, Quit. Теперь вы можете поместить его на Рабочий стол и запускать всякий раз перед выключением компьютера. Но ведь можно пойти еще дальше и назначить для него определенную «горячую клавишу»!

Используем Automator

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

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

Теперь в окне поиска (2) нужно найти «запустить программу» и перетаскиваем найденное в правую половину окна. На этом этапе Automator должен выглядеть примерно так. Убедитесь, что в выпадающем списке выбрано наше ранее созданное приложение Quit.app:

Сохраняем и называем его как-нибудь. Я назову QuitAll. Теперь нужно зайти в Системные настройки (System Preferences) и выбрать иконку «Клавиатура». В открывшемся окне нужно перейти на закладку «Сочетания клавиш» и в списке (в левой панели) выделить самый последний элемент — «Сочетания клавиш программ».

После нажатия на кнопку с плюсом «+» должно появиться небольшое окошко, в котором нужно будет выставить такие параметры:

Учтите, что в поле «Название меню» нужно написать именно то имя, которое мы дали нашему сервису в Automator (регистр тоже имеет значение). Зато не особо важно, какое сочетание клавиш вы назначите для вызова сервиса. Главное, чтобы оно уже не было зарезервировано системой и вы его не забыли 🙂 Остается нажать кнопку «Добавить» и опробовать наш сервис в действии (не забудьте сохранить важные данные, потому что предложения действительно закрываются, я попробовал). Кстати, доступ к нему можно получить даже из любого меню приложения > Cлужбы.

Все, теперь вы готовы если и не покорять мир, то к выключению компьютера точно!


Читайте также: