Как-то летом я рассказывал про интересную концепцию менеджера паролей от 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 на телефоне, а затем включите его снова. Компьютер должен заблокироваться и разблокироваться.
Вот и все!
Последние комментарии