Press ; to open the settings. Every change applies to the running app, and
stage writes it to the configuration file for you.
This is the front door. The file is the escape hatch behind it, not the other way round.
Four sections
Section titled “Four sections”The list on the left holds them. Each row shows the number that goes to it.
| Section | Holds |
|---|---|
| Theme | The colors, and the light and dark pair |
| Options | The toggles and the values |
| Keys | Every binding, and the key it uses |
| About | What stage found on this machine |
Press 1, 2, 3, or 4 to go straight to a section. Press tab for the
next one. Press ] or [ for the same move. Press esc to close the
settings.
Options
Section titled “Options”Move to a row with j or k. Press h or l to change the value. Only the
selected row shows its value in ‹ ›, because the keys act on that row alone.
The rows come in four groups.
| Group | Row | What it changes |
|---|---|---|
| Diff | Diff layout | Side by side, stacked, or by the width of the pane |
| Diff | Wrap lines | Long lines wrap instead of being cut |
| Diff | Diff context | The unchanged lines around each hunk |
| Diff | Rename similarity | How alike two files must be to count as a rename |
| Interface | Sidebar width | The share of the terminal the panels take |
| Interface | Sidebar side | The side of the terminal the panels sit on |
| Interface | File tree | The files panel as a tree instead of a flat list |
| Interface | Commit graph | The lanes beside the commits |
| Interface | Command log | The strip that shows the git commands |
| Interface | Ignored files | Files git ignores appear in the explorer |
| Interface | Transparency | stage stops painting its own background |
| Interface | Scroll speed | The rows one j scrolls in the diff |
| Git | Auto fetch | A fetch runs on a timer |
| Git | Pull mode | How pull brings work in |
| Git | Branch sort | The order of the local branches |
| Git | Remote branch sort | The order of the remote branches |
| Behavior | Confirm on quit | q asks first |
| Behavior | Code navigation | Go-to-definition and hover |
*.- Press
/and type part of the binding name. - Press
enteron the binding. - Press
enteragain. stage waits for one key. - Press the key you want.
The row then shows your key and a *.
The filter also matches the words stage uses for a binding. Type rebase to
find op.menu.
Two answers are worth knowing:
- A key that the binding uses by default removes your override, and the
*goes away. stage does that rather than write an override that quietly loses the other keys of that binding. - A key that has no spelling in the configuration file cannot be recorded. stage
says so and keeps waiting.
esccancels.
If the key is already bound somewhere else, stage still takes it, and the notice names the other bindings.
The About section answers “what does stage think it has”:
| Row | Answer |
|---|---|
| version | The version you are running |
| github token | Where the forge token came from |
| fff | Whether the search engine loaded |
| code nav | Whether language servers are available |
| agent host | Which terminal stage detected |
| config | The path of the configuration file |
| identity (repo) | user.name and user.email for this repository |
| identity (global) | The same, for every repository |
Both identity rows are editable here, which is the fastest answer to a commit that git refuses.
Read this tab first when a feature is missing. It separates “this machine does not have it” from “you turned it off”.
The file
Section titled “The file”Press e to open the configuration file in $EDITOR. Read
Configuration for what it holds.