Files
dots/common/.config/claude/StatusBar.md
T
coja a700e23e0a [Sync] adopt unified stow layout from the private repo
Mirrors the private dots tree at 900bdda: one shared base plus per-host
overlays, replacing the old flat .config/ layout (last synced 2026-06-28).

- packages: common/ gui/ wm/ lw/ fl/ + install.sh and bin/ tooling (dotsync,
  reconcile-hyde.sh)
- new README (layout, deploy order, HyDE dependency), plus ToDo.md and
  HYDE-UPDATE.md
- current HyDE waybar rig (layouts/, cava), pi agent extensions, claude/
  config, tmux, presenterm, aichat roles
- drops stale duplicates and generated cruft that should never have been
  tracked: the second top-level .pi/ copy, btop.log, zellij config.kdl.bak,
  fish_variables, nvim codecompanion.lua
- .pi/agent/auth.json is gitignored now; auth.json.example ships instead
- fl/ and wm/ hypr themes/ stay untracked (HyDE-generated per machine, per
  the root .gitignore)
2026-08-12 22:50:18 +02:00

4.1 KiB
Raw Blame History

Status line (statusline.py)

The custom Claude Code status line, ordered work info (left) → system info (right), segments joined by a light-gray . It's responsive: always a single line — if the rendered width would exceed the terminal ($COLUMNS, which Claude Code re-exports on resize), trailing (lowest-priority) segments are dropped from the right until it fits.

Wide — everything:

📁 ~/.dots │ 🌿 .dots main* │ 🤖 Opus 4.8 (1M) · xhigh │ 📝 84% (843k) │ 📊 34% 2h54m │ 💰 $0.40 $12.00/h │ 💾 81%

Narrow — trailing segments trimmed:

📁 ~/.dots │ 🌿 .dots main* │ 🤖 Opus 4.8 (1M) · xhigh │ 📝 84% (843k) │ 📊 34% 2h54m │ 💰 $0.40 $12.00/h

Every segment is defensive: if its data is missing or a command fails, the segment is simply omitted (the bar never crashes the UI). Secondary detail (the parts in light gray) is supplementary to the main colored value.

Live segments

Segment Shows Notes
Vim mode [I]/[N]/[V] editor mode only with editorMode: vim; pair with hideVimModeIndicator: true so the built-in one doesn't duplicate it
📁 Directory Current working dir, with ~ for home cyan
🌿 Git repo branch + * if dirty + ↑N/↓N ahead/behind upstream repo = magenta; branch = green when clean, yellow + red * when dirty; cyan, yellow. Omitted outside a repo
🤖 Model Active model display name + · effort level (low/medium/high/xhigh) name = blue, effort = light gray; effort omitted for models without the param
📝 Context % of context window used + (Nk) tokens window = 1M for [1m] models, else 200k. Adds a red ⚠compact at ≥80%
📊 5h usage % of the 5-hour rolling limit used + time until it resets from rate_limits.five_hour; Pro/Max only, and absent until the first API response of a session
💰 Cost $ session cost so far + $/h burn rate burn rate shown once the session exceeds ~30s
💾 Disk % used of the filesystem at the cwd from statvfs

Colour legend

Most numbers are green / yellow / red by threshold — green = healthy, red = needs attention. Light gray = secondary detail. Thresholds (green < … < yellow < … ≤ red):

Segment green yellow red
Context < 50% 5080% ≥ 80% (⚠compact)
5h usage < 50% 5080% ≥ 80%
Disk < 75% 7590% ≥ 90%

Light gray is \033[37m; dimming (\033[2m) is disabled because it blended the gray detail text into dark terminal backgrounds. To go brighter, set "gray" to \033[97m (bright white) in the C table near the top of statusline.py.

Optional segments (defined but not shown)

These functions exist in statusline.py but aren't in the output. Enable one by adding it to the work or system list in main():

RAM/CPU/temp were retired 2026-07-26: the status line only refreshes on message events, so system metrics sat visibly stale between turns — the tmux status bar (tmux/scripts/) owns live system metrics now.

Function Shows
🧠 ram_segment % used + used/totalG from /proc/meminfo (green <70% / yellow / red ≥85%)
🖥️ cpu_segment % busy (diffed /proc/stat snapshot) + loadavg + cores (green <60% / red ≥85%)
🌡️ temp_segment hottest CPU thermal zone °C (green <60 / red ≥80)
✏️ velocity_segment +added/-removed lines this session + lines/min
♻️ cache_segment prompt-cache hit % (higher is better)
⚙️ api_segment share of wall-clock time spent in API/inference
version_segment Claude Code version (vX.Y.Z)
🎨 style_segment active output-style name

Where it lives

statusline.py is tracked in this repo and symlinked to ~/.claude/statusline.py; settings.json runs it via statusLine (/usr/bin/env python3 ~/.claude/statusline.py). Edits take effect on the next status refresh.