Skip to content

Status Bar

The status bar sits at the top or bottom of your terminal window, showing useful context at a glance — your working directory, git branch, the time — without leaving the terminal.

It also doubles as a tab strip, displaying all open tabs with clickable titles for quick switching.

[statusbar]
enabled = true
position = "bottom" # "top" or "bottom"
OptionTypeDefaultDescription
enabledbooleanfalseShow the status bar
positionstring"bottom""top" or "bottom"
backgroundstringBackground color (#RRGGBB). Omit for default.
background_opacityinteger0Background opacity, 0255

Widgets are configured as sub-tables under [statusbar]. Each widget has a side (left or right) and an optional interval (refresh rate in seconds, default 5).

Shows the current directory, optionally truncated.

[statusbar.cwd]
side = "left"
truncate = 2 # show only the last 2 path components

Shows the current branch name and working tree status — staged, modified, untracked, conflicts, stash count, and line statistics.

[statusbar.git]
side = "left"

The git widget reacts to directory changes automatically — when you cd into a different repo, it updates immediately.

Every field in the git widget has a configurable icon:

OptionDefaultDescription
icon_branch"⎇ "Branch name prefix
icon_hashprefix"#"Detached HEAD commit hash prefix
icon_ahead"↑·"Commits ahead of remote
icon_behind"↓·"Commits behind remote
icon_staged"● "Staged changes
icon_modified"✚ "Modified files
icon_untracked"… "Untracked files
icon_conflict"✖ "Merge conflicts
icon_stashed"⚑ "Stashed items
icon_clean" ✔"Clean working tree
icon_insertions"+"Line insertions
icon_deletions"-"Line deletions

Each field can also have a custom color (#RRGGBB). When omitted, the theme’s ANSI palette is used.

OptionDescription
color_stagedStaged changes color
color_modifiedModified files color
color_untrackedUntracked files color
color_conflictConflicts color
color_stashedStash count color
color_aheadAhead count color
color_behindBehind count color
color_cleanClean indicator color
color_insertionsInsertions count color
color_deletionsDeletions count color
[statusbar.git]
side = "left"
icon_branch = " "
icon_clean = ""
color_staged = "#a6e3a1"
color_conflict = "#f38ba8"

Displays the current time.

[statusbar.time]
side = "right"
24h = true # use 24-hour format

You can add your own widgets by placing executable scripts in ~/.config/attyx/statusbar/. Each script becomes a widget whose name matches the filename (without extension).

For example, create ~/.config/attyx/statusbar/battery:

#!/bin/bash
pmset -g batt | grep -Eo "\d+%" | head -1

Then reference it in your config:

[statusbar.battery]
side = "right"
interval = 30

The script’s stdout becomes the widget text. It re-runs every interval seconds.

Every widget (built-in or custom) supports these options:

OptionTypeDefaultDescription
sidestring"left""left" or "right"
intervalinteger5Refresh interval in seconds

Any additional keys in a widget’s table are passed as parameters to the widget. For built-in widgets, these are documented per-widget above (e.g. truncate for cwd, 24h for time).

[statusbar]
enabled = true
position = "bottom"
[statusbar.cwd]
side = "left"
truncate = 2
[statusbar.git]
side = "left"
[statusbar.time]
side = "right"
24h = true
interval = 1