Jak to funguje, část po části
Celý program drží pohromadě jedno pravidlo: stav okna žije v paměti a nastavení žije v souborech. Všechno níže z toho vychází.
Pravidlo, na kterém stojí všechno
Okno obsahuje karty. Karta obsahuje bloky. Blok je terminál, upravovaný soubor, panel se soubory, webová stránka, obrázek, PDF, stránka Markdown, diff, systémový monitor, obrazovka nastavení nebo panel doplňku. Dělí se libovolným směrem s vnořováním, přetahují se, mění velikost a zavírají podle jedné sady pravidel, ne podle nové sady pro každou novou funkci. Cokoli, co je příliš velké, aby to patřilo všem, je doplněk z vlastního katalogu vobuda, zatím Design a Director, instalovaný a odebíraný celý jedním stiskem.
Nic z tohoto uspořádání se neukládá do databáze, protože žádná databáze neexistuje. To, co okno právě dělá, žije v paměti; to, co jste si nastavili, žije v souborech. Proto tlačítko, klávesa, panel nabídky, Cmd+K i příkazová řádka volají stejnou akci podle jejího jména, a proto změnit chování téměř vždy znamená upravit JSON.
Proto je pro tento typ práce nejlepším emulátorem terminálu pro Mac ten, který si můžete prohlédnout zevnitř. Pokud nastavení existuje, existuje i řádek v souboru, který ho drží. Pokud existuje akce, existuje i jméno, kterým ji můžete zavolat.
Pět cest k akci, a je to pořád tatáž akce
Při tolika akcích je většina programu v praxi skrytá. Cmd+K je cesta, která odpovídá na otázku „co to umí“, ne na příkaz „udělej tohle“.
-
Učí klávesy, místo aby je nahrazoval
Každý řádek zobrazuje svou vlastní zkratku. Kdo pro stejnou akci sáhne po seznamu dvakrát, potřetí už zná klávesu.
-
Není to pátý slovník
Každý řádek spouští akci podle jména, přesně jako ostatní čtyři cesty. Kontrola porovnává tabulku, ze které čerpá, se seznamem jádra toho, na co lze navázat klávesu, a to oběma směry: pokud akce existuje a v seznamu chybí, sestavení selže.
-
Příkazová řádka je stejná množina
vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, psané v kterémkoli bloku vobuda, a
vobuda mcpnabízí agentovi tytéž příkazy jako nástroje MCP. Není to boční dvířka pro skripty: testy rozhraní přes ni řídí celý program, a proto se jí dá věřit a proto může agent přeskládat vaše okno a vy si přesně přečtete, co udělal.
Bloky a co slibují
Blok mění kartu, aniž by se zastavil shell
Přetáhněte blok za záhlaví na kartu v liště a přistane tam: stejné id, stejný shell, stejná složka, pořád běží to, co běželo. Karta se při přetažení bloku nad ní rozsvítí zvýrazňovací barvou. Existuje pro to i akce, block.to-tab:2, takže ji lze přiřadit klávese a stisknout ji i bez myši v kontrole.
Velikosti se pamatují a mají spodní hranici
Pro každý blok zvlášť, a žádný blok nesmí zúžit natolik, že přestane být použitelný. Panel o šířce 200 bodů je panel, který nikdo nevyužije.
Nic vašeho nezmizí potichu
Zavření něčeho běžícího se nejdřív zeptá, podle jména, protože jednou ztracená práce stojí víc důvěry, než kolik jí získá celá nová funkce. Ze stejného důvodu se složka projektu před každým tahem agenta uloží jako snímek, s jedním stiskem, který ji vrátí; klíč vložený agentovi se zastaví dřív, než ho agent uvidí; a plot, který můžete zapnout, odmítá zápisy a mazání agenta mimo projekt.
Relace se vracejí ve výchozím stavu
Karty, bloky a pracovní složka každého bloku se po restartu obnoví a ve výchozím stavu je to zapnuté; jeden přepínač v sekci Obecné to vypne. Relace, která přišla z jiného počítače, otevře, co může, a řekne, co se nepovedlo, místo aby bloky potichu vynechala.
Složka nastavení, soubor po souboru
Všechno v ~/.config/vobuda je čitelný JSON, který se sleduje za běhu programu. Uložíte soubor a okno se překreslí.
| Soubor | Co obsahuje |
|---|---|
| settings.json | Motiv, vzhled, terminál, shell, okno, signály: každé nastavení z deseti sekcí |
| themes/*.json | Barvy terminálu a okna. Dodává se 25 palet, dvě navržené pro barvoslepost |
| looks/*.json | Tvar okna: rohy, stíny, barvy panelů, průhlednost. Dodává se 29 |
| skins/*.json | Které panely monitoru se vykreslují a jak |
| buttons.json | Dok: tlačítka, pořadí, strana, tvar a barva pro ta, která stojí za zvýraznění |
| agents.json | Jak se agent rozpozná a co se mu nabízí |
| keys.json | Všechny klávesové zkratky. Ze stejného souboru se sestavuje i nativní nabídka macOS |
| workspaces/*.json | Projekty: každý jako okno s vlastními kartami, složkou, motivem a dokem |
Vestavěné motivy žijí přímo v binárce a složka je přebíjí, takže aktualizace přinese nové barvy, aniž by přepsala cokoliv, co jste upravili. Celá složka se uloží jako jeden archiv a obnoví na jiném Macu a na Macu leží kopie v iCloud Drive, ve výchozím stavu zapnutá, s jedním přepínačem, který ji vypne.
Systémový monitor uspořádaný souborem
Dvanáct druhů panelů, a to, které z nich vidíte, určuje skin, ne obrazovka, kterou někdo jednou navrhl.
-
Čísla jsou k sobě upřímná
Hodnota, kterou systém spíš odhaduje než měří, se kreslí s vlnovkou, a chybějící hardware dá chybějící hodnotu, ne nulu. Počítač bez samostatné GPU nedostane panel GPU ukazující nula procent.
-
Obě adresy, každá s vlastním tlačítkem pro kopírování
Panel adres uvádí adresu, kterou jako první vidí internet, a pod ní adresu, kterou má tento počítač ve své vlastní síti. Ptá se, jen dokud je panel na obrazovce, zhruba jednou za deset minut, nebo každých třicet sekund, dokud žádná adresa není známa, a požadavek s sebou nenese žádné informace o počítači.
-
Přeřazuje se přetažením, stejně jako všechno ostatní
Panely monitoru, tlačítka doku i části lišty agenta se zvedají a přesouvají stejným gestem. Řádek nastavení se zvedá za úchyt vlevo, ne kdekoliv na řádku, takže přetažení začaté nad textovým polem vám nezabrání vybrat slovo, které jste chtěli změnit.
Soubor se otevře vedle shellu
Věc, kvůli které vás terminál obvykle posílá jinam: ve výstupu se objeví cesta, potřeba změnit dva řádky, a dosud to znamenalo odejít do editoru a vrátit se se ztraceným kontextem shellu.
-
Ukládání je záměrné
Nic se nezapíše, dokud nestisknete Cmd+S. Editor, který zapisuje za psaní, je v poznámkové aplikaci v pořádku, ale vedle běžícího shellu je to špatný nápad. Je to akce, ne jen stisk klávesy, a proto má i položku v nabídce, zkratku a záznam v příkazové řádce jako všechno ostatní tady.
-
Odmítnutí jsou stejně důležitá jako zápis
Soubor změněný na disku od otevření se nepřepíše. Binární soubor se nezobrazí jako zpřeházený text. Složka se vůbec neotevře. Neuložené změny nesou viditelné označení a zavření upraveného souboru se zeptá.
-
Hledání souboru
Panel se soubory hledá podle jména ve složkách pod tou, ve které stojíte, a u každého výsledku uvádí, ve kterých dvou složkách leží, protože samotné jméno nerozliší dva soubory index.ts. Přeskakuje node_modules, .git, target a podobné, zastaví se po osmi úrovních nebo dvou stech výsledcích a při méně než dvou písmenech nedělá vůbec nic.
Nastavení jako obrazovka i jako soubory
Deset sekcí, od Obecného po Data a soukromí, vyhledávání přes každé nastavení, a každé z nich je řádek v souboru, který můžete upravit i ručně.
-
Nastavení přijdou za blokem
Kliknutí pravým tlačítkem na panel znamená „tuhle věc tady, změň ji“. Takže výběr řádku nastavení ve vlastní nabídce bloku otevře danou sekci přímo nad oknem, v rohu nabídky, místo aby vás zavedl na obrazovku nastavení. Je to akce jako všechno ostatní: settings.here:themes, settings.here:monitor.
-
Zvuk, který uslyšíte hned při výběru
Výběr zvuku signálu nebo zvonku terminálu ho rovnou přehraje. Vybírat zvuk ze seznamu jmen, která neslyšíte, znamená vybírat jméno.
-
Nic nežádá restart
Složka s nastavením se sleduje, včetně dvou věcí, které patří jádru: nabídky macOS sestavené z vašeho souboru zkratek a globální klávesy rozbalovacího okna, kde se stará klávesa uvolní dřív, než se zaregistruje nová, aby na ni neodpovídaly dvě najednou. Kontrola čte každou nápovědu na obrazovce nastavení a selže na slově restart.
Mluvení a poslouchání
Obojí využívá vlastní řeč systému, přímo ve vašem počítači. Zvuk počítač nikdy neopustí.
Diktování
Cmd+Shift+V napíše to, co říkáte, do bloku, ve kterém pracujete, a lišta dvěma písmeny ukazuje, v jakém jazyce naslouchá. Nadiktovaná fráze se napíše, ale nikdy sama nespustí: rozpoznávání se přeslechne, a přeslechnutý příkaz, který se spustí sám, je program, co maže věci, protože hrálo rádio. U agenta, kde je fráze zpráva, ne příkaz, se může odeslat sama, a to je nastavení, které se čte ve chvíli, kdy fráze skončí.
Přečtení odpovědi nahlas
Cmd+Shift+R přečte nahlas poslední odpověď agenta; dalším stiskem se čtení zastaví. Čte se odpověď, ne obrazovka. Odrážka na začátku, hvězdičky kolem zvýrazněného slova, zpětné apostrofy kolem jména, ohraničení rámečkem, celá cesta tam, kde by stačil název souboru: tohle všechno zmizí a zůstanou jen slova uvnitř. Čtení je ohraničené tvary, ne slovy, zdola vstupním řádkem agenta a shora jeho logem, protože se rozhraní agenta mění s každým jeho vydáním.
Drobnosti, které rozhodnou, jestli si to necháte
Pravé tlačítko je naše
Všude v okně: vlastní nabídka bloku uvnitř bloku, vnější nabídka okna, lišta karet, dok, mezera mezi dlaždicemi. Každý řádek je akce a i samotná nabídka má vlastní akci, block.menu, takže gesto, na které dosáhne jen ruka, není gesto, které nejde ničím zkontrolovat. Jediné místo, kde zůstává systémová nabídka, je textové pole, kde nabízí vyjmutí, kopírování, vložení a slovník.
Otevřít složku odkudkoliv
vobuda://open?path=/some/path otevře kartu v dané složce, ať už z akce Finderu, ze skriptu nebo z jiné aplikace. macOS nemá žádné systémové nastavení výchozího terminálu, takže tohle je poctivá verze té funkce místo slibu, který nejde splnit.
Hledání uvnitř bloku
Cmd+F. Pole patří k bloku, ve kterém hledá, a po zavření zůstane zobrazení tam, kde byla shoda.
Vezměte si blok s sebou
Cmd+Shift+X zkopíruje text bloku, o který se vyžádá přímo terminál, díky čemuž to funguje i při zapnutém vykreslování na GPU, kde na stránce není žádný text k výběru. Obrázek bloku jsou dvě akce na Cmd+K, Snímek bloku do schránky a Snímek bloku do souboru.
Kontroly aktualizací, které nejsou úkolem navíc
Jádro kontroluje jednou denně, ve vlastním vlákně, a to, co vidíte, je lišta nad rozvržením, ne přes něj, protože upozornění, které zakrývá terminál, se lidé naučí zavírat nepřečtené. Nic se neinstaluje, dokud nestisknete: u agenta je aktualizace příkaz napsaný do aktivního bloku, kde je vidět jeho výstup, a u vobuda na Macu tlačítko nainstaluje novou verzi na pozadí a pak nabídne restart, který se sám provede po deseti sekundách, když nic neběží.
Čtyřicet jazyků, a v každém návod
Včetně nabídky macOS, kterou systém sestavuje přímo v jádru. Arabština a hebrejština zrcadlí celé okno kromě samotného terminálu, kde by zrcadlení znečitelnilo výstup a cesty. Klíčem překladu je anglický řetězec, takže nepřeložený řetězec spadne zpátky do čitelné angličtiny místo do prázdna nebo identifikátoru.
Vyzkoušejte to, o čem jste právě četli
Po dvou krátkých otázkách při prvním spuštění se otevře s jedním terminálovým blokem a ničím jiným. Všechno výše popsané zapnete, až to budete chtít.
curl -fsSL https://vobuda.com/install.sh | sh