Customize
Settings
Open the settings tab, edit settings.json, and the full list of settings.
Open Settings from the gear at the bottom of the Projects sidebar, or rexa: open settings in the command palette. Settings opens as a tab. ⌘ F searches every page at once.
Pages
| Page | Covers |
|---|---|
| General | Appearance and theme, sound, the settings file, floating terminal. |
| Agents | Launch and resume commands, the new-tab picker, comments. |
| Git | Diffs, sync and background fetch. |
| Editor | Editor display and behavior, markdown. |
| Terminal | Padding, copy on select, environment variables, run actions. |
| Files | The file tree. |
| Language servers | One switch per server. |
settings.json
Every setting lives in ~/.config/rexa/settings.json. Rexa applies edits to the file as soon as you save it. A key you leave out uses its default, and keys Rexa does not know are kept when it rewrites the file.
General → File has Open settings.json and Reset to defaults. Reset asks first.
{
"font_size": 14,
"theme": { "name": "One Dark" },
"editor": { "vim": true, "tab_size": 2 },
"git": { "autofetch": true },
"terminal": { "copy_on_select": true }
}Appearance
font_sizenumberdefault: 13.5
font_familystringdefault: 'JetBrains Mono'
font_weightnumberdefault: 400
theme.namestringdefault: 'Deep Space'
theme.pathstring
theme.overridesobject
focus_markerbooleandefault: true
status_bar.hiddenstring[]
rexa.resource.status_bar.orderstring[]
Sound
sound.enabledbooleandefault: true
sound.chimestringdefault: 'attention'
attention, glass, submarine, tink, or a path to a sound file.Agents and launching
agents.<id>.launch_commandstring
claude, codex, cursor, opencode, pi.agents.<id>.resume_commandstring
{session_id} is replaced.launch.defaultstringdefault: 'console'
console, browser, or an agent id.launch.orderstring[]
launch.hiddenstring[]
comments.target_ringbooleandefault: false
Editor
editor.vimbooleandefault: false
editor.tab_sizenumberdefault: 4
editor.soft_wrapbooleandefault: false
editor.markdown_soft_wrapbooleandefault: true
editor.line_numbersbooleandefault: true
editor.indent_guidesbooleandefault: true
editor.highlight_active_linebooleandefault: true
editor.render_whitespacebooleandefault: false
editor.syntaxbooleandefault: true
editor.multi_cursor_modifier'alt' | 'cmd'default: 'alt'
editor.inline_blamebooleandefault: true
editor.which_keybooleandefault: false
editor.gutter_widthnumberdefault: 64
markdown.outlinebooleandefault: false
markdown.diagram_scalenumberdefault: 1.0
Terminal
terminal.paddingnumberdefault: 0
terminal.copy_on_selectbooleandefault: false
terminal.envobject
run.mode'background' | 'reuse' | 'new'default: 'background'
floating.widthnumberdefault: 520
floating.heightnumberdefault: 320
floating.positionstringdefault: 'bottom-right'
top-left or center.floating.offsetXnumberdefault: 8
floating.offsetYnumberdefault: 24
Git
git.status_view'grouped' | 'list' | 'tree'default: 'grouped'
git.diff_layout_tab'split' | 'inline'default: 'split'
git.focus_first_changebooleandefault: true
git.collapse_unchangedbooleandefault: false
git.confirm_syncbooleandefault: true
git.rebase_when_syncbooleandefault: false
git.autofetchbooleandefault: false
git.autofetch_periodnumberdefault: 180
git.remote_statusbooleandefault: true
Files
files.respect_gitignorebooleandefault: true
files.git_statusbooleandefault: true
files.auto_foldbooleandefault: true
files.indent_guidesbooleandefault: true
files.sticky_headersbooleandefault: false
files.search_nested_worktreesbooleandefault: false
Language servers
lsp.enabled_serversstring[]
lsp.disabled_serversstring[]
lsp.serversobject
lsp.toolchainsobject
{ "node": "20.11.0" }.lsp.builtinbooleandefault: true
See Language servers.
Resources
resources.<kind> sets warning and critical budgets for the resource monitor.