Files
tty7/docs/customization/settings.mdx
T
l0ng-ai fc2dc49309 feat(settings): rebuild the settings window after the v4 design
Rewrites the settings page to the Settings design: a sidebar with search,
per-page modified counts and a "Modified only" switch; quiet grouped rows
with an inline Reset; and the design's own controls (switch, segmented,
stepper, slider, text field, dropdown and popover menus) in a new
`settings/kit.rs`.

- Appearance: Light / Dark / System cards and a theme menu per slot with a
  live preview, search, keyboard navigation and swatches. Font menus are
  searchable and draw each family in itself.
- Keyboard shortcuts: back link, search, "Restore N changed", Default/tmux.
  A recorded chord another action already has now asks Replace / Cancel
  instead of taking it over silently.
- SSH: one column of recent hosts, "Show all" by source, search; details and
  a six-field editor open in place. Auth, jump/proxy, forwarding and
  advanced sections are no longer shown; saved values are kept.
- Integrations: machine menu, agent search, install summary, agent icons,
  and a per-row menu (Reinstall, Reveal hook file, Uninstall).
- General gains startup and restore; updates and the server move to About.
- Search results group live rows by page; a Modified view lists changes.

The page code moves out of settings.rs into src/ui/settings/.
2026-09-26 22:09:31 +08:00

110 lines
4.1 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, default terminal, startup window, size and layout
restore, tray icon, and command completion notifications.
</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, and diff previews.
</Card>
<Card title="SSH" icon="server" href="/remote/ssh">
Recent and saved hosts, each opened and edited in place, and host key
security.
</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">
Version and update checks, update preferences and proxy, the settings
file, and the tty7 server.
</Card>
</CardGroup>
## Search and edit
Search matches setting names, descriptions, English aliases, and configuration
keys such as `mouse_zoom_modifier`. Results are grouped by section and are
editable directly; click a section name to open it. Press ⌘F (Ctrl+F) to jump
to the search box.
Use **Modified only** to find settings that differ from their defaults. A
modified setting offers **Reset** beside its name; 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 hosts also use explicit saving.
Recording a keyboard shortcut that another action already uses asks before
taking it over: **Replace** moves the shortcut, **Cancel** leaves both as they
were.
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` |
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" }
```