Configuration File Location
Fresh stores its configuration in a JSON file located at:Configuration Structure
The configuration file is organized into these main sections:Editor Settings
Tab size, line numbers, syntax highlighting, auto-save, and display options
Keyboard & Keymaps
Keybinding styles (default, emacs, vscode, macos) and custom key mappings
Themes
Built-in themes and color customization
Language Settings
Per-language configuration for formatters, LSP servers, and indentation
Example Configuration
Here’s a minimal configuration file:config.json
Opening the Settings Editor
Fresh provides a visual settings editor for easy configuration:Configuration Categories
Top-Level Settings
| Setting | Type | Default | Description |
|---|---|---|---|
theme | string | "high-contrast" | Active color theme name |
locale | string | null | null | UI language (null = auto-detect from environment) |
check_for_updates | boolean | true | Check for new versions on startup |
active_keybinding_map | string | "default" (macOS: "macos") | Active keybinding map |
Editor Configuration
Theeditor object controls editing behavior, display settings, LSP features, and performance:
File Explorer
Configure the file tree sidebar:Clipboard
Control which clipboard methods are used:If you experience clipboard hangs in certain terminals (like PuTTY), disable
use_osc52.Terminal
Configure integrated terminal behavior:Language-Specific Configuration
Override settings per language:Language Configuration Options
| Option | Type | Description |
|---|---|---|
extensions | string[] | File extensions (e.g., ["rs"]) |
filenames | string[] | Exact filename matches (e.g., ["Makefile"]) |
grammar | string | Tree-sitter grammar name |
comment_prefix | string | Comment syntax (e.g., "//") |
tab_size | number | Spaces per tab (overrides global) |
use_tabs | boolean | Insert tab characters instead of spaces |
auto_indent | boolean | Auto-indent new lines |
formatter | object | Formatter configuration |
format_on_save | boolean | Run formatter on save |
LSP Server Configuration
Configure language servers:LSP Configuration Options
| Option | Type | Description |
|---|---|---|
command | string | LSP server executable |
args | string[] | Command-line arguments |
enabled | boolean | Enable this language server |
auto_start | boolean | Start server automatically when opening files |
initialization_options | object | Server-specific initialization options |
process_limits | object | Memory and CPU limits |
Reloading Configuration
Fresh automatically reloadsconfig.json when it changes. You can also:
- Restart the editor: Changes take effect immediately
- Use the settings UI: Changes are applied in real-time
- Reload manually:
>reload configin the command palette
Configuration Schema
Fresh provides JSON schema validation forconfig.json. Enable schema validation in your editor:
config.json
Migration
Fresh supports configuration migrations through theversion field:
version field are treated as version 0.
Example: Complete Configuration
View complete config.example.json
View complete config.example.json
Next Steps
Settings Reference
Complete list of all editor settings
Keyboard Configuration
Customize keybindings and keymaps
Theme System
Built-in themes and color customization