Sådan er programmet skruet sammen
Én regel holder hele programmet sammen: vinduets tilstand ligger i hukommelsen, og konfigurationen ligger i filer. Alt nedenfor følger af det.
Reglen bag det hele
Et vindue rummer faner. En fane rummer blokke. En blok er en terminal, en fil under redigering, filpanelet, en webside, et billede, en PDF, en Markdown-side, en diff, systemmonitoren, indstillingsskærmen eller en tilføjelses panel. De deles i alle retninger med indlejring, trækkes, ændrer størrelse og lukkes efter ét sæt regler frem for et nyt sæt til hver ny funktion. Alt, der er for stort til at tilhøre alle, er en tilføjelse fra vobudas eget katalog, hidtil Design og Direktør, installeret og fjernet i sin helhed med ét tryk.
Ingenting ved den opstilling gemmes i en database, for der findes ingen database. Det vinduet foretager sig, ligger i hukommelsen. Det du har besluttet, ligger i filer. Derfor kalder en knap, en tast, menulinjen, Cmd+K og kommandolinjen alle sammen den samme handling ved navn, og derfor betyder det næsten altid at redigere JSON, hvis man vil have den til at opføre sig anderledes.
Det er også derfor den bedste terminalemulator til Mac, til den slags arbejde dette er bygget til, er en du kan kigge ind i. Findes en indstilling, findes der en linje i en fil der holder den. Findes en handling, findes der et navn du kan kalde den ved.
Fem veje til en handling, og det er den samme handling
Med så mange handlinger er det meste af et program i praksis skjult. Cmd+K er den vej, der svarer på “hvad kan det” i stedet for “gør dette”.
-
Den lærer tasterne i stedet for at erstatte dem
Hver linje viser sin egen genvej. En person der slår den samme handling op to gange, har lært tasten inden tredje gang.
-
Det er ikke en femte ordbog
Hver linje kører en handling ved navn, nøjagtig som de andre fire gør. Et tjek holder tabellen den tegner op mod kernens liste over hvad en tast kan bindes til, i begge retninger: en handling der findes og ikke tilbydes der, fejler i buildet.
-
Kommandolinjen er det samme sæt
vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, skrevet i en vilkårlig vobuda-blok, og
vobuda mcptilbyder de samme kommandoer til en agent som MCP-værktøjer. Ikke en bagdør for scripts: grænsefladetestene styrer hele programmet gennem den, hvilket er grunden til, at den kan stoles på, og grunden til, at en agent kan omarrangere dit vindue, og du kan læse præcis, hvad den gjorde.
Blokke, og hvad de lover
En blok skifter fane med sin shell kørende
Træk en blok i dens header hen på en fane i stripet, og den lander der: samme id, samme shell, samme mappe, stadig i gang med det den kørte. Fanen lyser op i accentfarven mens blokken er over den. Der findes også en handling til det, block.to-tab:2, så den kan lægges på en tast, og et tjek uden mus kan trykke på den.
Størrelser huskes, og der er en bund
Pr. blok, og ingen blok må blive så smal at den holder op med at være brugbar. Et panel på 200 punkter er et panel ingen kan bruge.
Intet af dit forsvinder stille
At lukke noget, der kører, spørger først, ved navn, fordi det koster mere tillid at miste en persons arbejde én gang, end en hel funktion indbringer. Af samme grund tages der et snapshot af projektmappen før hver af en agents ture, med ét tryk til at sætte den tilbage; en nøgle, der indsættes i en agent, stoppes, før agenten ser den; og et hegn, du kan slå til, afviser en agents skrivninger og sletninger uden for projektet.
Sessioner kommer tilbage som standard
Faner, blokke og hver bloks arbejdsmappe kommer tilbage efter en genstart, og det er slået til som standard; én kontakt i afsnittet Generelt slår det fra. En session, der kommer fra en anden maskine, åbner, hvad den kan, og siger, hvad den ikke kunne, i stedet for stiltiende at droppe blokke.
Indstillingsmappen, fil for fil
Alt i ~/.config/vobuda er læsbar JSON, overvåget mens programmet kører. Gem filen, og vinduet tegner sig selv om.
| Fil | Hvad den indeholder |
|---|---|
| settings.json | Tema, udseende, terminal, shell, vindue, signaler: hver indstilling i de ti afsnit |
| themes/*.json | Farver til terminal og vindue. 25 paletter følger med, to bygget til nedsat farvesyn |
| looks/*.json | Vinduets form: hjørner, skygger, panelfarver, gennemsigtighed. 29 følger med |
| skins/*.json | Hvilke overvågningspaneler der vises, og hvordan |
| buttons.json | Dokken: knapper, rækkefølge, side, form, og en farve til de få der er værd at fremhæve |
| agents.json | Hvordan en agent genkendes, og hvad den tilbydes |
| keys.json | Hver genvej. Den native macOS-menu er bygget ud fra samme fil |
| workspaces/*.json | Projekter: hver et vindue med egne faner, mappe, tema og dock |
Indbyggede temaer ligger i selve programmet, og mappen overskriver dem, så en opdatering bringer nye farver uden at overskrive noget, du har redigeret. Hele mappen gemmes som ét arkiv og genskabes på en anden Mac, og på en Mac ligger en kopi i iCloud Drive, slået til som standard, med én kontakt til at slå den fra.
En systemovervågning, sat op af en fil
Tolv slags paneler, og hvilke af dem du ser, er et skin og ikke en skærm, nogen har designet én gang for alle.
-
Tallene er ærlige om sig selv
En værdi systemet vurderer frem for måler, tegnes med en tilde, og hardware der mangler, giver en manglende værdi frem for et nul. En maskine uden dedikeret GPU får ikke et GPU-panel der viser nul procent.
-
Begge adresser, med en kopiér-knap på hver
Adressepanelet nævner først den adresse, internettet ser, og under den den, denne maskine har på sit eget netværk. Det spørger kun, mens panelet er på skærmen, cirka hvert tiende minut, eller hvert tredivte sekund, mens ingen adresse er kendt endnu, og forespørgslen indeholder intet om maskinen.
-
Omorganiseret ved at trække, som alt andet
Overvågningens paneler, dokkens knapper og agentbjælkens dele samles alle op og lægges hvor de skal med samme bevægelse. En indstillingslinje samles op ved grebet til venstre for den, frem for et vilkårligt sted på linjen, så et træk der starter i et tekstfelt ikke forhindrer dig i at markere det ord du ville ændre.
En fil åbner ved siden af shellen
Det en terminal normalt sender dig et andet sted hen for: en sti dukker op i outputtet, to linjer skal ændres, og indtil nu betød det at forlade til en editor og komme tilbage med shellens kontekst tabt.
-
At gemme er bevidst
Intet skrives før Cmd+S. En editor der skriver mens du skriver, er en fin ting i en notesapp og en dårlig ting ved siden af en shell der kører. Det er en handling frem for et tastetryk, hvilket også giver den et menupunkt, en genvej og en linje på kommandolinjen ligesom alt andet her.
-
Afvisningerne betyder lige så meget som skrivningen
En fil der er ændret på disken siden den blev åbnet, overskrives ikke. En binær fil vises ikke som forvansket tekst. En mappe åbnes slet ikke. Ugemte ændringer bærer et synligt mærke, og at lukke en redigeret fil spørger.
-
At finde en fil
Filpanelet søger på navn nedenfor den mappe du står i, og hvert resultat oplyser hvilke to mapper det ligger i, for et navn alene kan ikke skelne to index.ts fra hinanden. Det springer node_modules, .git, target og lignende over, stopper ved otte niveauer eller to hundrede resultater, og gør slet intet under to bogstaver.
Indstillinger, som en skærm og som filer
Ti afsnit, fra Generelt til Data og privatliv, en søgning over hver indstilling, og hver eneste er en linje i en fil, du også kan redigere i hånden.
-
Indstillingerne kommer til blokken
Højreklik på et panel betyder dette her, ret det. Så at vælge en indstillingslinje i en bloks egen menu åbner det afsnit over vinduet, i hjørnet af menuen, i stedet for at føre dig hen til indstillingsskærmen. Det er en handling ligesom alt andet: settings.here:themes, settings.here:monitor.
-
En lyd du kan høre når du vælger den
At vælge en signallyd eller terminalens klokke afspiller den. At vælge en lyd fra en liste med navne du ikke kan høre, er at vælge et navn.
-
Intet beder om en genstart
Indstillingsmappen overvåges, inklusive de to ting kernen selv ejer: macOS-menulinjen bygget ud fra din genvejsfil, og den globale tast til nedtræksvinduet, hvor den gamle tast frigives før den nye registreres, så to ikke kan svare på én gang. Et tjek læser hvert eneste hint i indstillingsskærmen og fejler på ordet genstart.
At tale og blive læst op for
Begge bruger systemets egen tale, på din maskine. Lyden forlader aldrig computeren.
Diktering
Cmd+Shift+V skriver det du siger, ind i den blok du arbejder i, og stripet viser hvilket sprog det lytter på, med to bogstaver. En dikteret sætning skrives og køres aldrig: genkendelsen fejlhører, og en fejlhørt kommando der kører sig selv, er et program der sletter ting fordi der var tændt for en radio. Ved siden af en agent, hvor en sætning er en besked frem for en kommando, kan den sende af sig selv, og det er en indstilling der læses i det øjeblik sætningen slutter.
At læse svaret højt
Cmd+Shift+R læser agentens seneste svar højt op; et tryk til stopper det. Det der læses, er svaret, ikke skærmen. Et punkttegn foran, stjerner om et fremhævet ord, backticks om et navn, en boksregel, en fuld sti hvor filnavnet ville gøre det: de forsvinder, og ordene inden i dem bliver tilbage. Oplæsningen afgrænses af former frem for af ord, forneden af agentens inputlinje og foroven af dens logo, fordi en agents rammer skifter med hver ny udgave af den.
De små ting der afgør om du beholder det
Højreklikket er vores
Overalt i vinduet: bloksens egen menu inde i en blok, vinduets udvendige, fanestripet, dokken, mellemrummet mellem felter. Hver linje er en handling, og menuen har sin egen handling, block.menu, så en bevægelse kun en hånd kan nå, ikke er en bevægelse intet kan tjekke. Det eneste sted der beholder systemets menu, er et tekstfelt, hvor det tilbyder klip, kopiér, indsæt og ordbogen.
Åbn en mappe hvor som helst fra
vobuda://open?path=/some/path åbner en fane i den mappe, fra en Finder-handling, et script eller en anden app. macOS har ingen systemindstilling for standardterminal, så dette er den ærlige udgave af den funktion frem for et løfte det ikke kan holde.
Søg inde i en blok
Cmd+F. Feltet hører til den blok det søger i, og at lukke det efterlader visningen der hvor matchet var.
Tag blokken med dig
Cmd+Shift+X kopierer en bloks tekst, spurgt hos terminalen selv, hvilket også er det, der får det til at virke med GPU-rendering slået til, hvor der ikke er tekst på siden at markere. Et billede af blokken er to handlinger i Cmd+K, Block snapshot to clipboard og Block snapshot to a file.
Opdateringstjek der ikke er lektier
Kernen tjekker én gang om dagen, i en tråd for sig, og det, du ser, er en bjælke over layoutet frem for oven på det, fordi en besked, der dækker en terminal, er en, folk lærer at lukke ulæst. Intet installeres, før du trykker: For en agent er opdateringen en kommando, der skrives i den aktive blok, hvor dens output er synligt, og for Vobuda på en Mac installerer knappen den nye version i baggrunden og tilbyder derefter en genstart, som sker af sig selv efter ti sekunder, hvis intet kører.
Fyrre sprog, og en vejledning på hvert
Inklusive macOS-menulinjen, som systemet bygger i kernen. Arabisk og hebraisk spejlvender hele vinduet undtagen selve terminalen, hvor spejlvending ville gøre output og stier ulæselige. En oversættelsesnøgle er den engelske streng, så en ikke-oversat streng falder tilbage til læsbar engelsk frem for til en tom streng eller et id.
Prøv de dele du lige har læst om
Efter to korte spørgsmål ved første start åbner det med én terminalblok og intet andet. Alt ovenfor er noget, du slår til, når du vil have det.
curl -fsSL https://vobuda.com/install.sh | sh