mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-10-01 08:01:47 +00:00
Saved SSH hosts and their usage counts move out of config.json into servers.json beside it, so config.json can be synced between machines without carrying a server list (#911). An older config.json is split on first load: servers.json is written first (0600), then only the two keys are removed from config.json, leaving every other key as it was. When both files hold hosts, servers.json wins and the stale copy falls out of config.json at its next save. A servers.json that does not parse is kept aside and blocks saves, as config.json does; hand edits hot-reload. Settings -> Window & Tabs -> SSH tab title (`ssh_tab_title`) pins an SSH tab to the profile name (saved host name, ~/.ssh/config alias, or the address typed for a quick connect) or the hostname, on the OSC title's rung of the existing label ladder: a renamed tab still wins, OSC titles are still tracked, local panes are untouched (#726).
110 lines
4.2 KiB
Plaintext
110 lines
4.2 KiB
Plaintext
---
|
|
title: "Settings"
|
|
description: "What lives in each section, and how the settings file works."
|
|
---
|
|
|
|
<kbd>⌘ ,</kbd> opens Settings. There is a search box at the top that matches
|
|
setting names *and* keywords, which is usually faster than remembering which
|
|
section something is in.
|
|
|
|
<Frame caption="Settings opens in its own window, sections down the left">
|
|
<img src="/images/settings.webp" alt="tty7 Settings" />
|
|
</Frame>
|
|
|
|
## The eight sections
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="General" icon="sliders">
|
|
Interface language, startup and layout restore, tray icon, default terminal,
|
|
command completion notifications, update preferences and proxy, and the
|
|
tty7 server.
|
|
</Card>
|
|
<Card title="Appearance" icon="palette" href="/customization/themes">
|
|
Theme and colors, interface and terminal fonts, cursor, background image,
|
|
transparency, and inactive panes.
|
|
</Card>
|
|
<Card title="Terminal" icon="terminal">
|
|
Shell and starting directory, prompt editor, completion and command history,
|
|
scrollback, scrolling, bell, and opening links and files.
|
|
</Card>
|
|
<Card title="Keyboard & Mouse" icon="keyboard" href="/customization/keybindings">
|
|
Keyboard shortcuts, Option as Meta, mouse behavior, selection, and clipboard.
|
|
</Card>
|
|
<Card title="Window & Tabs" icon="window-maximize">
|
|
Tab position and placement, sidebar grouping, diff previews, and what SSH
|
|
tabs are called.
|
|
</Card>
|
|
<Card title="SSH" icon="server" href="/remote/ssh">
|
|
Hosts, connection defaults, security, authentication, proxies, and forwarding.
|
|
</Card>
|
|
<Card title="Integrations" icon="robot" href="/agents/status">
|
|
AI agent hooks per machine and the tty7 command on PATH.
|
|
</Card>
|
|
<Card title="About" icon="circle-info" href="/reference/updates">
|
|
App information, version, manual update checks, and available updates.
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
## Search and edit
|
|
|
|
Search matches setting names, descriptions, English aliases, and configuration
|
|
keys such as `mouse_zoom_modifier`. Ordinary results are editable directly;
|
|
use the path above a result to open its category. SSH, theme editors, and
|
|
keyboard shortcuts have dedicated views.
|
|
|
|
Use **Modified only** to find settings that differ from their defaults. A
|
|
modified setting offers **Reset setting**; installation and maintenance actions
|
|
do not have a generic reset.
|
|
|
|
Ordinary controls save automatically. Text fields commit valid values on Enter
|
|
or when focus leaves the field. Custom theme edits are previewed until you save;
|
|
cancel restores the original theme. SSH profiles also use explicit saving.
|
|
Leaving an edited form offers save, discard, or continue editing.
|
|
|
|
## The settings file
|
|
|
|
Everything the Settings window writes goes to one file:
|
|
|
|
| | |
|
|
|---|---|
|
|
| macOS / Linux | `~/.config/tty7/config.json` |
|
|
| Windows | `%APPDATA%\tty7\config.json` |
|
|
|
|
The one exception is your saved SSH hosts, which live beside it in
|
|
`servers.json` — so `config.json` can be synced between machines without
|
|
carrying your servers. [servers.json →](/reference/configuration#ssh)
|
|
|
|
Set `TTY7_CONFIG_DIR` to point the whole directory — config, themes, state —
|
|
somewhere else.
|
|
|
|
You can edit the file by hand; a handful of options exist only there. See the
|
|
[configuration reference](/reference/configuration) for every key, its type, and
|
|
its default.
|
|
|
|
### How it handles mistakes
|
|
|
|
The file is written atomically, and read forgivingly:
|
|
|
|
- **A missing key** means the default — you only have to write what you change.
|
|
- **An out-of-range number** is clamped into its band, not rejected.
|
|
- **An unrecognised enum value** falls back to the default with a log line,
|
|
rather than failing the whole file.
|
|
- **An unparseable file** is not overwritten. tty7 starts on defaults, keeps a
|
|
copy at `config.json.corrupt`, and says so in the log.
|
|
|
|
<Note>
|
|
A UTF-8 BOM at the start of the file is tolerated, which matters if you edited
|
|
it in a Windows editor.
|
|
</Note>
|
|
|
|
## Language
|
|
|
|
**Settings → General → Language** switches the interface between English,
|
|
简体中文, and 日本語. The choice is explicit — the system language is never
|
|
inferred — and CLI output stays English regardless, so agent and script
|
|
integrations keep a stable surface.
|
|
|
|
```json
|
|
{ "gui_language": "zh-CN" }
|
|
```
|