Settings
The Terminal menu opens three kinds of settings. Terminal Settings… (⌘,) holds this browser’s preferences: General (theme, launch height, pin names, attitude colours, and Reset app state, which clears this browser’s layouts, bindings and preferences), Keyboard (the key ramp and every binding), Controller (a USB gamepad or DualSense), Video (which overlays draw on every feed, the latency compensation and the guide style; see Video and replay) and Voice (the microphone, the output device, the input volume with its meter, and the browser’s echo cancellation, noise suppression and auto gain — shared by every voice room you are in; see Voice). They apply as you change them and live in this browser only. The timeline bar is toggled in the Layout menu; its window lives in the timeline’s own settings popover.
Keyboard and Controller list every action and every entry, including the ones computed from data: each panel (Map, Assets…), each aircraft (V03 · Vanagas 03), each shared layout (Layout: Night), each chat group (Chat: Ops) and each pin name (Pin Bravo at Aircraft). The lists follow the data: save a layout and its row is there without a reload. A binding whose entry is not present right now (a layout since deleted, a pin name removed, a room not yet loaded) is kept as a dormant row, shown muted with not present and an unbind button, and it fires again the moment the entry returns. Rows marked held are held actions: the key or pad button acts while it is down and lets go when it is released (Peek Tabs shows the tab strips while Hide Tabs is on; Talk in <room> and Talk in Every Room transmit in a push-to-talk room, see Voice).
Pin names (General) are the names offered by the pin entries on keys and pad buttons: A B C D by default, any number from one to twelve, each up to 20 characters without dots. Add a name with Enter, remove it with ×; renaming is remove and add, and a binding to the old name goes dormant until a name like it returns.
Mainframe Settings… holds the deployment’s shared settings, one document per section, read by every service that used to read a constant or an environment variable. Its side list is grouped: Rooms (Voice Rooms, Chat Rooms), People (Users, Invites, Roles) and System (Configuration, Keys, Audit); it opens on Voice Rooms. Configuration is one page that stacks the shared documents under their own headings — Workspace, Operations, Coverage, Media, Retention, Comms and Security (administrators only) — with one Save; the palette’s old entries (Mainframe Settings: Media) open it at that part. Every page is cards whose rows say what they change:
| Section | What it changes | Applies |
|---|---|---|
| Operations | The launch battery minimum Terminal enforces and the supervised mission runner’s envelope | at once |
| Coverage | The cell size (with the cell count over the AO), the freshness horizon, the fade horizon of the map’s coverage-age fog | within seconds; the section shows the cell count and warns near the server’s limit |
| Media | Whether feeds record (Always, When watched, Never), recording retention, the playback recorder, the longest video clip, and Recording exceptions: an aircraft or a tag that records differently from the default (each row says what it does, e.g. V03 never records; an aircraft’s own exception wins over a tag’s) |
at once; retention at the next daily run |
| Retention | State, telemetry and bulk horizons | at the next daily run (daily chip) |
| Workspace | The Mainframe’s name (shown instead of its URL: the sign-in card, the Terminal menu), the shared layout a browser with no arrangement of its own starts with (None for an empty workspace), the area of operations (any area; it bounds the coverage grid and frames Home; None for no grid), a map center when no AO decides it |
at once |
| Comms | How long chat messages and their files are kept (Keep messages, 90 days), the largest chat upload (Upload limit, 25 MB) |
retention at the next daily run (daily chip); the upload limit at once |
| Chat Rooms | The chat groups: a name, an id fixed at creation, tags a grant’s tag scope can follow |
at once |
| Voice Rooms | The voice rooms, the same way | at once |
For administrators, People holds the deployment’s users, invites and roles, and System its keys and audit log; Security is the last part of Configuration. See Access. Profile… is your own account: name, password, two-factor and sessions.
Keys contains module and stream keys; personal keys are in Profile. Stream keys let cameras publish RTMP video without Cloud API or telemetry; see RTMP streams.
| Section | What it changes | Applies |
|---|---|---|
| Security | Session age, login rate limit (after restart), password minimum length, the two-factor requirement, single sign-on (after restart), personal key maximum age |
at once unless chipped |
A setting that only a restart applies carries an after restart chip.
Who can edit
Section titled “Who can edit”Every signed-in role reads Mainframe Settings; only administrators can save. Other roles see a read only tag under the page title and disabled controls. Without read access the menu item is disabled.
Chat Rooms and Voice Rooms are lists rather than forms: New chat room / New voice room asks for a name (the id follows it until you change it; it never changes afterwards) and tags; each row shows Rename… and Delete…; a delete asks first, because it also deletes the room’s messages and files (or voice recordings) and its id can never be used again. Every Terminal sees a change at once. Only administrators write; everyone else sees disabled controls.
Configuration is a form: change rows in any of its parts, then Save (or Revert), which sit at the bottom of the dialog; Save writes each changed document. Saves are compare-and-set, one document at a time. If another administrator saved one first, the footer names it — Media changed by <name> · Reload; Reload replaces your draft of that document with theirs, nothing merges. Every saved change is an event (settings.changed) in the Events panel naming the section, the fields with their old and new values, and who saved.
Initial values
Section titled “Initial values”The first boot seeds each section from mainframe.config.ts and the environment (the retention and media horizons). After that the documents are the source: changing those environment variables has no effect on an initialised database. When a stored section has a field the current Mainframe no longer knows, boot drops that field and keeps the rest. See Configuration.