לחיצת מקש אחת מספיקה כדי להפעיל 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: מקש אחד לכל פעולה, יותר שטח הרשאה

  1. צור קיצור מקומי ב-Shortcuts וקרא לו על שם המשימה, למשל Connect Office VPN.

  2. הוסף Run Shell Script והדבק את בקשת ההתחלה, כששם השירות מוקלד מילולית ולא נלקח מהלוח או מטקסט נבחר.

  3. הרץ אותו פעם אחת מהעורך בהפעלה המחוברת שלך וסיים את זרימת האימות הרגילה, כדי שהמערכת תרשום את ההרשאה הדרושה.

  4. פתח את פרטי הקיצור וקשר צירוף עם Add Keyboard Shortcut. Apple מתעדת את הקישור הזה ב-מדריך המשתמש של Shortcuts שלה; צירופים שהמערכת כבר שומרת לעצמה לא ניתנים לתפיסה.

הקישור נוסע עם הקיצור, ולכן פעולה אחת יכולה לשבת גם בשורת התפריטים או ב-Dock בלי עבודה נוספת. המחיר הוא הרשאה שנייה: Shortcuts לא יריץ סקריפט מעטפת עד שתסריטוּת תורשה בהעדפות שלו, וב-Mac מנוהל ההגדרה הזו עשויה להיות נעולה על ידי מדיניות. אפשר אותה לקיצורים שכתבת או קראת בעצמך, לא לקובץ מיובא שתוכנו לא ברור.

הסנכרון הוא המלכודת האחרת. קיצור שהועתק מ-Mac אחר עדיין נושא את שם השירות המילולי של אותו Mac. במכונה שבה השירות נקרא אחרת המקש נורה, הסקריפט יוצא, ושום דבר לא אומר לך למה.

Automator: פחות חלקים נעים, מקש שצריך לחפש

  1. ב-Automator בחר Quick Action, הגדר את תהליך העבודה כך שלא יקבל קלט בשום אפליקציה, והוסף Run Shell Script עם אותה פקודה, מעטפת /bin/zsh.

  2. שמור אותו תחת שם שתזהה ברשימה, כי זה השם שתחפש אחר כך.

  3. פתח את הגדרות המערכת, אחר כך את המקלדת, אחר כך את קיצורי המקלדת, אחר כך את השירותים. מצא את תהליך העבודה, סמן אותו אם אינו מסומן, ורשום צירוף.

תהליך העבודה נקרא כשירות, ולכן המקש חי בטבלת השירותים ותלוי בשם תהליך העבודה. אם תשנה את שמו של תהליך העבודה השמור אחר כך, כדאי שתפתח שוב את הפאנל הזה כדי לאשר שההקצאה שרדה. קיצור השירות הוא גלובלי, וזה נוח עד שהוא מתנגש בצירוף שאפליקציה אחרת רוצה.

מה שאתה מרוויח הוא חפץ קטן יותר ובקשת הרשאה אחת פחות: קובץ תהליך עבודה רגיל, בלי רשומה משלו בשורת התפריטים, בלי מתג תסריטוּת להתווכח עליו. מה שאתה מפסיד הוא יכולת מציאה, כי הפעולה מופיעה ברשימת השירותים רק אחרי שתהליך העבודה נשמר ונראה פעם אחת על ידי המערכת.

היכן הם נפרדים כשהמקש לא עושה דבר

SymptomShortcuts routeAutomator route
Key fires, nothing connectsService name mismatch; re-read scutil --nc listSame name mismatch inside the shell action
Key never fires anywhereBinding collides with a reserved or app-level combinationService entry unticked in Keyboard Shortcuts, or renamed
An authorization dialog appears every timePrompt comes from the VPN type, not from ShortcutsSame prompt, same cause; the script runs as you
Connects, no reachable resourceReadiness not checked after the requestIdentical gap, identical fix
Works only inside one appRare; check where the shortcut is made availableWorkflow set to receive input from a specific app

הטבלה עקומה בכוונה: בשתיים מחמש השורות שלה התיקון שונה באמת. רוב הלחיצות הכושלות מגיעות לאותו זוג תקלות, שם שלא מתאים לשירות השמור ובקשה שנחשבת לחיבור גמור, והחלפת כלי לא מרפאת אף אחת מהן.

שתי הדרכים גם מסרבות לאחסן אישורים. צירוף מקשים לא יכול להפוך התחברות אינטראקטיבית לכזו בלי השגחה, והדבקת סיסמה לסקריפט היא רעיון גרוע מלהקליד אותה פעם ביום.

בחר לפי שלושת התנאים האלה

בחר Shortcuts כשאתה רוצה מקש אחד לכל פעולה ועוד גישה משורת התפריטים, וכשתסריטוּת כבר מותרת במכונה. בחר Automator כשאתה רוצה קובץ אחד להעתקה בין Mac-ים ובלי מתג נוסף. אם הארגון שלך נועל תסריטוּת ב-Shortcuts, ה-Quick Action הוא היחיד מבין השניים שירוץ בלי שינוי מדיניות, וזה מכריע את השאלה בשבילך.

לפני שאתה מסתמך על המקש, עבור על הרשימה הזו: אשר את השירות ב-scutil --nc list; לחץ על המקש מהפעלה קרה וצפה ב-scutil --nc status; פתח את המשאב שלמענו קיים המנהרה; וצור פעולת ניתוק נפרדת ובעלת שם ברור. אל תשים את פעולת העצירה היחידה בסשן מרוחק שהיית זקוק למנהרה כדי להגיע אליו.

הצעד הבא: קשר רק Connect, השאר את Disconnect לא קשור ליום אחד, ורשום באיזו תדירות אתה בכל זאת פונה לתפריט. זה יגיד לך אם הלחיצה חוסכת זמן או רק מסתירה מצב.

מאמרים קשורים