Skip to main content

Configuration File Location

Fresh stores its configuration in a JSON file located at:
The configuration file controls all aspects of the editor including themes, keybindings, editor behavior, language settings, and LSP servers.

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:
1

Open Settings

Press Ctrl+, or use the command palette (Ctrl+P) and type >settings
2

Browse Settings

Settings are organized by category: Display, Editing, LSP, Performance, etc.
3

Edit Values

Click on any setting to modify it. Changes are saved automatically to config.json

Configuration Categories

Top-Level Settings

Editor Configuration

The editor object controls editing behavior, display settings, LSP features, and performance:
See Settings Reference for all available options.

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

LSP Server Configuration

Configure language servers:

LSP Configuration Options

Reloading Configuration

Fresh automatically reloads config.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 config in the command palette

Configuration Schema

Fresh provides JSON schema validation for config.json. Enable schema validation in your editor:
config.json

Migration

Fresh supports configuration migrations through the version field:
Configurations without a version field are treated as version 0.

Example: Complete Configuration

Next Steps

Settings Reference

Complete list of all editor settings

Keyboard Configuration

Customize keybindings and keymaps

Theme System

Built-in themes and color customization