Как-то летом я рассказывал про интересную концепцию менеджера паролей от Ford. iOS-разработчик Баз Скотт решил использовать похожий подход, чтобы автоматически блокировать свой Mac всякий раз, когда он отлучался от компьютера, и разблокировать его по возвращению.

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

  • Mac под управлением OS X. Баз писал данную инструкцию для Mountain Lion, но в обычном Lion этот трюк тоже должен работать.
  • Смартфон с модулем Bluetooth (в нашем случае — iPhone).
  • И элементарные познания в AppleScript.

Предварительная настройка

Для начала пользователям требуется зайти в панель Системных настроек под названием «Рабочий стол и заставка» и выбрать там заставку по своему вкусу. Я, например, использую вот такие простые часики.

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

Шаг 1. Скрипт для блокировки Mac

Далее необходимо создать сценарий AppleScript, который будет блокировать компьютер при выходе пользователя с телефоном из зоны действия Bluetooth. Точнее, активировать заставку на экране, но это равносильно блокировке, поскольку мы включили опцию «Запрашивать пароль». Назовем этот файл iPhoneOutOfRange.scpt:

on run
say "Я буду по тебе скучать!" using "Milena"
activate application "/System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app"
end run

Как видите, в строке 3 просто запускается заставка (с указанием полного пути к фреймворку). А в строке 2 вы можете указать любую фразу/голос или вовсе убрать голосовое сопровождение.

Шаг 2. Скрипт для разблокировки Mac

Для разблокировки Мака нужно остановить заставку и ввести в форму пароль от вашей учетной записи. И если в версиях OS X, предшествующих Lion, это можно было сделать при помощи изменения одной переменной, то теперь приходится заставлять систему вводить пароль за нас.

Создайте следующий сценарий и сохраните его с названием iPhoneInRange.scpt:

on run
say "А вот и ты!" using "Milena"
tell application "/System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app" to quit
tell application "System Events" to keystroke 125
delay 1
tell application "System Events" to keystroke "ВАШ_ПАРОЛЬ"
delay 1
tell application "System Events" to keystroke return
end run

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

  • Сделать скрипт доступным только для запуска (при сохранении в Редакторе AppleScript установите соответствующий чекбокс) — в этом случае вы его уже не отредактируете.
  • Забить и не волноваться. Неужели кто-то будет копаться в сценариях, чтобы найти пароль от вашей учетной записи?
  • Хранить пароль в Связке ключей и получать его с помощью AppleScript. К сожалению, Баз так и не смог реализовать это.

Шаг 3. Приложение Proximity

Теперь нужно каким-то образом запускать наши сценарии. Лучше всего для этого подойдет приложение Proximity — несмотря на то, что последний релиз утилиты состоялся в далеком 2009 году, она все еще хорошо работает в Mountain Lion и обычном Lion.

Proximity доступен для загрузки со страницы проекта на Google Code (а исходные коды опубликованы на GitHub). Загружаем и устанавливаем его точно так же, как и любое другое приложение. Также, вы можете добавить утилиту в «Объекты входа» при каждом включении компьютера.

Шаг 4. Собираем все элементы

После запуска Proximity в панели меню появится еще одна иконка, из неё доступно окно настроек. В нем требуется:

  • Установить интервал мониторинга устройств, скажем, на 20 секунд.
  • Нажать на кнопку «Change Device» и создать пару с вашим iPhone. Скорее всего, данный трюк будет работать и с любым другим телефоном, у которого есть модуль Bluetooth.
  • С помощью к кнопки «Check Connectivity» можно убедиться, что смартфон связан с компьютером правильно.
  • В поле «Out of Range Script» установите сценарий, созданный на шаге 1, а в поле «In Range Script» — на шаге 2.

Остается лишь проверить систему в действии — просто отключите Bluetooth на телефоне, а затем включите его снова. Компьютер должен заблокироваться и разблокироваться.

Вот и все!


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