# Settings

Tensormorph settings live in two scopes that layer together, the same split VS Code uses for user vs. workspace settings:

-   **User settings** - apply everywhere, across every project you open (your preferred colormap, your keymap preset, your Compute panel default).
-   **Project settings** - apply only within a specific project, stored alongside it and shared with anyone else who opens it (a quantization-scheme convention, a required `ModelAdapter` version, a team's chosen diverging-color palette override).

Project settings override user settings wherever both define the same key, so a project can enforce a convention (for example, a specific NaN-detection threshold used in CI) without every contributor having to opt in manually.

## Editing settings

Like keybindings, settings have both a graphical editor and an underlying JSON file, editing the same store:

-   The **Settings editor** (**Preferences → Settings**) lists every setting with a search box, grouped by area, with inline descriptions - the same discoverability model as the Keyboard Shortcuts editor.
-   The underlying JSON file can be edited directly for bulk changes or to keep settings under version control; opening it is available from the Settings editor's title bar, mirroring how `keybindings.json` is reached from the Keyboard Shortcuts editor.

Both views edit the same underlying value - there's no separate "advanced" settings store hidden behind the JSON file, just a more direct way to edit the same data.

## Where files live

| Scope            | Typical location                                                                                                                                                                                     |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| User settings    | Your user config directory, alongside your user keybindings file                                                                                                                                     |
| Project settings | A `.tmproj`-adjacent settings file at the project root (see [File Formats](/docs/reference/file-formats)), intended to be checked into the project alongside the checkpoint references it configures |

## Common settings areas

-   **Compute** - default backend preference (mirrors the Compute panel; see [GPU Backend Compatibility](/docs/reference/gpu-backend-compatibility)).
-   **Appearance** - diverging-color palette (cyan/red/dark by default), colormap choices for magnitude and other shading modes.
-   **Keymap** - active keymap preset (see [Keyboard Shortcuts](/docs/reference/keyboard-shortcuts)).
-   **Indexing** - whether `tmorph index` generates LOD pyramids by default (`--pyramids`), and where generated `.tmidx`/`.tmtiles` files are cached.

## Related resources

-   [File Formats](/docs/reference/file-formats) - the `.tmproj` project file settings live alongside.
-   [Keyboard Shortcuts](/docs/reference/keyboard-shortcuts) - the keybindings file, edited the same way as settings.
-   [GPU Backend Compatibility](/docs/reference/gpu-backend-compatibility) - the Compute panel setting in more detail.
