# SettingsUI
[](https://packagecontrol.io/packages/SettingsUI)
[](https://github.com/mfuentesg/settings-ui/releases)
[](LICENSE)
A visual settings panel for Sublime Text 4 — browse and edit `Preferences.sublime-settings` through a two-pane UI instead of editing raw JSON.
---
## Features
- **Two-pane layout** — category navigation on the left, settings on the right
- **Grouped sections** — Appearance, Editor, Files, Search, and more
- **Smart widgets** — toggles for booleans, radio buttons for enums, inline number editing, native pickers for color schemes, themes, and fonts
- **Live search** — filter across all settings instantly
- **Schema generator** — syncs the UI with new ST settings automatically via a single command
- **Auto-reload** — re-renders the panel whenever you save a plugin file during development
- **View Raw Config** — jump straight to `Preferences.sublime-settings` from the UI
## Installation
### Package Control (recommended)
1. Open the command palette (`Cmd+Shift+P` / `Ctrl+Shift+P`)
2. Run **Package Control: Install Package**
3. Search for **SettingsUI**
### Manual
Clone this repo into your Packages directory:
```
# macOS
~/Library/Application Support/Sublime Text/Packages/SettingsUI/
# Windows
%APPDATA%\Sublime Text\Packages\SettingsUI\
# Linux
~/.config/sublime-text/Packages/SettingsUI/
```
## Usage
Open the command palette and run **Preferences: Settings UI**.
A keyboard shortcut is included as an example keymap (not active by default). To enable it, copy the binding for your platform from `Example.sublime-keymap` (**Preferences → Package Settings → SettingsUI → Key Bindings**) into your own keymap:
| Platform | Shortcut |
|----------|----------|
| macOS | `Cmd+,` |
| Windows / Linux | `Ctrl+,` |
## Settings
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| `open_on_startup` | boolean | `false` | Open the settings panel automatically when Sublime Text starts |
Edit via **Preferences → Package Settings → SettingsUI → Settings**.
## Commands
| Command | Description |
|---------|-------------|
| **Preferences: Settings UI** | Open the visual settings panel |
| **Preferences: SettingsUI Settings** | Open the plugin settings file |
| **Settings UI: Generate Schema** | Regenerate the schema from the current ST defaults |
## Requirements
Sublime Text 4 (build 4000+).
## Development
### Running tests
Pure-logic tests (`tests/`) — no Sublime Text dependency:
```
uv run pytest tests/ -v
```
Real-ST regression tests (`tests_st/`) run against real, headless Sublime Text via
Docker — no local Sublime Text install or license required. This tier primarily covers
window-lifecycle regressions (open/close crashes) that a hand-rolled `sublime` model
can't faithfully reproduce; it's a smoke suite, not a replacement for `tests/`, and
every test in it drives the plugin through real commands and real view/window
mutations rather than calling listener classes directly:
```
./tools/run-st-tests-docker.sh
```
Run a single file with `./tools/run-st-tests-docker.sh --file tests_st/.py`.
The first run clones [`SublimeText/UnitTesting`](https://github.com/SublimeText/UnitTesting)
into a gitignored `.cache/` directory and builds a local Docker image; later runs reuse
a cached Docker volume and are much faster. CI runs the same `tests_st/` suite via
UnitTesting's official GitHub Action instead of Docker — both are entry points to
identical test content.
## License
MIT — see [LICENSE](LICENSE).