Configuration#

This page lists the options that control the folded strip and the maximized pane cues. They live in [pane.folded] and [pane.maximized] of ~/.config/nash/nash.toml. Nash reloads the file when you save it.

An empty string ("") means "use the default". The bundled file leaves most colors empty for that reason.

To change keys, see Keys and Commands.

Folded strip#

These options live in [pane.folded] in nash.toml.

[pane.folded] color = "" inactive_color = "" text_color = "" inactive_text_color = "" font_size = 10 show_cwd = true thickness = 1.0
OptionTypeShipped valueEffect
colorcolor"": your accent, at 55% opacityFill of the strip that has focus. It draws over the pane background.
inactive_colorcolor"": the active color, dimmedFill of every other strip.
text_colorcolor"": your foreground colorTitle color on the strip that has focus.
inactive_text_colorcolor"": the active title, dimmedTitle color on every other strip.
font_sizenumber10Title size in points. Nash draws it in the title font, not the terminal font.
show_cwdbooleantrueAdds the last part of the pane's working directory after the title.
thicknessnumber1.0Thickness of the colored band, in cell heights.

Notes on the defaults:

  • The "" for text_color resolves to the foreground option in your [ui] table if you set one. Otherwise it resolves to the foreground color of your theme.
  • Nash uses these defaults when [pane.folded] is absent. Add the table to override them.
  • Colors accept the usual forms, for example "#123456" or "rgba(255, 100, 48, 55%)".

The focus fill#

A strip is too thin for an outline. A strip takes no active pane highlight and no pane switch animation. The fill carries the focus cue instead: the strip with focus uses color, and every other strip uses inactive_color.

If you leave the two inactive options empty, Nash derives them from the active pair. It scales the red, green, and blue channels to 60% and keeps the opacity. The strip keeps its hue, and only its brightness shows which strip has focus. Set a color to take over completely:

[pane.folded] inactive_color = "rgba(0, 0, 0, 45%)" inactive_text_color = "#949494"

Thickness#

A folded pane keeps whole text cells: one row in a column of stacked panes, and two columns in a row of side-by-side panes. Nash draws the band inside those cells, thickness cell heights thick, and centers it. The pane background shows on both sides.

At 1.0, a strip is exactly one cell high in both directions, so they look alike. A larger value fills more of the freed space. A smaller value makes a thinner band with a wider gutter. The band never grows beyond the cells the strip owns, so a very large value simply fills them.

[pane.folded] # A chunkier band. thickness = 1.4

Title and folder#

A strip shows a fold icon (or an agent status icon), the pane title, and, if show_cwd is on, · folder. Nash cuts text that does not fit and ends it with …. Nash does not show the folder for a remote directory, or when it equals the title. A lower font_size fits more of the title. In a strip down a column, the turned title is centered on the band, and a large size can overhang it a little.

Agent status#

Since Nash 0.11.4, an agent's status icon replaces the fold glyph: a working spinner, paused solid circle, completed check circle, or failed alert circle. The icon follows the label in both orientations and uses font_size under [pane.folded] (the Lua option is folded_pane_font_size). It stays visible when the title is shortened, provided there is room for the icon.

Status colors come from working_color, paused_color, finished_color, and failed_color under [agent.status], shared with the tab indicator. Strip fill and title colors still show focus. In a focused window, a working spinner animates even with the tab bar hidden or another pane's status taking precedence in the tab.

Folded strips deliberately suppress corner badges. Setting indicator = "none" under [agent.status] disables those badges, not the strip or tab icons. The strip has no timestamp; unfolding shows the ordinary badge with its completion time. Completed and failed icons remain until input reaches the pane, not merely when you select, fold, or unfold it. With no status, the ordinary fold glyph returns.

Maximized pane cues#

A maximized pane fills the tab. These options mark that state. See The Pane Size Ladder.

[pane.maximized] indicator = ["badge", "corner"] color = "" badge_text_color = "" badge_duration = '1.5s' size = '1.2pt'
OptionTypeDefault in nash.tomlEffect
indicatorname or list of names["badge", "corner"]Which cues mark a maximized pane.
colorcolor"": your accent colorFill of the marker and of the badge background.
badge_text_colorcolor"": near-white or near-blackBadge text. Nash picks the one that reads on the fill.
badge_durationduration'1.5s'How long the badge stays. See below.
sizesize'1.2pt'Size of the marker. Markers draw at 10 times this size.

Cue names#

indicator takes "badge", a shape, or both. The badge and one shape combine.

NameCue
"badge"The badge that fades out after the toggle.
top, bottom, gutter, left, right, box, square, circle, cornerA shape that stays while the pane is maximized.
"none" or []No cue.

These forms are equal:

indicator = ["badge", "corner"] indicator = "badge, corner" indicator = "badge corner"

Prefer the list form. Nash reports a misspelled entry in a list on its own. Only one shape is drawn, so a list with two shapes is a configuration error.

Badge duration#

badge_duration takes a number of milliseconds or a string such as '1.5s'. The badge holds at full strength for the first half of that time and fades out over the second half.

  • 0 turns the badge off.
  • A negative value keeps the badge on screen for as long as the pane is maximized.

Marker size#

Shapes use the same size rules as size under [pane.highlight]. A bar or border takes the size as its thickness. The markers square, circle, and corner multiply it by 10, so the default '1.2pt' draws a 12-point corner triangle. Use points rather than pixels, so the marker looks the same on every screen density.