Kako deluje, del za delom
Celoten program drži skupaj eno samo pravilo: stanje okna živi v pomnilniku, konfiguracija pa v datotekah. Vse spodaj izhaja iz tega.
Pravilo, ki je v ozadju vsega
Okno drži zavihke. Zavihek drži bloke. Blok je terminal, datoteka v urejanju, plošča z datotekami, spletna stran, slika, PDF, stran Markdown, diff, sistemski nadzornik, zaslon z nastavitvami ali plošča dodatka. Delijo se v katero koli smer z gnezdenjem, vlečejo, spreminjajo velikost in zapirajo po enem naboru pravil, ne po novem naboru za vsako novo funkcijo. Vse, kar je preveliko, da bi pripadalo vsem, je dodatek iz lastnega kataloga vobude, doslej Design in Director, nameščen in odstranjen v celoti z enim pritiskom.
Nič od te razporeditve ni shranjeno v podatkovni bazi, ker podatkovne baze ni. Kaj okno počne, živi v pomnilniku; kaj ste se odločili, živi v datotekah. Zato gumb, tipka, menijska vrstica, Cmd+K in ukazna vrstica kličejo isto dejanje po imenu, in zato spreminjanje njegovega obnašanja skoraj vedno pomeni urejanje JSON-a.
Zato je tudi najboljši terminalski emulator za Mac, za tovrstno delo, za katero je bil zgrajen, tisti, ki ga lahko pregledate. Če nastavitev obstaja, obstaja vrstica v datoteki, ki jo vsebuje. Če dejanje obstaja, obstaja ime, s katerim ga lahko pokličete.
Pet poti do enega dejanja, in gre za isto dejanje
Pri toliko dejanjih je večina programa v praksi skrita. Cmd+K je pot, ki odgovori na vprašanje „kaj zna“, ne na ukaz „naredi to“.
-
Uči tipke, namesto da bi jih nadomestil
Vsaka vrstica prikazuje svojo bližnjico. Kdor po seznamu poseže dvakrat za isto dejanje, si tipko zapomni že do tretjič.
-
Ni peti slovar
Vsaka vrstica zažene dejanje po imenu, povsem enako kot preostali štirje načini. Preverjanje primerja tabelo, iz katere črpa, s seznamom jedra o tem, na kaj se sme vezati tipka, in sicer v obe smeri: dejanje, ki obstaja, pa ni ponujeno tam, podre izgradnjo.
-
Ukazna vrstica je isti nabor
vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, natipkano v katerem koli bloku vobuda,
vobuda mcppa agentu ponuja iste ukaze kot orodja MCP. Ni stranska vrata za skripte: preizkusi vmesnika prek nje poganjajo ves program, zato ji je mogoče zaupati in zato lahko agent preuredi vaše okno, vi pa natančno preberete, kaj je naredil.
Bloki in kaj obljubljajo
Blok zamenja zavihek, medtem ko lupina teče naprej
Povlecite blok za glavo na zavihek v vrstici in pristane tam: isti id, ista lupina, ista mapa, še vedno teče, karkoli je že teklo. Zavihek med tem zasveti v poudarjeni barvi, ko je blok nad njim. Za to obstaja tudi dejanje, block.to-tab:2, zato ga je mogoče vezati na tipko, preverjanje brez miške pa ga lahko sproži.
Velikosti si program zapomni, obstaja pa tudi spodnja meja
Za vsak blok posebej, noben blok pa ne sme postati tako ozek, da postane neuporaben. Plošča pri 200 točkah je plošča, ki je ne more uporabljati nihče.
Nič vašega ne izgine neopazno
Zapiranje nečesa, kar teče, vpraša najprej, po imenu, ker izguba nekoga delo enkrat stane več zaupanja, kot ga prisluži cela funkcija. Iz istega razloga se mapa projekta pred vsakim agentovim krogom shrani kot posnetek, z enim pritiskom za vrnitev; ključ, prilepljen agentu, se ustavi, preden ga agent vidi; ograja, ki jo lahko vklopite, pa zavrne agentova pisanja in brisanja zunaj projekta.
Seje se privzeto vrnejo
Zavihki, bloki in delovna mapa vsakega bloka se po ponovnem zagonu vrnejo in to je privzeto vklopljeno; eno stikalo v razdelku Splošno to izklopi. Seja, ki je prišla z drugega računalnika, odpre, kar zmore, in pove, česa ni mogla, namesto da bi bloke tiho izpustila.
Mapa z nastavitvami, datoteka za datoteko
Vse v ~/.config/vobuda je berljiv JSON, ki ga program med delovanjem spremlja. Shranite datoteko in okno se znova izriše.
| Datoteka | Kaj vsebuje |
|---|---|
| settings.json | Tema, videz, terminal, lupina, okno, signali: vsaka nastavitev desetih razdelkov |
| themes/*.json | Barve terminala in okna. Priloženih je 25 palet, dve od njih zasnovani za barvno slepoto |
| looks/*.json | Oblika okna: vogali, sence, barve plošč, prosojnost. Priloženih je 29 |
| skins/*.json | Katere plošče monitorja so izrisane in kako |
| buttons.json | Vrstica z gumbi: gumbi, vrstni red, stran, oblika in barva za tiste redke, ki jih velja označiti |
| agents.json | Kako je agent prepoznan in kaj mu je ponujeno |
| keys.json | Vse bližnjice. Iz iste datoteke je zgrajen tudi domači meni macOS |
| workspaces/*.json | Projekti: vsak kot okno z lastnimi zavihki, mapo, temo in sidriščem |
Vgrajene teme živijo v samem programu, mapa pa jih prepiše, zato posodobitev prinese nove barve, ne da bi prepisala karkoli, kar ste urejali. Vsa mapa se shrani kot en arhiv in obnovi na drugem Macu, na Macu pa kopija leži v iCloud Drive, privzeto vklopljena, z enim stikalom, ki jo izklopi.
Sistemski monitor, razporejen z datoteko
Dvanajst vrst plošč, in katere vidite, je preobleka, ne zaslon, ki ga je nekdo enkrat načrtoval.
-
Številke so iskrene glede same sebe
Vrednost, ki jo sistem oceni namesto izmeri, je izrisana s tildo, manjkajoča strojna oprema pa da manjkajočo vrednost namesto ničle. Naprava brez namenske grafične kartice ne dobi plošče GPU, ki bi kazala nič odstotkov.
-
Oba naslova, vsak s svojim gumbom za kopiranje
Plošča z naslovi najprej navede naslov, ki ga vidi internet, pod njim pa naslov, ki ga ima računalnik v svojem omrežju. Vpraša samo, dokler je plošča na zaslonu, približno enkrat na deset minut ali vsakih trideset sekund, dokler naslov še ni znan, zahteva pa ne nosi ničesar o računalniku.
-
Prerazporedite jih z vlečenjem, tako kot vse drugo
Plošče monitorja, gumbi v vrstici z gumbi in deli vrstice agenta se vsi pobirajo in postavljajo na svoje mesto z isto potezo. Vrstico nastavitev pobere ročaj na njeni levi strani, ne katero koli mesto na vrstici, zato vlečenje, ki se začne na besedilnem polju, ne prepreči izbire besede, ki ste jo želeli spremeniti.
Datoteka se odpre ob lupini
Stvar, zaradi katere vas terminal ponavadi pošlje drugam: v izpisu se pojavi pot, spremeniti je treba dve vrstici, do zdaj pa je to pomenilo oditi v urejevalnik in se vrniti brez konteksta lupine.
-
Shranjevanje je namerno
Nič se ne zapiše, dokler ne pritisnete Cmd+S. Urejevalnik, ki piše sproti, je v aplikaciji za zapiske dobra stvar, ob lupini, ki teče, pa slaba. Gre za dejanje in ne le za pritisk tipke, zato ima tudi postavko v meniju, bližnjico in vnos v ukazni vrstici, tako kot vse drugo tu.
-
Zavrnitve so pomembne prav toliko kot pisanje
Datoteka, ki se je na disku spremenila, odkar je bila odprta, se ne prepiše. Binarna datoteka se ne prikaže kot popačeno besedilo. Mapa se sploh ne odpre. Neshranjene spremembe nosijo viden znak, zapiranje urejene datoteke pa vpraša.
-
Iskanje datoteke
Plošča z datotekami išče po imenu znotraj mape, v kateri se nahajate, vsak rezultat pa pove, v katerih dveh mapah leži, ker samo ime ne more ločiti dveh index.ts. Preskoči node_modules, .git, target in podobne, ustavi se pri osmih ravneh ali dvesto rezultatih in pri manj kot dveh črkah ne stori ničesar.
Nastavitve, kot zaslon in kot datoteke
Deset razdelkov, od Splošnega do Podatkov in zasebnosti, iskanje po vsaki nastavitvi, in vsaka je vrstica v datoteki, ki jo lahko urejate tudi na roko.
-
Nastavitve pridejo k bloku
Desni klik na ploščo pomeni „to stvar tukaj, spremeni jo“. Zato izbira vrstice z nastavitvami v bloku lastnem meniju odpre ta razdelek čez okno, v kotu menija, namesto da bi vas peljala na zaslon z nastavitvami. To je dejanje kot vsako drugo: settings.here:themes, settings.here:monitor.
-
Zvok, ki ga slišite, ko ga izberete
Izbira zvoka signala ali zvonca terminala ga tudi predvaja. Izbiranje zvoka s seznama imen, ki jih ne slišite, je izbiranje imena.
-
Nič ne zahteva ponovnega zagona
Mapa z nastavitvami je spremljana, vključno z dvema stvarema, ki ju upravlja jedro: menijsko vrstico macOS, zgrajeno iz vaše datoteke z bližnjicami, in globalno tipko spustnega okna, kjer se stara tipka sprosti, preden se registrira nova, tako da nikoli ne odgovarjata obe hkrati. Preverjanje prebere vsak namig na zaslonu z nastavitvami in podre izgradnjo ob besedi restart.
Govorjenje in poslušanje branja
Oba uporabljata sistemov lastni govor, na vaši napravi. Zvok nikoli ne zapusti računalnika.
Narekovanje
Cmd+Shift+V vtipka, kar poveste, v blok, v katerem delate, vrstica pa v dveh črkah pove, v katerem jeziku posluša. Narekovan izrek se vtipka in nikoli ne zažene: prepoznavanje se včasih zmoti, ukaz, ki se zažene sam zaradi napačnega prepoznavanja, pa je program, ki briše stvari, ker je bil prižgan radio. Ob agentu, kjer je izrek sporočilo in ne ukaz, se lahko pošlje sam od sebe, to pa je nastavitev, ki se prebere v trenutku, ko se izrek konča.
Branje odgovora nazaj
Cmd+Shift+R na glas prebere agentov zadnji odgovor; ponoven pritisk branje ustavi. Prebran je odgovor, ne zaslon. Alineja na začetku, zvezdice okoli poudarjene besede, obratni narekovaji okoli imena, črta škatle, polna pot tam, kjer bi zadostovalo že ime datoteke: te stvari izginejo, besede znotraj njih pa ostanejo. Branje omejujejo oblike in ne besede, spodaj agentova vnosna vrstica, zgoraj njegov logotip, ker se agentova oprema spremeni z vsako njegovo izdajo.
Majhne stvari, ki odločijo, ali boste program obdržali
Desni gumb je naš
Povsod v oknu: lastni meni bloka znotraj bloka, zunanji meni okna, vrstica zavihkov, sidrišče z gumbi, vrzel med ploščicami. Vsaka vrstica je dejanje, meni pa ima tudi svoje lastno dejanje, block.menu, zato poteza, ki jo doseže le roka, ni poteza, ki je nič ne more preveriti. Edino mesto, ki obdrži sistemski meni, je besedilno polje, kjer ponuja izreži, kopiraj, prilepi in slovar.
Odprite mapo od koder koli
vobuda://open?path=/some/path odpre zavihek v tisti mapi, iz dejanja Finderja, skripte ali druge aplikacije. macOS nima sistemske nastavitve za privzeti terminal, zato je to iskrena različica te funkcije in ne obljuba, ki je ni mogoče držati.
Iskanje znotraj bloka
Cmd+F. Polje pripada bloku, po katerem išče, zapiranje pa pogled pusti tam, kjer je bilo ujemanje.
Vzemite blok s seboj
Cmd+Shift+X kopira besedilo bloka, za katero vpraša sam terminal, zato deluje tudi z vklopljenim izrisom na GPE, kjer na strani ni besedila za izbiro. Slika bloka sta dve dejanji v Cmd+K, Posnetek bloka v odložišče in Posnetek bloka v datoteko.
Preverjanje posodobitev, ki ni domača naloga
Jedro preverja enkrat na dan, v lastni niti, in kar vidite, je trak nad razporeditvijo, ne čez njo, ker je obvestilo, ki prekriva terminal, tisto, ki se ga ljudje naučijo zapreti neprebranega. Nič se ne namesti, dokler ne pritisnete: za agenta je posodobitev ukaz, natipkan v aktivni blok, kjer je viden njegov izpis, za Vobudo na Macu pa gumb namesti novo različico v ozadju, nato ponudi ponovni zagon, ki se sam zgodi po desetih sekundah, ko nič ne teče.
Štirideset jezikov, in v vsakem svoj vodnik
Vključno z menijsko vrstico macOS, ki jo sistem zgradi v jedru. Arabščina in hebrejščina zrcalita celo okno, razen samega terminala, kjer bi zrcaljenje naredilo izpis in poti neberljive. Ključ prevoda je angleški niz, zato se neprevedeni niz vrne na berljivo angleščino in ne na prazno polje ali identifikator.
Preizkusite dele, o katerih ste pravkar brali
Po dveh kratkih vprašanjih ob prvem zagonu se odpre z enim terminalskim blokom in ničemer več. Vse zgoraj vklopite, ko to želite.
curl -fsSL https://vobuda.com/install.sh | sh