Wie es funktioniert, Teil für Teil
Eine Regel hält das ganze Programm zusammen: Der Zustand des Fensters lebt im Arbeitsspeicher, die Konfiguration lebt in Dateien. Alles Folgende ergibt sich daraus.
Die Regel, die allem zugrunde liegt
Ein Fenster enthält Tabs. Ein Tab enthält Blöcke. Ein Block ist ein Terminal, eine Datei, die gerade bearbeitet wird, das Dateien-Panel, eine Webseite, ein Bild, ein PDF, eine Markdown-Seite, ein Diff, der Systemmonitor, der Einstellungsbildschirm oder das Panel eines Add-ons. Sie lassen sich in jede Richtung verschachtelt aufteilen, ziehen, in der Größe ändern und schließen, nach einem einzigen Regelsatz statt eines neuen für jede neue Funktion. Alles, was zu groß ist, um allen zu gehören, ist ein Add-on aus dem eigenen Katalog von vobuda, bisher Design und Direktor, jeweils ganz installiert und mit einem Druck ganz entfernt.
Nichts an dieser Anordnung wird in einer Datenbank gespeichert, denn es gibt keine Datenbank. Was das Fenster gerade tut, lebt im Arbeitsspeicher; was du entschieden hast, lebt in Dateien. Deshalb rufen ein Button, eine Taste, die Menüleiste, Cmd+K und die Kommandozeile alle dieselbe Aktion beim Namen auf, und deshalb bedeutet es fast immer, JSON zu bearbeiten, wenn man das Verhalten ändern will.
Deshalb ist der beste Terminal-Emulator für Mac, jedenfalls für die Art von Arbeit, für die er gebaut ist, einer, den man nachvollziehen kann. Existiert eine Einstellung, gibt es eine Zeile in einer Datei, die sie hält. Existiert eine Aktion, gibt es einen Namen, mit dem man sie aufrufen kann.
Fünf Wege zu einer Aktion, und es ist dieselbe Aktion
Bei so vielen Aktionen ist der Großteil eines Programms in der Praxis verborgen. Cmd+K ist der Weg, der die Frage „Was kann es tun?“ beantwortet statt „Tu das“.
-
Es lehrt die Tasten, statt sie zu ersetzen
Jede Zeile zeigt ihr eigenes Tastenkürzel. Wer für dieselbe Aktion zweimal zur Liste greift, hat die Taste beim dritten Mal gelernt.
-
Es ist kein fünftes Wörterbuch
Jede Zeile ruft eine Aktion beim Namen auf, genau wie die anderen vier. Eine Prüfung gleicht die Tabelle, die sie zeichnet, in beide Richtungen mit der Liste des Kerns ab, an welche Tasten sich eine Aktion binden lässt: Eine Aktion, die existiert und dort nicht angeboten wird, lässt den Build scheitern.
-
Die Kommandozeile ist dieselbe Menge
vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, in einem beliebigen vobuda-Block getippt, und
vobuda mcpbietet dieselben Befehle einem Agenten als MCP-Tools an. Keine Hintertür für Skripte: Die Interface-Tests steuern das gesamte Programm darüber, weshalb man ihr vertrauen kann, und weshalb ein Agent dein Fenster umordnen kann und du genau nachlesen kannst, was er getan hat.
Blöcke, und was sie versprechen
Ein Block wechselt den Tab, während seine Shell läuft
Ziehe einen Block an seiner Kopfzeile auf einen Tab in der Leiste, und er landet dort: gleiche ID, gleiche Shell, gleicher Ordner, läuft weiter, was er gerade tat. Der Tab leuchtet in der Akzentfarbe auf, während der Block darüber schwebt. Auch dafür gibt es eine Aktion, block.to-tab:2, sodass sie auf eine Taste gelegt werden kann und ein Test ohne Maus sie auslösen kann.
Größen werden gemerkt, und es gibt eine Untergrenze
Pro Block, und kein Block darf so schmal werden, dass er unbenutzbar wird. Ein Panel bei 200 Punkten ist ein Panel, das niemand mehr nutzen kann.
Nichts von dir geht stillschweigend verloren
Etwas Laufendes zu schließen fragt zuerst nach, namentlich, denn jemandes Arbeit einmal zu verlieren kostet mehr Vertrauen, als eine ganze Funktion einbringt. Aus demselben Grund wird der Projektordner vor jedem Zug eines Agenten als Snapshot gesichert, mit einem Druck zum Zurückholen; ein Schlüssel, der in einen Agenten eingefügt wird, wird angehalten, bevor der Agent ihn sieht; und ein Zaun, den man einschalten kann, verweigert Schreib- und Löschzugriffe eines Agenten außerhalb des Projekts.
Sitzungen kehren standardmäßig zurück
Tabs, Blöcke und der Arbeitsordner jedes Blocks kehren nach einem Neustart zurück, und das ist standardmäßig eingeschaltet; ein Schalter im Abschnitt Allgemein schaltet es aus. Eine Sitzung, die von einem anderen Rechner ankommt, öffnet, was sie kann, und sagt, was sie nicht konnte, statt Blöcke stillschweigend fallen zu lassen.
Der Einstellungsordner, Datei für Datei
Alles in ~/.config/vobuda ist lesbares JSON und wird überwacht, während das Programm läuft. Datei speichern, und das Fenster zeichnet sich neu.
| Datei | Was sie enthält |
|---|---|
| settings.json | Theme, Aussehen, Terminal, Shell, Fenster, Signale: jede Einstellung der zehn Abschnitte |
| themes/*.json | Terminal- und Fensterfarben. 25 Paletten sind enthalten, zwei davon für Farbsehschwäche entwickelt |
| looks/*.json | Die Form des Fensters: Ecken, Schatten, Panelfarben, Transparenz. 29 sind enthalten |
| skins/*.json | Welche Monitor-Panels gezeichnet werden, und wie |
| buttons.json | Das Dock: Buttons, Reihenfolge, Seite, Form und eine Farbe für die wenigen, die es wert sind, markiert zu werden |
| agents.json | Wie ein Agent erkannt wird und was ihm angeboten wird |
| keys.json | Jedes Tastenkürzel. Das native macOS-Menü wird aus derselben Datei gebaut |
| workspaces/*.json | Projekte: je ein Fenster mit eigenen Tabs, Ordner, Theme und Dock |
Eingebaute Themes stecken im Binary, und der Ordner überschreibt sie, sodass ein Update neue Farben bringt, ohne irgendetwas zu überschreiben, das du bearbeitet hast. Der gesamte Ordner sichert sich als ein einziges Archiv und lässt sich auf einem anderen Mac wiederherstellen, und auf einem Mac liegt eine Kopie in iCloud Drive, standardmäßig eingeschaltet, mit einem Schalter zum Ausschalten.
Ein Systemmonitor, angeordnet durch eine Datei
Zwölf Arten von Panels, und welche davon du siehst, ist ein Skin und kein einmal fest entworfener Bildschirm.
-
Die Zahlen sind ehrlich über sich selbst
Ein Wert, den das System schätzt statt misst, wird mit einer Tilde gezeichnet, und fehlende Hardware ergibt einen fehlenden Wert statt einer Null. Ein Rechner ohne dedizierte GPU bekommt kein GPU-Panel, das null Prozent anzeigt.
-
Beide Adressen, mit je einem Kopieren-Button
Das Adress-Panel nennt zuerst die Adresse, die das Internet sieht, und darunter die, die dieser Rechner in seinem eigenen Netzwerk hat. Es fragt nur, solange das Panel sichtbar ist, etwa alle zehn Minuten, oder alle dreißig Sekunden, solange noch keine Adresse bekannt ist, und die Anfrage enthält nichts über den Rechner.
-
Per Ziehen neu geordnet, wie alles andere
Die Panels des Monitors, die Buttons des Docks und die Elemente der Agent-Leiste werden alle mit derselben Geste gegriffen und dorthin gelegt, wo sie hingehören. Eine Einstellungszeile wird am Griff links gefasst, nicht irgendwo in der Zeile, sodass ein Ziehen, das in einem Textfeld beginnt, dich nicht daran hindert, das Wort auszuwählen, das du eigentlich ändern wolltest.
Eine Datei öffnet sich neben der Shell
Das, wofür ein Terminal einen sonst woanders hinschickt: Ein Pfad taucht in der Ausgabe auf, zwei Zeilen müssen geändert werden, und bisher hieß das, zu einem Editor zu wechseln und mit verlorenem Shell-Kontext zurückzukommen.
-
Speichern ist bewusst
Nichts wird geschrieben, bis Cmd+S gedrückt wird. Ein Editor, der beim Tippen schreibt, ist in einer Notiz-App eine feine Sache und neben einer laufenden Shell eine schlechte. Es ist eine Aktion statt eines Tastendrucks, was ihr auch einen Menüpunkt, ein Tastenkürzel und einen Eintrag in der Kommandozeile gibt, wie allem hier.
-
Die Verweigerungen zählen genauso viel wie das Schreiben
Eine Datei, die sich seit dem Öffnen auf der Festplatte geändert hat, wird nicht überschrieben. Eine Binärdatei wird nicht als verstümmelter Text angezeigt. Ein Ordner wird gar nicht erst geöffnet. Ungespeicherte Änderungen tragen eine sichtbare Markierung, und das Schließen einer bearbeiteten Datei fragt nach.
-
Eine Datei finden
Das Dateien-Panel sucht nach Namen unterhalb des Ordners, in dem du dich gerade befindest, und jedes Ergebnis nennt die zwei Ordner, in denen es liegt, denn ein Name allein kann zwei index.ts nicht unterscheiden. Es überspringt node_modules, .git, target und Ähnliches, hält bei acht Ebenen oder zweihundert Ergebnissen an und tut unter zwei Buchstaben gar nichts.
Einstellungen, als Bildschirm und als Dateien
Zehn Abschnitte, von Allgemein bis Daten und Datenschutz, eine Suche über jede Einstellung, und jede einzelne davon ist eine Zeile in einer Datei, die du auch von Hand bearbeiten kannst.
-
Die Einstellungen kommen zum Block
Rechtsklick auf ein Panel bedeutet dieses Ding hier, ändere es. Deshalb öffnet die Wahl einer Einstellungszeile im eigenen Menü eines Blocks diesen Abschnitt über dem Fenster, an der Ecke des Menüs, statt dich zum Einstellungsbildschirm zu führen. Es ist eine Aktion wie alles andere: settings.here:themes, settings.here:monitor.
-
Ein Ton, den man beim Auswählen hört
Das Wählen eines Signaltons oder der Terminal-Glocke spielt ihn ab. Einen Ton aus einer Liste von Namen zu wählen, die man nicht hören kann, heißt nur einen Namen zu wählen.
-
Nichts verlangt einen Neustart
Der Einstellungsordner wird überwacht, einschließlich der beiden Dinge, die dem Kern gehören: die macOS-Menüleiste, gebaut aus deiner Tastenkürzel-Datei, und die globale Taste des Ausklappfensters, wobei die alte Taste freigegeben wird, bevor die neue registriert wird, damit nicht zwei gleichzeitig antworten können. Eine Prüfung liest jeden Hinweis im Einstellungsbildschirm und schlägt bei dem Wort Neustart fehl.
Sprechen und sich vorlesen lassen
Beides nutzt die systemeigene Sprachfunktion, auf deinem Rechner. Das Audio verlässt den Computer nie.
Diktieren
Cmd+Shift+V tippt, was du sagst, in den Block, an dem du gerade arbeitest, und die Leiste nennt in zwei Buchstaben, in welcher Sprache gerade zugehört wird. Ein diktierter Satz wird getippt und niemals ausgeführt: Spracherkennung verhört sich, und ein missverstandener Befehl, der sich selbst ausführt, ist ein Programm, das Dinge löscht, weil ein Radio lief. Neben einem Agenten, wo ein Satz eine Nachricht statt eines Befehls ist, kann er sich von selbst abschicken, und das ist eine Einstellung, die genau in dem Moment gelesen wird, in dem der Satz endet.
Die Antwort vorlesen lassen
Cmd+Shift+R liest die letzte Antwort des Agenten laut vor; erneutes Drücken stoppt sie. Vorgelesen wird die Antwort, nicht der Bildschirm. Ein Aufzählungspunkt am Anfang, Sternchen um ein hervorgehobenes Wort, Backticks um einen Namen, eine Kastenlinie, ein voller Pfad, wo der Dateiname reichen würde: Das entfällt, und die Wörter darin bleiben. Das Vorlesen wird durch Formen begrenzt statt durch Wörter, unten durch die Eingabezeile des Agenten und oben durch dessen Logo, denn das Umfeld eines Agenten ändert sich mit jeder neuen Version von ihm.
Die kleinen Dinge, die darüber entscheiden, ob man es behält
Der Rechtsklick gehört uns
Überall im Fenster: das eigene Menü eines Blocks innerhalb eines Blocks, das äußere Menü des Fensters, die Tab-Leiste, das Dock, der Zwischenraum zwischen Kacheln. Jede Zeile ist eine Aktion, und das Menü selbst hat eine eigene Aktion, block.menu, sodass eine Geste, die nur eine Hand erreichen kann, keine Geste ist, die nichts prüfen kann. Der einzige Ort, der das Systemmenü behält, ist ein Textfeld, wo es Ausschneiden, Kopieren, Einfügen und das Wörterbuch anbietet.
Einen Ordner von überall öffnen
vobuda://open?path=/some/path öffnet einen Tab in diesem Ordner, aus einer Finder-Aktion, einem Skript oder einer anderen App heraus. macOS hat keine systemweite Standard-Terminal-Einstellung, also ist das die ehrliche Version dieser Funktion statt eines Versprechens, das nicht gehalten werden kann.
Innerhalb eines Blocks suchen
Cmd+F. Das Feld gehört zu dem Block, den es durchsucht, und beim Schließen bleibt die Ansicht dort, wo der Treffer war.
Den Block mitnehmen
Cmd+Shift+X kopiert den Text eines Blocks, angefragt beim Terminal selbst, was auch dafür sorgt, dass es bei eingeschaltetem GPU-Rendering funktioniert, wo es keinen Text auf der Seite gibt, den man auswählen könnte. Ein Bild des Blocks sind zwei Aktionen in Cmd+K, Block snapshot to clipboard und Block snapshot to a file.
Update-Prüfungen, die keine Hausaufgabe sind
Der Kern prüft einmal täglich, in einem eigenen Thread, und was du siehst, ist ein Streifen oberhalb des Layouts statt über ihm, denn ein Hinweis, der ein Terminal verdeckt, ist einer, den man lernt, ungelesen zu schließen. Nichts installiert sich, bis du drückst: Für einen Agenten ist das Update ein Befehl, der in den aktiven Block getippt wird, wo seine Ausgabe sichtbar ist, und für Vobuda auf einem Mac installiert der Button die neue Version im Hintergrund und bietet dann einen Neustart an, der nach zehn Sekunden von selbst erfolgt, wenn nichts läuft.
Vierzig Sprachen, und in jeder eine Anleitung
Einschließlich der macOS-Menüleiste, die das System aus dem Kern heraus baut. Arabisch und Hebräisch spiegeln das gesamte Fenster, außer dem Terminal selbst, wo Spiegelung Ausgabe und Pfade unlesbar machen würde. Ein Übersetzungsschlüssel ist die englische Zeichenkette selbst, sodass eine nicht übersetzte Zeichenkette auf lesbares Englisch zurückfällt statt auf ein Leerzeichen oder einen Bezeichner.
Probiere die Teile aus, über die du gerade gelesen hast
Nach zwei kurzen Fragen beim ersten Start öffnet es sich mit einem Terminal-Block und sonst nichts. Alles oben ist etwas, das du einschaltest, wenn du es willst.
curl -fsSL https://vobuda.com/install.sh | sh