Hogyan működik, darabról darabra
Egyetlen szabály tartja össze az egész programot: az ablak állapota a memóriában él, a konfiguráció pedig fájlokban. Minden, ami lentebb következik, ebből ered.
A szabály minden mögött
Egy ablak füleket tart. Egy fül blokkokat tart. Egy blokk lehet terminál, szerkesztett fájl, a fájlpanel, weboldal, kép, PDF, Markdown-oldal, diff, a rendszermonitor, a beállítások képernyője vagy egy bővítmény panelje. Bármelyik irányba osztódnak beágyazással, húzhatók, méretezhetők és zárhatók egyetlen szabályrendszer szerint, nem új szabályrendszerrel minden új funkcióhoz. Ami túl nagy ahhoz, hogy mindenkié legyen, az a vobuda saját katalógusából érkező bővítmény, eddig a Design és a Director, egy nyomásra egészben telepítve és eltávolítva.
Ebből az elrendezésből semmi nincs adatbázisban tárolva, mert nincs is adatbázis. Az, hogy az ablak éppen mit csinál, a memóriában él; az, amit te eldöntöttél, fájlokban él. Ezért hívja meg ugyanazt a műveletet néven egy gomb, egy billentyű, a menüsor, a Cmd+K és a parancssor is, és ezért jelenti a viselkedés megváltoztatása szinte mindig a JSON szerkesztését.
Ezért is igaz, hogy a legjobb terminál Mac-re, az itt célzott munkához, olyan, amelybe bele lehet látni. Ha egy beállítás létezik, van egy sor egy fájlban, amely tárolja. Ha egy művelet létezik, van egy név, amellyel meghívható.
Öt út egy művelethez, és mindegyik ugyanaz a művelet
Ennyi művelettel a program nagy része a gyakorlatban rejtve marad. A Cmd+K az az út, amely arra felel, hogy „mit tud”, nem arra, hogy „csináld ezt”.
-
Megtanítja a billentyűket, nem helyettesíti őket
Minden sor mutatja a saját billentyűparancsát. Aki kétszer nyúl a listához ugyanazért a művelethez, a harmadik alkalomra már megtanulja a billentyűt.
-
Nem egy ötödik szótár
Minden sor névvel hívja meg a műveletet, pontosan úgy, mint a másik négy. Egy ellenőrzés a táblát, amelyet megjelenít, hozzáméri a mag azon listájához, hogy egy billentyűhöz mi köthető, mindkét irányban: ha egy létező művelet nincs ott felkínálva, a build elbukik.
-
A parancssor ugyanaz a halmaz
vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, bármelyik vobuda blokkban begépelve, és a
vobuda mcpugyanezeket a parancsokat MCP-eszközökként kínálja egy ügynöknek. Nem hátsó ajtó szkriptekhez: a felületi tesztek ezen keresztül hajtják az egész programot, ezért megbízhatunk benne, és ezért rendezheti át egy ügynök az ablakodat, te pedig pontosan elolvashatod, mit csinált.
Blokkok, és amit ígérnek
Egy blokk úgy vált fület, hogy a shellje közben fut
Húzd a blokkot a fejlécénél fogva egy fülre a sávban, és ott landol: ugyanaz az id, ugyanaz a shell, ugyanaz a mappa, továbbra is fut, amit éppen futtatott. A fül kiemelő színnel világít, amíg a blokk fölötte van. Erre is van művelet, a block.to-tab:2, így billentyűre is tehető, és egy egér nélküli ellenőrzés is meg tudja nyomni.
A méretek megjegyzésre kerülnek, és van egy alsó korlát
Blokkonként, és egyetlen blokk sem szűkülhet olyan keskenyre, hogy használhatatlanná váljon. Egy 200 pontos panelt senki sem tud használni.
Semmid nem tűnik el csendben
Egy futó dolog bezárása előbb rákérdez, név szerint, mert valaki munkájának egyszeri elvesztése több bizalomba kerül, mint amennyit egy egész funkció megér. Ugyanezért a projektmappa minden ügynöki kör előtt pillanatképet kap, egy nyomással visszaállítható; egy ügynöknek beillesztett kulcsot megállít, mielőtt az ügynök látná; és egy kerítés, amelyet bekapcsolhatsz, visszautasítja az ügynök íréseit és törléseit a projekten kívül.
A munkamenetek alapértelmezetten visszajönnek
A fülek, a blokkok és minden blokk munkamappája újraindítás után visszajön, és ez alapértelmezetten be van kapcsolva; egyetlen kapcsoló az Általános szakaszban kikapcsolja. Egy másik gépről érkezett munkamenet megnyitja, amit tud, és megmondja, mit nem tudott, ahelyett hogy csendben elhagyná a blokkokat.
A beállítások mappája, fájlról fájlra
A ~/.config/vobuda mappában minden olvasható JSON, amelyet a program futása közben figyel. Mentsd el a fájlt, és az ablak újrarajzolódik.
| Fájl | Mit tartalmaz |
|---|---|
| settings.json | Téma, megjelenés, terminál, shell, ablak, jelzések: a tíz szakasz minden beállítása |
| themes/*.json | Terminál- és ablakszínek. 25 paletta érkezik gyárilag, kettő színtévesztésre tervezve |
| looks/*.json | Az ablak alakja: sarkok, árnyékok, panelszínek, átlátszóság. 29 érkezik |
| skins/*.json | Hogy mely monitorpanelek jelennek meg, és hogyan |
| buttons.json | A dokk: gombok, sorrend, oldal, forma, és szín a néhány kiemelésre érdemesnek |
| agents.json | Hogyan ismeri fel egy ügynököt, és mit kínál fel neki |
| keys.json | Minden billentyűparancs. A natív macOS menü is ebből a fájlból épül fel |
| workspaces/*.json | Projektek: mindegyik egy ablak a saját füleivel, mappájával, témájával és dokkjával |
A beépített témák a programban élnek, és a mappa felülírja őket, így egy frissítés új színeket hoz anélkül, hogy bármit felülírna, amit szerkesztettél. Az egész mappa egyetlen archívumként menthető, és visszaállítható egy másik Macen, Macen pedig egy másolat az iCloud Drive-ban él, alapértelmezetten bekapcsolva, egyetlen kapcsolóval, amely kikapcsolja.
Rendszermonitor, fájllal elrendezve
Tizenkét panelfajta, és hogy melyiket látod, azt egy skin dönti el, nem egy képernyő, amelyet valaki egyszer megtervezett.
-
A számok őszinték önmagukról
Egy értéket, amelyet a rendszer csak becsül, nem mér, egy hullámvonallal jelöl. A hiányzó hardver hiányzó értéket ad, nem nullát. Egy különálló GPU nélküli gép nem kap olyan GPU-panelt, amely nulla százalékot mutat.
-
Mindkét cím, mindegyiken másoló gombbal
A címpanel elsőként azt a címet nevezi meg, amelyet az internet lát, alatta pedig azt, amelyet a gép a saját hálózatán tart. Csak akkor kérdez, amíg a panel a képernyőn van, nagyjából tízpercenként, vagy harmincmásodpercenként, amíg még nem ismert címet, és a kérés semmit nem visz a gépről.
-
Húzással rendezhető át, mint minden más
A monitor paneljeit, a dokk gombjait és az ügynöksáv részeit ugyanazzal a mozdulattal lehet felvenni és a helyükre tenni. Egy beállítási sort a bal oldali fogantyújánál lehet felvenni, nem a sor bármely pontján, így egy szövegmezőn kezdődő húzás nem akadályozza meg, hogy kijelöld a szót, amit meg akartál változtatni.
Egy fájl a shell mellett nyílik meg
Az a dolog, amiért egy terminál általában máshová küld: megjelenik egy elérési út a kimenetben, két sort kell módosítani, és eddig ez azt jelentette, hogy el kellett menni egy szerkesztőbe, majd visszatérni úgy, hogy a shell kontextusa elveszett.
-
A mentés szándékos
Semmi sem íródik ki a Cmd+S lenyomásáig. Egy szerkesztő, amely gépelés közben ír, egy jegyzetalkalmazásban rendben van, de rossz ötlet egy futó shell mellett. Ez egy művelet, nem egy billentyűleütés, ami azt is jelenti, hogy van hozzá menüpont, billentyűparancs és parancssori bejegyzés, mint mindennek itt.
-
Az elutasítások épp annyira számítanak, mint az írás
Egy fájlt, amely a megnyitása óta megváltozott a lemezen, nem ír felül. Egy bináris fájlt nem jelenít meg összekavart szövegként. Egy mappát egyáltalán nem nyit meg. A mentetlen módosítások látható jelet kapnak, és egy szerkesztett fájl bezárása rákérdez.
-
Egy fájl megtalálása
A fájlpanel név szerint keres azon mappa alatt, amelyben éppen állsz, és minden találat megmondja, melyik két mappában található, mert egy név önmagában nem tud két index.ts fájlt megkülönböztetni. Kihagyja a node_modules, .git, target és hasonló mappákat, nyolc szintnél vagy kétszáz találatnál megáll, és két betű alatt semmit sem csinál.
Beállítások, képernyőként és fájlokként
Tíz szakasz, az Általánostól az Adatok és adatvédelemig, egy keresés minden beállításra, és mindegyik egy sor egy fájlban, amelyet kézzel is szerkeszthetsz.
-
A beállítások jönnek a blokkhoz
Egy panelen a jobb kattintás azt jelenti: „ezt a dolgot itt, változtasd meg”. Ezért a beállítássor kiválasztása egy blokk saját menüjében az adott szakaszt az ablak fölött nyitja meg, a menü sarkában, ahelyett hogy a beállítások képernyőjére vinne. Ez is egy művelet, mint minden más: settings.here:themes, settings.here:monitor.
-
Egy hang, amelyet meghallgathatsz, amikor kiválasztod
Egy jelzőhang vagy a terminál csengőhangjának kiválasztása le is játssza azt. Egy hangot egy olyan névlistából kiválasztani, amelyet nem lehet meghallgatni, annyi, mint egy nevet választani.
-
Semmi sem kér újraindítást
A beállítások mappáját figyeli a rendszer, beleértve azt a két dolgot is, amelyet a mag kezel: a billentyűparancs-fájlból épülő macOS menüsort, és a lenyíló ablak globális billentyűjét, ahol a régi billentyű felszabadul, mielőtt az új regisztrálva lenne, így kettő nem válaszolhat egyszerre. Egy ellenőrzés beolvassa a beállítások képernyő minden szövegét, és elbukik, ha megtalálja az „újraindítás” szót.
Beszéd és felolvasás
Mindkettő a rendszer saját beszédmotorját használja, a gépeden. A hang soha nem hagyja el a számítógépet.
Diktálás
A Cmd+Shift+V begépeli, amit mondasz, abba a blokkba, amelyben éppen dolgozol, és a sáv két betűvel jelzi, milyen nyelven figyel. Egy diktált mondat begépelésre kerül, futtatásra soha: a felismerés néha félrehall, és egy félrehallott parancs, amely magától lefut, olyan program, amely dolgokat töröl, mert szólt a rádió. Egy ügynök mellett, ahol egy mondat üzenet, nem parancs, önmagától is elküldhető, és ez egy olyan beállítás, amelyet a mondat végén olvas be a rendszer.
Válasz felolvasása
A Cmd+Shift+R hangosan felolvassa az ügynök utolsó válaszát; ismételt lenyomásra leáll. Amit felolvas, az a válasz, nem a képernyő. Egy pont elöl, csillagok egy kiemelt szó körül, aposztrófok egy név körül, egy keretvonal, egy teljes elérési út ott, ahol a fájlnév is elég lenne: ezek eltűnnek, a bennük lévő szavak megmaradnak. A felolvasást formák határolják, nem szavak: alulról az ügynök beviteli sora, felülről a logója, mert egy ügynök kerete minden kiadással változik.
A kis dolgok, amelyek eldöntik, hogy megtartod-e
A jobb gomb a miénk
Mindenhol az ablakban: a blokk saját menüje egy blokkon belül, az ablak külső menüje, a fülsáv, a dokk, a csempék közti rés. Minden sor egy művelet, és magának a menünek is van saját művelete, a block.menu, így egy mozdulat, amelyet csak egy kéz ér el, nem lesz olyan mozdulat, amit semmi sem tud ellenőrizni. Az egyetlen hely, amely megtartja a rendszer menüjét, egy szövegmező, ahol kivágást, másolást, beillesztést és szótárat kínál.
Nyiss meg egy mappát bárhonnan
A vobuda://open?path=/some/path egy fület nyit meg abban a mappában, egy Finder-műveletből, egy szkriptből vagy egy másik alkalmazásból. A macOS-ben nincs rendszerszintű alapértelmezett terminál beállítás, így ez ennek a funkciónak az őszinte változata, nem egy ígéret, amelyet nem tud tartani.
Keresés egy blokkon belül
Cmd+F. A mező ahhoz a blokkhoz tartozik, amelyben keres, és bezárásakor a nézet ott marad, ahol a találat volt.
Vidd magaddal a blokkot
A Cmd+Shift+X másolja egy blokk szövegét, magától a terminálótól kérve el, ami azt is lehetővé teszi, hogy bekapcsolt GPU-s megjelenítéssel is működjön, ahol az oldalon nincs kijelölhető szöveg. A blokk képe két művelet a Cmd+K-ban, a Blokk pillanatképe vágólapra és a Blokk pillanatképe fájlba.
Frissítés-ellenőrzés, ami nem lecke
A mag naponta egyszer ellenőriz, a saját szálán, és amit látsz, az az elrendezés fölötti sáv, nem rajta, mert a terminált eltakaró értesítés olyan, amelyet az emberek megtanulnak elolvasatlanul bezárni. Semmi nem települ, amíg nem nyomsz: egy ügynöknél a frissítés egy parancs, amelyet az aktív blokkba gépel, ahol látható a kimenete, a Vobudánál pedig Macen a gomb a háttérben telepíti az új verziót, majd újraindítást ajánl, amely magától megtörténik tíz másodperc után, ha semmi nem fut.
Negyven nyelv, mindegyikhez útmutatóval
Beleértve a macOS menüsort is, amelyet a rendszer épít fel a magban. Az arab és a héber tükrözi az egész ablakot, kivéve magát a terminált, ahol a tükrözés olvashatatlanná tenné a kimenetet és az elérési utakat. Egy fordítási kulcs maga az angol szöveg, így egy le nem fordított szöveg olvasható angolra esik vissza, nem egy üres mezőre vagy azonosítóra.
Próbáld ki, amiről most olvastál
Az első indításkor két rövid kérdés után egyetlen terminálblokkal nyílik meg, és semmi mással. Mindent, ami fent van, akkor kapcsolsz be, amikor akarod.
curl -fsSL https://vobuda.com/install.sh | sh