איך זה עובד, חלק אחר חלק
כלל אחד מחזיק את כל התוכנית ביחד: מצב החלון חי בזיכרון וההגדרות חיות בקבצים. כל מה שלמטה נובע מזה.
הכלל שמתחת לכל דבר
חלון מחזיק לשוניות. לשונית מחזיקה בלוקים. בלוק הוא טרמינל, קובץ בעריכה, לוח קבצים, עמוד אינטרנט, תמונה, PDF, עמוד Markdown, diff, מוניטור המערכת, מסך ההגדרות או לוח של תוסף. הם מתפצלים לכל כיוון עם קינון, נגררים, משנים גודל ונסגרים לפי מערכת חוקים אחת ולא חוקים חדשים לכל פיצ'ר חדש. מה שגדול מדי מכדי להיות של כולם הוא תוסף מהקטלוג של vobuda עצמו, Design ו-Director עד כה, מותקן ומוסר בשלמותו בלחיצה אחת.
שום דבר בסידור הזה לא נשמר במסד נתונים, כי אין מסד נתונים. מה שהחלון עושה חי בזיכרון, ומה שהחלטת חי בקבצים. זו הסיבה שכפתור, מקש, שורת התפריטים, Cmd+K ושורת הפקודה כולם קוראים לאותה פעולה בשם שלה, וזו הסיבה שכדי לגרום לה להתנהג אחרת כמעט תמיד צריך לערוך JSON.
זו גם הסיבה שאמולטור הטרמינל הטוב ביותר ל-Mac, לסוג העבודה שלמענה זה נבנה, הוא כזה שאפשר לבדוק. אם הגדרה קיימת, יש שורה בקובץ שמחזיקה אותה. אם פעולה קיימת, יש שם שאפשר לקרוא לה בו.
חמש דרכים לפעולה, וזו אותה פעולה
עם כל כך הרבה פעולות, רוב התוכנה נסתרת בפועל. Cmd+K היא הדרך שעונה על “מה היא יכולה לעשות” ולא על “עשה את זה”.
-
זה מלמד את המקשים במקום להחליף אותם
כל שורה מציגה את הקיצור שלה. מי שפונה לרשימה פעמיים לאותה פעולה כבר למד את המקש עד הפעם השלישית.
-
זה לא מילון חמישי
כל שורה מפעילה פעולה לפי שם, בדיוק כמו ארבעת האחרים. בדיקה מצמידה את הטבלה שהיא מציגה לרשימה של הליבה לגבי מה שמקש יכול להיות משויך אליו, בשני הכיוונים: פעולה שקיימת ולא מוצעת שם גורמת לבנייה להיכשל.
-
שורת הפקודה היא אותה קבוצה
vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, מוקלדים בכל בלוק של vobuda, ו-
vobuda mcpמציע את אותן פקודות לסוכן ככלי MCP. זו לא דלת אחורית לסקריפטים: בדיקות הממשק מפעילות דרכה את כל התוכנה, וזו הסיבה שאפשר לסמוך עליה, והסיבה שסוכן יכול לסדר מחדש את החלון שלך ואתה יכול לקרוא בדיוק מה הוא עשה.
בלוקים, ומה הם מבטיחים
בלוק עובר בין טאבים כשה-shell שלו רץ
גרור בלוק לפי הכותרת שלו אל טאב ברצועה והוא נוחת שם: אותו id, אותו shell, אותה תיקייה, עדיין מריץ מה שהוא הריץ. הטאב נדלק בצבע ההדגשה כשהבלוק נמצא מעליו. יש גם פעולה לזה, block.to-tab:2, כך שאפשר לשייך אותה למקש ובדיקה ללא עכבר יכולה ללחוץ עליה.
גדלים נשמרים, ויש רף תחתון
לכל בלוק בנפרד, ואף בלוק לא יכול להיעשות צר עד כדי כך שהוא הופך לבלתי שמיש. פאנל ברוחב 200 נקודות הוא פאנל שאף אחד לא יכול להשתמש בו.
שום דבר שלך לא הולך בשקט
סגירה של משהו שרץ שואלת קודם, בשם, כי אובדן העבודה של מישהו פעם אחת עולה באמון יותר ממה שפיצ'ר שלם מרוויח. מאותה סיבה תיקיית הפרויקט נצלמת לפני כל תור של סוכן, עם לחיצה אחת להחזרה; מפתח שהודבק לסוכן נעצר לפני שהסוכן רואה אותו; וגדר שאפשר להפעיל דוחה כתיבות ומחיקות של סוכן מחוץ לפרויקט.
סשנים חוזרים כברירת מחדל
לשוניות, בלוקים ותיקיית העבודה של כל בלוק חוזרים אחרי הפעלה מחדש, והדבר מופעל כברירת מחדל; מתג אחד בסעיף הכללי מכבה אותו. סשן שהגיע ממכונה אחרת פותח מה שהוא יכול ואומר מה לא, במקום להפיל בלוקים בשקט.
תיקיית ההגדרות, קובץ אחר קובץ
כל מה שב-~/.config/vobuda הוא JSON קריא, שנמצא במעקב בזמן שהתוכנית רצה. שמור את הקובץ והחלון מצייר את עצמו מחדש.
| קובץ | מה הוא מכיל |
|---|---|
| settings.json | ערכת נושא, מראה, טרמינל, מעטפת, חלון, אותות: כל הגדרה בעשרת הסעיפים |
| themes/*.json | צבעי הטרמינל והחלון. מגיעות 25 פלטות, שתיים מהן בנויות לליקוי ראיית צבעים |
| looks/*.json | צורת החלון: פינות, צללים, צבעי לוחות, שקיפות. 29 מגיעים |
| skins/*.json | אילו פאנלים של הצג מצוירים, ואיך |
| buttons.json | המזח: כפתורים, סדר, צד, צורה, וצבע למעטים שכדאי לסמן |
| agents.json | איך סוכן מזוהה ומה מוצע לו |
| keys.json | כל קיצור. תפריט macOS הטבעי נבנה מאותו קובץ בדיוק |
| workspaces/*.json | פרויקטים: כל אחד חלון עם לשוניות, תיקייה, ערכת נושא וסרגל לחצנים משלו |
ערכות נושא מובנות חיות בתוך קובץ ההרצה והתיקייה עוקפת אותן, כך שעדכון מביא צבעים חדשים בלי לדרוס דבר שערכת. אפשר לשמור את כל התיקייה כארכיון אחד ולשחזר אותו ב-Mac אחר, וב-Mac יש עותק ב-iCloud Drive, מופעל כברירת מחדל, עם מתג אחד לכיבוי.
מוניטור מערכת, מסודר על ידי קובץ
שנים עשר סוגי לוחות, ואילו מהם אתה רואה נקבע בסקין ולא במסך שמישהו עיצב פעם אחת.
-
המספרים כנים לגבי עצמם
ערך שהמערכת מעריכה ולא מודדת מצויר עם טילדה, וחומרה שלא קיימת נותנת ערך חסר ולא אפס. מחשב בלי GPU נפרד לא מקבל פאנל GPU שמראה אפס אחוז.
-
שתי הכתובות, עם כפתור העתקה לכל אחת
לוח הכתובות מציין תחילה את הכתובת שהאינטרנט רואה ומתחתיה את זו שיש למכונה ברשת שלה עצמה. הוא שואל רק כשהלוח על המסך, בערך פעם בעשר דקות, או כל שלושים שניות כל עוד אין כתובת ידועה, והבקשה לא נושאת דבר על המכונה.
-
מסודר מחדש בגרירה, כמו כל השאר
הפאנלים של הצג, הכפתורים של המזח וחלקי סרגל הסוכן כולם נאספים ומונחים במקום שלהם באותה תנועה. שורת הגדרה נאחזת באמצעות האחיזה שבצד שמאל שלה ולא בכל מקום בשורה, כך שגרירה שמתחילה בשדה טקסט לא מונעת ממך לבחור את המילה שרצית לשנות.
קובץ נפתח לצד ה-shell
הדבר שטרמינל בדרך כלל שולח אותך למקום אחר בשבילו: נתיב מופיע בפלט, שתי שורות צריכות שינוי, ועד עכשיו זה היה אומר לצאת לעורך ולחזור כשההקשר של ה-shell אבד.
-
שמירה היא מכוונת
שום דבר לא נכתב עד Cmd+S. עורך שכותב תוך כדי הקלדה זה דבר טוב באפליקציית פתקים ודבר רע לצד shell שרץ. זו פעולה ולא רק לחיצת מקש, וזה גם נותן לה פריט תפריט, קיצור וערך בשורת הפקודה כמו כל דבר אחר כאן.
-
הסירובים חשובים בדיוק כמו הכתיבה
קובץ שהשתנה בדיסק מאז שנפתח לא נדרס. קובץ בינארי לא מוצג כטקסט מעוות. תיקייה לא נפתחת בכלל. שינויים שלא נשמרו נושאים סימון גלוי, וסגירת קובץ שנערך שואלת.
-
מציאת קובץ
פאנל הקבצים מחפש לפי שם מתחת לתיקייה שאתה נמצא בה, וכל תוצאה מציינת באילו שתי תיקיות היא יושבת, כי שם בלבד לא יכול להבדיל בין שני index.ts. הוא מדלג על node_modules, .git, target ודומיהם, עוצר אחרי שמונה רמות או מאתיים תוצאות, ולא עושה כלום מתחת לשתי אותיות.
הגדרות, כמסך וכקבצים
עשרה סעיפים, מכללי ועד נתונים ופרטיות, חיפוש בכל הגדרה, וכל אחת מהן היא שורה בקובץ שאפשר לערוך גם ביד.
-
ההגדרות מגיעות אל הבלוק
קליק ימני על לוח אומר “הדבר הזה כאן, שנה אותו”. לכן בחירה בשורת הגדרות בתפריט של הבלוק עצמו פותחת את הסעיף הזה מעל החלון, בפינת התפריט, במקום לקחת אותך למסך ההגדרות. זו פעולה כמו כל דבר אחר: settings.here:themes, settings.here:monitor.
-
צליל שאפשר לשמוע כשבוחרים אותו
בחירת צליל אות או פעמון הטרמינל משמיעה אותו. בחירת צליל מרשימת שמות שאי אפשר לשמוע היא בחירת שם בלבד.
-
שום דבר לא דורש הפעלה מחדש
תיקיית ההגדרות נמצאת במעקב, כולל שני הדברים שהליבה מחזיקה: שורת התפריטים של macOS שנבנית מקובץ הקיצורים שלך, והמקש הגלובלי של חלון הנפילה, שבו המקש הישן משוחרר לפני שהחדש נרשם כדי ששניים לא יענו בבת אחת. בדיקה קוראת כל רמז במסך ההגדרות ונכשלת על המילה restart.
דיבור והקראה
שניהם משתמשים במנוע הדיבור של המערכת עצמה, על המחשב שלך. השמע לעולם לא יוצא מהמחשב.
הכתבה
Cmd+Shift+V מקליד את מה שאתה אומר לתוך הבלוק שאתה עובד בו, והרצועה מציינת באיזו שפה היא מקשיבה, בשתי אותיות. משפט שהוכתב מוקלד ולעולם לא מופעל: זיהוי הדיבור טועה לפעמים, ופקודה שנשמעה לא נכון ומפעילה את עצמה היא תוכנית שמוחקת דברים כי רדיו היה דלוק. לצד סוכן, שבו משפט הוא הודעה ולא פקודה, הוא יכול להישלח בעצמו, וזו הגדרה שנקראת ברגע שהמשפט מסתיים.
הקראת התשובה בחזרה
Cmd+Shift+R מקריא בקול את התשובה האחרונה של הסוכן, לחיצה נוספת עוצרת אותה. מה שמוקרא הוא התשובה, לא המסך. תבליט בתחילת שורה, כוכביות סביב מילה מודגשת, גרשיים הפוכים סביב שם, קו מסגרת, נתיב מלא כשמספיק שם קובץ, כל אלה נעלמים, והמילים שבתוכם נשארות. ההקראה תחומה על ידי צורות ולא על ידי מילים, מלמטה על ידי שורת הקלט של הסוכן ומלמעלה על ידי הלוגו שלו, כי הריהוט של סוכן משתנה עם כל גרסה חדשה שלו.
הדברים הקטנים שקובעים אם תמשיך להשתמש בזה
הכפתור הימני שייך לנו
בכל מקום בחלון: התפריט של הבלוק עצמו בתוך בלוק, זה החיצוני של החלון, רצועת הטאבים, המזח, הרווח בין האריחים. כל שורה היא פעולה, ולתפריט עצמו יש פעולה משלו, block.menu, כך שתנועה שרק יד יכולה להגיע אליה היא לא תנועה ששום דבר לא יכול לבדוק. המקום היחיד ששומר על התפריט של המערכת הוא שדה טקסט, שם הוא מציע גזור, העתק, הדבק ומילון.
פתח תיקייה מכל מקום
vobuda://open?path=/some/path פותח טאב באותה תיקייה, מפעולת Finder, מסקריפט או מאפליקציה אחרת. ל-macOS אין הגדרת ברירת מחדל ברמת המערכת לטרמינל, אז זו הגרסה הכנה של התכונה הזו במקום הבטחה שאי אפשר לעמוד בה.
חיפוש בתוך בלוק
Cmd+F. השדה שייך לבלוק שהוא מחפש בו, וסגירתו משאירה את התצוגה במקום שבו הייתה ההתאמה.
קח את הבלוק איתך
Cmd+Shift+X מעתיק את הטקסט של בלוק, ושואל את הטרמינל עצמו, וזה גם מה שגורם לו לעבוד כשרינדור GPU מופעל, ואין בעמוד טקסט לבחירה. תמונה של הבלוק היא שתי פעולות ב-Cmd+K: “צילום הבלוק ללוח” ו“צילום הבלוק לקובץ”.
בדיקות עדכון שהן לא שיעורי בית
הליבה בודקת פעם ביום, בתהליכון משלה, ומה שאתה רואה הוא פס מעל הפריסה ולא עליה, כי הודעה שמכסה טרמינל היא כזו שאנשים לומדים לסגור בלי לקרוא. שום דבר לא מותקן עד שאתה לוחץ: לסוכן העדכון הוא פקודה שמוקלדת בבלוק הפעיל שבו רואים את הפלט, וב-Vobuda ב-Mac הכפתור מתקין את הגרסה החדשה ברקע, ואז מציע הפעלה מחדש, שקורית מעצמה אחרי עשר שניות כששום דבר לא רץ.
ארבעים שפות, ומדריך בכל אחת
כולל שורת התפריטים של macOS, שהמערכת בונה בליבה. ערבית ועברית מראות את כל החלון בהיפוך כיוון פרט לטרמינל עצמו, שם היפוך היה הופך פלט ונתיבים לבלתי קריאים. מפתח תרגום הוא המחרוזת באנגלית, כך שמחרוזת שלא תורגמה חוזרת לאנגלית קריאה במקום לרווח ריק או למזהה.
נסה את החלקים שקראת עליהם עכשיו
אחרי שתי שאלות קצרות בהרצה הראשונה, הוא נפתח עם בלוק טרמינל אחד ושום דבר אחר. כל מה שלמעלה הוא משהו שאתה מפעיל כשאתה רוצה.
curl -fsSL https://vobuda.com/install.sh | sh