Клавіатурне скорочення для 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 неприв'язаним на день і зауважте, як часто ви все одно тягнетеся до меню. Це скаже вам, чи натискання економить час, чи лише приховує стан.