Jak to działa, część po części
Jedna zasada spaja cały program: stan okna żyje w pamięci, a konfiguracja żyje w plikach. Wszystko poniżej wynika właśnie z tego.
Zasada, na której wszystko się opiera
Okno zawiera karty. Karta zawiera bloki. Blok to terminal, edytowany plik, panel plików, strona internetowa, obraz, PDF, strona Markdown, diff, monitor systemu, ekran ustawień albo panel dodatku. Dzielą się w dowolnym kierunku, z zagnieżdżaniem, przeciąganiem, zmianą rozmiaru i zamykaniem według jednego zestawu reguł, a nie osobnego zestawu dla każdej nowej funkcji. Wszystko, co jest zbyt duże, by należeć do wszystkich, to dodatek z własnego katalogu vobudy, na razie Design i Director, instalowany i usuwany w całości jednym naciśnięciem.
Nic z tego układu nie jest zapisane w bazie danych, bo żadnej bazy danych nie ma. To, co robi okno, żyje w pamięci; to, co postanowiłeś, żyje w plikach. Dlatego przycisk, klawisz, pasek menu, Cmd+K i wiersz poleceń wywołują tę samą akcję po nazwie, i dlatego zmiana zachowania niemal zawsze oznacza edycję JSON.
Dlatego też najlepszy emulator terminala na Maca, do tego rodzaju pracy, dla której powstał, to taki, który można sprawdzić od środka. Jeśli istnieje ustawienie, istnieje linia w pliku, która je przechowuje. Jeśli istnieje akcja, istnieje nazwa, po której można ją wywołać.
Pięć dróg do akcji, i to ta sama akcja
Przy tylu akcjach większość programu jest w praktyce ukryta. Cmd+K to sposób, który odpowiada na pytanie „co to potrafi”, a nie „zrób to”.
-
Uczy skrótów, zamiast je zastępować
Każda linia pokazuje swój własny skrót. Osoba, która sięga po listę dwa razy po tę samą akcję, przy trzecim razie zna już skrót.
-
To nie jest piąty słownik
Każda linia uruchamia akcję po nazwie, dokładnie tak jak pozostałe cztery sposoby. Test porównuje tabelę, z której korzysta, z listą rdzenia określającą, co może zostać przypisane do klawisza, w obu kierunkach: akcja, która istnieje, a nie jest tam oferowana, powoduje niepowodzenie builda.
-
Wiersz poleceń to ten sam zestaw
vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, wpisywane w dowolnym bloku vobuda, a
vobuda mcpoferuje agentowi te same komendy jako narzędzia MCP. To nie boczne drzwi dla skryptów: testy interfejsu prowadzą przez nie cały program, dlatego można mu ufać, i dlatego agent może przestawić twoje okno, a ty możesz dokładnie odczytać, co zrobił.
Bloki i co obiecują
Blok zmienia kartę z uruchomioną powłoką
Przeciągnij blok za nagłówek na kartę na pasku, a wyląduje tam: to samo id, ta sama powłoka, ten sam folder, nadal uruchomione to, co było uruchomione. Karta podświetla się akcentem, gdy blok się nad nią znajduje. Jest do tego również akcja, block.to-tab:2, więc można ją przypisać do klawisza, a test bez myszy może ją wywołać.
Rozmiary są zapamiętywane, i jest dolna granica
Dla każdego bloku z osobna, i żaden blok nie może zwęzić się tak bardzo, by przestał być użyteczny. Panel o szerokości 200 punktów to panel, którego nikt nie może użyć.
Nic twojego nie znika po cichu
Zamknięcie czegoś działającego najpierw pyta, po nazwie, bo utrata czyjejś pracy choć raz kosztuje więcej zaufania, niż zyskuje cała funkcja. Z tego samego powodu folder projektu jest zapisywany jako migawka przed każdą turą agenta, z jednym naciśnięciem, by go przywrócić; klucz wklejony agentowi jest zatrzymywany, zanim agent go zobaczy; a ogrodzenie, które możesz włączyć, odrzuca zapisy i usunięcia agenta poza projektem.
Sesje wracają domyślnie
Karty, bloki i folder roboczy każdego bloku wracają po ponownym uruchomieniu, a domyślnie ta opcja jest włączona; jeden przełącznik w sekcji Ogólne ją wyłącza. Sesja, która przyszła z innej maszyny, otwiera to, co może, i mówi, czego nie mogła, zamiast po cichu pomijać bloki.
Folder ustawień, plik po pliku
Wszystko w ~/.config/vobuda to czytelny JSON, obserwowany podczas działania programu. Zapisz plik, a okno się przerysuje.
| Plik | Co zawiera |
|---|---|
| settings.json | Motyw, wygląd, terminal, powłoka, okno, sygnały: każde ustawienie z dziesięciu sekcji |
| themes/*.json | Kolory terminala i okna. Dostarczane jest 25 palet, dwie zaprojektowane dla osób z zaburzeniami widzenia barw |
| looks/*.json | Kształt okna: narożniki, cienie, kolory paneli, przezroczystość. Dostarczanych jest 29 |
| skins/*.json | Które panele monitora są rysowane i jak |
| buttons.json | Dok: przyciski, kolejność, strona, kształt oraz kolor dla tych nielicznych, które warto wyróżnić |
| agents.json | Jak rozpoznawany jest agent i co jest mu oferowane |
| keys.json | Każdy skrót. Natywne menu macOS jest budowane z tego samego pliku |
| workspaces/*.json | Projekty: każdy jako okno z własnymi kartami, folderem, motywem i dokiem |
Wbudowane motywy znajdują się wewnątrz pliku binarnego, a folder je nadpisuje, więc aktualizacja przynosi nowe kolory, nie nadpisując niczego, co edytowałeś. Cały folder zapisuje się jako jedno archiwum i przywraca na innym Macu, a na Macu jego kopia leży w iCloud Drive, domyślnie włączona, z jednym przełącznikiem, który ją wyłącza.
Monitor systemu, układany przez plik
Dwanaście rodzajów paneli, a to, które z nich widzisz, to skórka, a nie ekran zaprojektowany raz na zawsze przez kogoś.
-
Liczby są wobec siebie uczciwe
Wartość, którą system szacuje, a nie mierzy, jest rysowana z tyldą, a brakujący sprzęt daje brakującą wartość, a nie zero. Maszyna bez dedykowanego GPU nie dostaje panelu GPU pokazującego zero procent.
-
Oba adresy, każdy z przyciskiem kopiowania
Panel adresów pokazuje najpierw adres widziany od strony internetu, a poniżej ten, który maszyna ma we własnej sieci. Pyta tylko wtedy, gdy panel jest widoczny na ekranie, mniej więcej raz na dziesięć minut, albo co trzydzieści sekund, dopóki nie jest znany żaden adres, a zapytanie nie niesie żadnych informacji o maszynie.
-
Zmiana kolejności przez przeciąganie, jak wszystko inne
Panele monitora, przyciski doku i elementy paska agenta są chwytane i przenoszone tym samym gestem. Wiersz ustawień chwyta się za uchwyt po lewej stronie, a nie w dowolnym miejscu wiersza, więc przeciąganie zaczęte na polu tekstowym nie przeszkadza w zaznaczeniu słowa, które chciałeś zmienić.
Plik otwiera się obok powłoki
Coś, po co terminal zwykle odsyła cię gdzie indziej: w wyniku pojawia się ścieżka, trzeba zmienić dwie linie, a do tej pory oznaczało to wyjście do edytora i powrót z utraconym kontekstem powłoki.
-
Zapis jest świadomą decyzją
Nic nie zostaje zapisane, dopóki nie naciśniesz Cmd+S. Edytor, który zapisuje w trakcie pisania, sprawdza się w aplikacji do notatek, a źle w sąsiedztwie działającej powłoki. To akcja, a nie samo naciśnięcie klawisza, co daje jej też pozycję w menu, skrót i wpis w wierszu poleceń, tak jak wszystko inne tutaj.
-
Odmowy liczą się tak samo jak zapis
Plik zmieniony na dysku od momentu otwarcia nie zostaje nadpisany. Plik binarny nie jest pokazywany jako zniekształcony tekst. Folder w ogóle się nie otwiera. Niezapisane zmiany noszą widoczny znacznik, a zamknięcie edytowanego pliku wymaga potwierdzenia.
-
Znajdowanie pliku
Panel plików szuka po nazwie poniżej folderu, w którym się znajdujesz, a każdy wynik pokazuje, w których dwóch folderach się znajduje, bo sama nazwa nie odróżni dwóch plików index.ts. Pomija node_modules, .git, target i im podobne, zatrzymuje się na ósmym poziomie albo przy dwustu wynikach i nie robi nic przy mniej niż dwóch literach.
Ustawienia, jako ekran i jako pliki
Dziesięć sekcji, od Ogólnych do Danych i prywatności, wyszukiwanie po każdym ustawieniu, a każde z nich to linia w pliku, którą można też edytować ręcznie.
-
Ustawienia przychodzą do bloku
Kliknięcie panelu prawym przyciskiem oznacza „tę rzecz tutaj, zmień ją”. Dlatego wybranie linii ustawień z menu własnego bloku otwiera tę sekcję nad oknem, w rogu menu, zamiast prowadzić cię do ekranu ustawień. To akcja jak wszystko inne: settings.here:themes, settings.here:monitor.
-
Dźwięk, który słyszysz w chwili wyboru
Wybranie dźwięku sygnału albo dzwonka terminala od razu go odtwarza. Wybieranie dźwięku z listy nazw, których nie słyszysz, to wybieranie nazwy.
-
Nic nie wymaga restartu
Folder ustawień jest obserwowany, w tym te dwie rzeczy, którymi zarządza rdzeń: pasek menu macOS budowany z twojego pliku skrótów oraz globalny klawisz okna rozwijanego, przy czym stary klawisz jest zwalniany, zanim zarejestruje się nowy, więc dwa nie mogą odpowiadać naraz. Test odczytuje każdą podpowiedź na ekranie ustawień i zawodzi przy słowie restart.
Mówienie i słuchanie odpowiedzi
Obie funkcje korzystają z mowy systemowej, na twojej maszynie. Dźwięk nigdy nie opuszcza komputera.
Dyktowanie
Cmd+Shift+V wpisuje to, co mówisz, do bloku, w którym pracujesz, a pasek pokazuje, w jakim języku nasłuchuje, w dwóch literach. Podyktowana fraza jest wpisywana, a nigdy uruchamiana: rozpoznawanie mowy się myli, a błędnie rozpoznane polecenie, które uruchamia się samo, to program, który usuwa rzeczy, bo grało radio. Obok agenta, gdzie fraza jest wiadomością, a nie poleceniem, może wysłać się sama, a to ustawienie jest odczytywane w chwili, gdy fraza się kończy.
Odczytywanie odpowiedzi na głos
Cmd+Shift+R odczytuje na głos ostatnią odpowiedź agenta; ponowne naciśnięcie zatrzymuje odczyt. Odczytywana jest odpowiedź, nie ekran. Wypunktowanie na początku, gwiazdki wokół wyróżnionego słowa, apostrofy odwrotne wokół nazwy, linia ramki, pełna ścieżka tam, gdzie wystarczyłaby nazwa pliku, to wszystko znika, a słowa w środku zostają. Odczyt jest ograniczony kształtami, a nie słowami: od dołu wierszem wejściowym agenta, od góry jego logo, bo elementy otoczenia agenta zmieniają się z każdą jego wersją.
Drobiazgi, które decydują, czy zostaniesz przy tym programie
Prawy przycisk należy do nas
Wszędzie w oknie: własne menu bloku wewnątrz bloku, zewnętrzne menu okna, pasek kart, dok, przestrzeń między kafelkami. Każda linia to akcja, a samo menu ma własną akcję, block.menu, więc gest dostępny tylko dla ręki nie jest gestem, którego nic nie może sprawdzić. Jedynym miejscem, które zachowuje menu systemowe, jest pole tekstowe, gdzie oferuje wytnij, kopiuj, wklej i słownik.
Otwórz folder z dowolnego miejsca
vobuda://open?path=/some/path otwiera kartę w tym folderze, z akcji Findera, skryptu albo innej aplikacji. macOS nie ma systemowego ustawienia domyślnego terminala, więc to jest uczciwa wersja tej funkcji, a nie obietnica, której nie da się dotrzymać.
Wyszukiwanie wewnątrz bloku
Cmd+F. Pole należy do bloku, w którym szuka, a jego zamknięcie zostawia widok tam, gdzie było trafienie.
Zabierz blok ze sobą
Cmd+Shift+X kopiuje tekst bloku, pytając o niego sam terminal, co sprawia też, że działa to przy włączonym renderowaniu GPU, gdzie na stronie nie ma tekstu do zaznaczenia. Obraz bloku to dwie akcje w Cmd+K, Migawka bloku do schowka i Migawka bloku do pliku.
Sprawdzanie aktualizacji, które nie jest zadaniem domowym
Rdzeń sprawdza raz dziennie, we własnym wątku, a to, co widzisz, to pasek nad układem, a nie na nim, bo powiadomienie zasłaniające terminal to takie, które ludzie uczą się zamykać bez czytania. Nic nie instaluje się, dopóki nie naciśniesz: dla agenta aktualizacja to polecenie wpisane do aktywnego bloku, gdzie widać jego wynik, a dla vobudy na Macu przycisk instaluje nową wersję w tle, a potem proponuje ponowne uruchomienie, które następuje samo po dziesięciu sekundach, gdy nic nie działa.
Czterdzieści języków, i przewodnik w każdym z nich
Łącznie z paskiem menu macOS, który system buduje w rdzeniu. Arabski i hebrajski odbijają lustrzanie całe okno oprócz samego terminala, gdzie odbicie sprawiłoby, że wynik i ścieżki byłyby nieczytelne. Kluczem tłumaczenia jest angielski ciąg znaków, więc nieprzetłumaczony ciąg wraca do czytelnego angielskiego, a nie do pustego pola czy identyfikatora.
Wypróbuj elementy, o których właśnie przeczytałeś
Po dwóch krótkich pytaniach przy pierwszym uruchomieniu program otwiera się z jednym blokiem terminala i niczym więcej. Wszystko powyżej włączasz wtedy, gdy tego chcesz.
curl -fsSL https://vobuda.com/install.sh | sh