You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**⚡ Powerline flex mode** - Flex separators now work in Powerline mode, letting Powerline status lines right-align content or absorb available width.
55
+
-**🌗 Per-widget dim styling** - The color editor can dim an entire widget or only parenthesized text, with reset and clear-all actions covering dim state.
56
+
-**🧯 Safer settings recovery** - Invalid `settings.json` files are left untouched, defaults render in memory, and the status line shows an invalid-config warning.
57
+
50
58
### v2.2.21 - Cache widgets, compaction details, extra usage currency, and package fixes
51
59
52
60
-**🔣 Custom widget glyphs** - Git and JJ symbol widgets can override or suppress their built-in glyphs from the TUI.
Copy file name to clipboardExpand all lines: docs/DEVELOPMENT.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -57,6 +57,8 @@ bun run docs
57
57
58
58
If you use a custom Claude config location, set `CLAUDE_CONFIG_DIR` and ccstatusline will read/write that path instead of `~/.claude`.
59
59
60
+
Settings saves are atomic and preserve symlinked `settings.json` files by writing through the resolved target. Invalid or unreadable settings are never overwritten during load; `loadSettings()` returns in-memory defaults, records `getConfigLoadError()`, and renderer paths surface that state with an invalid-config warning badge.
61
+
60
62
Usage-fetch tests spawn subprocess probes. Keep those probes sandboxed by setting `HOME`, `USERPROFILE`, `CLAUDE_CONFIG_DIR`, and proxy variables explicitly so tests cannot read or write a developer's live ccstatusline usage cache.
Copy file name to clipboardExpand all lines: docs/USAGE.md
+17-1Lines changed: 17 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,7 +52,7 @@ bun run example
52
52
53
53
-**Current Working Dir** / **Terminal Width** / **Memory Usage** - Show the current working directory, detected terminal width, and system memory usage.
54
54
-**Custom Text** / **Custom Symbol** / **Custom Command** / **Link** - Add user-defined text, a single symbol or emoji, custom command output, or a clickable OSC 8 hyperlink.
55
-
-**Separator** / **Flex Separator** - Add a manual divider or a width-filling flexible spacer (available when Powerline mode is off).
55
+
-**Separator** / **Flex Separator** - Add a manual divider or a width-filling flexible spacer. Manual separators are disabled in Powerline mode, but flex separators still work there as layout spacers.
56
56
57
57
## Terminal Width Options
58
58
@@ -61,6 +61,8 @@ These settings affect where long lines are truncated, and where right-alignment
61
61
-**Full width minus 40** - Reserves 40 characters for auto-compact message to prevent wrapping (default)
62
62
-**Full width until compact** - Dynamically switches between full width and minus 40 based on context percentage threshold (configurable, default 60%)
63
63
64
+
Flex separators expand against the detected width in both regular and Powerline rendering. If width detection is unavailable, they render like normal separators until a terminal width is available.
65
+
64
66
If ccstatusline cannot detect your terminal width, set `CCSTATUSLINE_WIDTH` to a positive integer to override probing:
65
67
66
68
```bash
@@ -106,6 +108,16 @@ Configure global formatting preferences that apply to all widgets:
106
108
107
109
> ⚠️ **VSCode Users:** If colors appear incorrect in the VSCode integrated terminal, the "Terminal › Integrated: Minimum Contrast Ratio" (`terminal.integrated.minimumContrastRatio`) setting is forcing a minimum contrast between foreground and background colors. You can adjust this setting to 1 to disable the contrast enforcement, or use a standalone terminal for accurate colors.
108
110
111
+
## Widget Styling
112
+
113
+
The color editor can adjust foreground color, background color, bold, dim, and gradients per widget:
114
+
115
+
- Use `←` / `→` to cycle the selected foreground or background color.
116
+
- Press `f` to switch between foreground and background editing.
117
+
- Press `b` to toggle bold.
118
+
- Press `d` to cycle dim styling: off → whole widget → parenthesized text only → off.
119
+
- Press `r` to reset styling on the selected widget, or `c` to clear styling on every widget in the line.
120
+
109
121
## Gradient Colors
110
122
111
123
A foreground color can be a multi-stop **gradient** instead of a solid. Colors interpolate in OKLab for perceptually even blends. A gradient value takes one of three forms, all prefixed `gradient:`:
@@ -125,6 +137,10 @@ Gradients self-degrade where they can't render: at Basic or No Color levels, gra
125
137
126
138
When ccstatusline is installed in Claude Code, the main menu includes **Configure Status Line**. Claude Code versions >=2.1.97 support `statusLine.refreshInterval`; ccstatusline can set it to `1-60` seconds, defaults fresh supported installs to `10` seconds, and removes the setting when the input is left empty.
127
139
140
+
## Settings Recovery
141
+
142
+
If `settings.json` is unreadable or invalid, ccstatusline leaves the file unchanged, renders with built-in defaults for that run, and prepends an invalid-config warning badge to the status line. Fix the JSON or open the TUI and save intentionally to replace it.
143
+
128
144
## Block Timer Widget
129
145
130
146
The Block Timer widget helps you track your progress through Claude Code's 5-hour conversation blocks:
0 commit comments