Cum funcționează, parte cu parte
O singură regulă ține tot programul laolaltă: starea ferestrei trăiește în memorie, iar configurația trăiește în fișiere. Tot ce urmează decurge din asta.
Regula care stă la baza a tot
O fereastră ține file. O filă ține blocuri. Un bloc este un terminal, un fișier în editare, panoul de fișiere, o pagină web, o imagine, un PDF, o pagină Markdown, un diff, monitorul de sistem, ecranul de setări sau panoul unui plugin. Se împart în orice direcție, cu imbricare, se trag, se redimensionează și se închid după un singur set de reguli, nu unul nou pentru fiecare funcție. Tot ce este prea mare ca să aparțină tuturor este un plugin din catalogul propriu al lui vobuda, până acum Design și Director, instalat și scos întreg dintr-o singură apăsare.
Nimic din acest aranjament nu este stocat într-o bază de date, pentru că nu există nicio bază de date. Ce face fereastra trăiește în memorie; ce ai decis tu trăiește în fișiere. De aceea un buton, o tastă, bara de meniu, Cmd+K și linia de comandă cheamă toate aceeași acțiune după nume, și de aceea a-i schimba comportamentul înseamnă aproape mereu editarea unui JSON.
Tot de aceea, cel mai bun emulator de terminal pentru Mac, pentru genul de muncă pentru care e construit, este unul pe care îl poți inspecta. Dacă o setare există, există și o linie într-un fișier care o ține. Dacă o acțiune există, există un nume prin care o poți chema.
Cinci căi spre o acțiune, și e aceeași acțiune
Cu atâtea acțiuni, cea mai mare parte a unui program este în practică ascunsă. Cmd+K este calea care răspunde la „ce poate face” în loc de „fă asta”.
-
Învață tastele în loc să le înlocuiască
Fiecare linie își arată propria scurtătură. Cineva care apelează la listă de două ori pentru aceeași acțiune a învățat tasta până la a treia oară.
-
Nu este un al cincilea dicționar
Fiecare linie rulează o acțiune după nume, exact ca celelalte patru. Un test verifică tabelul din care se alimentează în raport cu lista din nucleu a acțiunilor de care poate fi legată o tastă, în ambele sensuri: o acțiune care există și nu este oferită acolo face buildul să eșueze.
-
Linia de comandă este același set
vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, tastate în orice bloc vobuda, iar
vobuda mcpoferă aceleași comenzi unui agent ca unelte MCP. Nu e o ușă din spate pentru scripturi: testele de interfață conduc întregul program prin ea, motiv pentru care i se poate acorda încredere și motiv pentru care un agent poate reorganiza fereastra ta, iar tu poți citi exact ce a făcut.
Blocurile, și ce promit ele
Un bloc schimbă fila cu shell-ul lui rulând în continuare
Tragi un bloc de antetul lui peste o filă din bandă și el aterizează acolo: același id, același shell, același folder, rulând în continuare orice rula. Fila se luminează în culoarea de accent cât timp blocul e deasupra ei. Există și o acțiune pentru asta, block.to-tab:2, ca să poată fi pusă pe o tastă și ca un test fără maus s-o poată apăsa.
Dimensiunile sunt reținute, și există o limită minimă
Pentru fiecare bloc, și niciun bloc nu poate deveni atât de îngust încât să nu mai fie utilizabil. Un panou de 200 de puncte este un panou pe care nimeni nu-l poate folosi.
Nimic de-al tău nu pleacă pe tăcute
Închiderea a ceva care rulează întreabă mai întâi, pe nume, pentru că pierderea o singură dată a muncii cuiva costă mai multă încredere decât câștigă o funcție întreagă. Din același motiv, dosarul proiectului este fotografiat înaintea fiecărei ture a unui agent, cu o apăsare pentru a-l pune la loc; o cheie lipită unui agent este oprită înainte ca agentul s-o vadă; iar un gard pe care îl poți porni refuză scrierile și ștergerile unui agent din afara proiectului.
Sesiunile revin implicit
Filele, blocurile și dosarul de lucru al fiecărui bloc revin după o repornire, și asta este activat implicit; un comutator din secțiunea General îl oprește. O sesiune sosită de pe altă mașină deschide ce poate și spune ce nu a putut, în loc să scape blocuri pe tăcute.
Folderul de setări, fișier cu fișier
Tot ce se află în ~/.config/vobuda este JSON lizibil, monitorizat cât timp programul rulează. Salvezi fișierul și fereastra se redesenează.
| Fișier | Ce conține |
|---|---|
| settings.json | Temă, aspect, terminal, shell, fereastră, semnale: fiecare setare a celor zece secțiuni |
| themes/*.json | Culorile terminalului și ale ferestrei. Vin 25 de palete, două concepute pentru deficiențe de vedere a culorilor |
| looks/*.json | Forma ferestrei: colțuri, umbre, culori de panou, transparență. Vin 29 |
| skins/*.json | Ce panouri ale monitorului sunt desenate, și cum |
| buttons.json | Dock-ul: butoane, ordine, latură, formă și o culoare pentru cele câteva demne de marcat |
| agents.json | Cum este recunoscut un agent și ce i se oferă |
| keys.json | Fiecare scurtătură. Meniul nativ macOS este construit din același fișier |
| workspaces/*.json | Proiecte: fiecare o fereastră cu propriile file, dosar, temă și dock |
Temele încorporate trăiesc în binar, iar dosarul are prioritate asupra lor, așa că o actualizare aduce culori noi fără să suprascrie nimic din ce ai editat. Tot dosarul se salvează ca o singură arhivă și se restaurează pe alt Mac, iar pe un Mac o copie trăiește în iCloud Drive, activată implicit, cu un comutator pentru a o opri.
Un monitor de sistem, aranjat printr-un fișier
Douăsprezece tipuri de panou, iar pe care dintre ele le vezi depinde de un skin, nu de un ecran proiectat o dată de cineva.
-
Cifrele sunt oneste despre ele însele
O valoare pe care sistemul o estimează, nu o măsoară, este desenată cu un tildă, iar hardware-ul absent dă o valoare absentă, nu un zero. O mașină fără GPU discret nu primește un panou de GPU care arată zero la sută.
-
Ambele adrese, fiecare cu propriul buton de copiere
Panoul de adrese numește mai întâi adresa pe care o vede internetul și dedesubt pe cea pe care o are această mașină în propria rețea. Întreabă doar cât panoul este pe ecran, cam o dată la zece minute, sau la treizeci de secunde cât nu se cunoaște încă nicio adresă, iar cererea nu poartă nimic despre mașină.
-
Reordonate prin tragere, ca orice altceva
Panourile monitorului, butoanele dock-ului și părțile barei agentului sunt toate ridicate și puse la locul lor cu același gest. O linie de setări este ridicată de mânerul din stânga ei, nu de oriunde de pe linie, astfel încât o tragere pornită dintr-un câmp de text nu te împiedică să selectezi cuvântul pe care voiai să-l schimbi.
Un fișier se deschide lângă shell
Lucrul pentru care un terminal te trimite de obicei în altă parte: apare o cale în output, două linii trebuie schimbate, și până acum asta însemna să pleci la un editor și să te întorci cu contextul shell-ului pierdut.
-
Salvarea este deliberată
Nimic nu este scris până la Cmd+S. Un editor care scrie pe măsură ce tastezi este un lucru bun într-o aplicație de notițe și unul rău lângă un shell care rulează. Este o acțiune, nu doar o apăsare de taste, ceea ce îi dă și un element de meniu, o scurtătură și o intrare în linia de comandă, ca tot restul de aici.
-
Refuzurile contează la fel de mult ca scrierea
Un fișier modificat pe disc de când a fost deschis nu este suprascris. Un fișier binar nu este afișat ca text ilizibil. Un folder nu este deschis deloc. Modificările nesalvate poartă un semn vizibil, iar închiderea unui fișier editat întreabă.
-
Găsirea unui fișier
Panoul de fișiere caută după nume sub folderul în care te afli, iar fiecare rezultat spune în care două foldere se află, pentru că un nume singur nu poate deosebi două fișiere index.ts. Sare peste node_modules, .git, target și altele asemenea, se oprește la opt niveluri sau două sute de rezultate, și nu face nimic sub două litere.
Setările, ca ecran și ca fișiere
Zece secțiuni, de la General la Date și confidențialitate, o căutare peste fiecare setare, și fiecare dintre ele este o linie într-un fișier pe care îl poți edita și de mână.
-
Setările vin la bloc
Clic dreapta pe un panou înseamnă „lucrul acesta de aici, schimbă-l”. Așa că alegerea unei linii de setări din meniul propriu al unui bloc deschide acea secțiune peste fereastră, la colțul meniului, în loc să te ducă la ecranul de setări. Este o acțiune ca toate celelalte: settings.here:themes, settings.here:monitor.
-
Un sunet pe care îl auzi când îl alegi
Alegerea unui sunet de semnal sau a clopoțelului terminalului îl redă. Să alegi un sunet dintr-o listă de nume pe care nu le poți auzi înseamnă să alegi un nume.
-
Nimic nu cere o repornire
Folderul de setări este monitorizat, inclusiv cele două lucruri deținute de nucleu: bara de meniu macOS construită din fișierul tău de scurtături, și tasta globală a ferestrei tip drop-down, unde tasta veche este eliberată înainte ca cea nouă să fie înregistrată, ca să nu răspundă două deodată. Un test citește fiecare indiciu din ecranul de setări și eșuează la cuvântul repornire.
Vorbitul și cititul cu voce tare
Amândouă folosesc sistemul de voce propriu, pe mașina ta. Audio-ul nu părăsește niciodată calculatorul.
Dictare
Cmd+Shift+V scrie ce spui în blocul în care lucrezi, iar banda arată în ce limbă ascultă, în două litere. O frază dictată este scrisă și nu rulată niciodată: recunoașterea mai greșește, iar o comandă auzită greșit care se execută singură este un program care șterge lucruri pentru că era un radio pornit prin apropiere. Lângă un agent, unde o frază este un mesaj și nu o comandă, poate fi trimisă de la sine, iar asta este o setare citită chiar în momentul în care fraza se termină.
Citirea răspunsului cu voce tare
Cmd+Shift+R citește cu voce tare ultimul răspuns al agentului; apăsat din nou, se oprește. Ceea ce se citește este răspunsul, nu ecranul. O liniuță în față, steluțe în jurul unui cuvânt accentuat, apostrofuri inverse în jurul unui nume, o linie de chenar, o cale completă acolo unde ar fi fost de-ajuns numele fișierului, toate acestea dispar, iar cuvintele dinăuntrul lor rămân. Citirea este delimitată de forme, nu de cuvinte, jos de linia de input a agentului și sus de logo-ul lui, pentru că elementele de interfață ale unui agent se schimbă cu fiecare versiune nouă a lui.
Micile lucruri care decid dacă îl păstrezi
Butonul din dreapta este al nostru
Peste tot în fereastră: meniul propriu al blocului dinăuntrul unui bloc, cel din afara ferestrei, banda de file, dock-ul, spațiul dintre plăci. Fiecare linie este o acțiune, iar meniul are propria lui acțiune, block.menu, astfel încât un gest la care ajunge doar o mână nu este un gest pe care nimic nu-l poate verifica. Singurul loc care păstrează meniul sistemului este un câmp de text, unde oferă decupare, copiere, lipire și dicționarul.
Deschide un folder de oriunde
vobuda://open?path=/some/path deschide o filă în acel folder, dintr-o acțiune din Finder, dintr-un script sau din altă aplicație. macOS nu are o setare la nivel de sistem pentru terminalul implicit, așa că asta este versiunea onestă a acelei funcții, nu o promisiune pe care n-o poate ține.
Caută în interiorul unui bloc
Cmd+F. Câmpul aparține blocului în care caută, iar închiderea lui lasă vizualizarea acolo unde a fost potrivirea.
Ia blocul cu tine
Cmd+Shift+X copiază textul unui bloc, cerut terminalului însuși, ceea ce îl face să funcționeze și cu randarea pe GPU pornită, unde nu există text în pagină de selectat. O imagine a blocului înseamnă două acțiuni în Cmd+K, Block snapshot to clipboard și Block snapshot to a file.
Verificări de actualizare care nu sunt o corvoadă
Nucleul verifică o dată pe zi, într-un thread propriu, iar ce vezi este o bandă deasupra aranjării, nu peste ea, pentru că o notificare care acoperă un terminal este una pe care oamenii învață s-o închidă necitită. Nimic nu se instalează până nu apeși: pentru un agent, actualizarea este o comandă tastată în blocul activ unde ieșirea lui este vizibilă, iar pentru Vobuda pe un Mac butonul instalează versiunea nouă în fundal, apoi oferă o repornire, care se face singură după zece secunde când nu rulează nimic.
Patruzeci de limbi, și un ghid în fiecare
Inclusiv bara de meniu macOS, pe care sistemul o construiește în nucleu. Araba și ebraica oglindesc întreaga fereastră, cu excepția terminalului însuși, unde oglindirea ar face output-ul și căile ilizibile. O cheie de traducere este șirul în engleză, astfel încât un șir netradus revine la engleza lizibilă, nu la un gol sau la un identificator.
Încearcă părțile despre care tocmai ai citit
După două întrebări scurte la prima pornire, se deschide cu un singur bloc de terminal și nimic altceva. Tot ce este mai sus este ceva ce pornești când vrei.
curl -fsSL https://vobuda.com/install.sh | sh