Клавиатурное сокращение для VPN на Mac: Shortcuts против Automator
Shortcuts и Automator оба привязывают VPN на Mac к одной клавише. Сравните, где живёт каждая клавиша, что вас спрашивает и что проверить, когда ничего не происходит.
Одного нажатия достаточно, чтобы запустить VPN на Mac, и у Apple есть два собственных способа привязать его. Shortcuts даёт каждой команде собственную комбинацию клавиш и пункт в строке меню. Automator даёт Quick Action, клавишу для которой вы назначаете в Системных настройках, отдельно от самого рабочего процесса. Оба пути отправляют один и тот же запрос одной и той же службе подключения, поэтому важные различия в том, где живёт привязка, через какие ворота разрешений вы проходите и что проверяете, когда клавиша вроде бы ничего не делает.
Всё ниже предполагает существующую системную службу VPN, которая видна в scutil --nc list. Если ваш провайдер поставляет сторонний клиент, подключение которого там никогда не появляется, ни один из двух инструментов не сможет управлять им через scutil, и вам нужно собственное действие этого провайдера.
Оба пути вызывают одну и ту же службу
Начните со списка, а не с приложения. scutil --nc list выводит каждую сохранённую службу с её состоянием и точным отображаемым именем, и именно эту строку нужно заключить в кавычки в команде:
/usr/sbin/scutil --nc start "Office VPN"Эта строка — запрос на активацию. Он возвращается, как только запрос принят; он не ждёт второго фактора, не сообщает, что частный DNS установлен, и не подтверждает, что файловый сервер отвечает. Считайте его тем же щелчком, который вы сделали бы в меню, только без меню.
В scutil также нет переключателя. Отдельные действия подключения и отключения рассуждаются легче, чем одна клавиша, переворачивающая состояние, потому что переворот, нажатый во время рукопожатия, может остановить подключение, которое так и не поднялось до конца. Если вам нужна одна клавиша, ветвитесь по выводу scutil --nc status "Office VPN" и решайте явно; не чередуйте вслепую.
Shortcuts: одна клавиша на действие, больше поверхности разрешений
Создайте в Shortcuts локальную команду и назовите её по задаче, например Connect Office VPN.
Добавьте Run Shell Script и вставьте запрос запуска, набрав имя службы буквально, а не взяв его из буфера обмена или выделенного текста.
Запустите его один раз из редактора в собственной сессии, в которой вы вошли, и завершите обычный поток аутентификации, чтобы система записала нужное разрешение.
Откройте сведения о команде и привяжите комбинацию через Add Keyboard Shortcut. Apple документирует эту привязку в своём руководстве пользователя Shortcuts; комбинации, которые система уже зарезервировала, забрать нельзя.
Привязка путешествует вместе с командой, поэтому одно действие может без лишней работы сидеть и в строке меню, и в Dock. Цена — второе разрешение: Shortcuts не запустит скрипт оболочки, пока в его настройках не разрешено написание скриптов, а на управляемом Mac этот параметр может быть заблокирован политикой. Разрешайте это для команд, которые вы сами написали или прочитали, а не для импортированного файла с неясным содержимым.
Синхронизация — другая ловушка. Команда, скопированная с другого Mac, по-прежнему несёт буквальное имя службы того Mac. На машине, где служба называется иначе, клавиша срабатывает, скрипт завершается, и ничто не говорит вам почему.
Automator: меньше движущихся частей, клавиша, которую нужно поискать
В Automator выберите Quick Action, настройте рабочий процесс так, чтобы он не принимал ввод ни в одном приложении, и добавьте Run Shell Script с той же командой, оболочка
/bin/zsh.Сохраните его под именем, которое узнаете в списке, потому что именно это имя вы будете искать позже.
Откройте Системные настройки, затем Клавиатуру, затем Сочетания клавиш, затем Службы. Найдите рабочий процесс, поставьте галочку, если её нет, и запишите комбинацию.
Рабочий процесс вызывается как служба, поэтому клавиша живёт в таблице служб и зависит от имени рабочего процесса. Если позже переименовать сохранённый рабочий процесс, стоит снова открыть эту панель и убедиться, что назначение уцелело. Служебное сочетание глобально, что удобно до тех пор, пока оно не столкнётся с комбинацией, которую хочет другое приложение.
Вы получаете меньший артефакт и на один запрос разрешения меньше: обычный файл рабочего процесса, без собственного пункта в строке меню, без переключателя написания скриптов, о котором можно спорить. Вы теряете находимость, потому что действие появляется в списке Службы только после того, как рабочий процесс сохранён и один раз замечен системой.
Где они расходятся, когда клавиша ничего не делает
| Symptom | Shortcuts route | Automator route |
|---|---|---|
| Key fires, nothing connects | Service name mismatch; re-read scutil --nc list | Same name mismatch inside the shell action |
| Key never fires anywhere | Binding collides with a reserved or app-level combination | Service entry unticked in Keyboard Shortcuts, or renamed |
| An authorization dialog appears every time | Prompt comes from the VPN type, not from Shortcuts | Same prompt, same cause; the script runs as you |
| Connects, no reachable resource | Readiness not checked after the request | Identical gap, identical fix |
| Works only inside one app | Rare; check where the shortcut is made available | Workflow set to receive input from a specific app |
Таблица намеренно кривая: в двух из её пяти строк исправление действительно другое. Большинство неудачных нажатий сводится к одной и той же паре неисправностей, имени, не совпадающему с сохранённой службой, и запросу, принятому за завершённое подключение, и смена инструмента не излечит ни одну из них.
Оба пути также отказываются хранить учётные данные. Комбинация клавиш не может превратить интерактивный вход в необслуживаемый, а вставка пароля в скрипт — худшая идея, чем набирать его раз в день.
Выбирайте по этим трём условиям
Выбирайте Shortcuts, когда хотите клавишу на действие плюс доступ из строки меню и когда написание скриптов на машине уже разрешено. Выбирайте Automator, когда хотите один файл для копирования между Mac и никакого лишнего переключателя. Если ваша организация запирает написание скриптов в Shortcuts, Quick Action — единственная из двух, которая заработает без изменения политики, и это решает вопрос за вас.
Прежде чем полагаться на клавишу, пройдите этот список: подтвердите службу в scutil --nc list; нажмите клавишу с холодного старта и наблюдайте за scutil --nc status; откройте ресурс, ради которого существует туннель; и создайте отдельное, ясно названное действие отключения. Не помещайте единственное действие остановки на удалённую сессию, до которой вам нужен туннель.
Следующий шаг: привяжите только Connect, оставьте Disconnect непривязанным на день и отметьте, как часто вы всё равно тянетесь к меню. Это скажет вам, экономит ли нажатие время или просто скрывает состояние.