Drop colour from the panel, and the message that said nothing
Two changes that turned out to be related. The chips painted their own red, amber and green. An indicator that picks its own colours competes with the shell's accents and stops following the theme, so the panel now draws everything in the panel's text colour and lets shape carry the state. Only alpha still varies, to push idle sessions back. That put real weight on the four shapes being distinguishable at 14 px, which is not something to guess at, so the drawing moved to lib/glyph.js -- free of St, Clutter and shell imports precisely so the glyphs can be rendered to a file and looked at. They were, and the first attempt was wrong twice: a disc filled to the ring's centreline reads smaller than the ring beside it, and the inner disc of "blocked" was too small to tell from a plain "working" ring. Radii are now matched at the outer edge and the inner disc sits at 0.55, both settled by comparing renders. Separately, hooking a live session showed the Notification that accompanies a permission prompt carries only "Claude needs your permission" -- no tool, no command -- and arrives identically when the session is putting a question to the user rather than asking to run something. The menu was giving that string the line, pushing out the tab and the path: strictly less information in more space. It is gone, and the comment claiming it "says what is about to run" is corrected. Recovering the real command means reading the tail of the transcript when the prompt fires; it is not in the event. The same finding settles how far the states can split. "Blocked" cannot be divided into "asking permission" and "asking a question" from this data.
This commit is contained in:
+13
-18
@@ -1,7 +1,10 @@
|
||||
/* State glyphs are drawn in the widget's inherited foreground colour, so state
|
||||
colours are set here as plain `color` and the drawing code stays
|
||||
theme-agnostic. The colour is set on the chip, so the dot and its label read
|
||||
as one object. */
|
||||
/* The panel stays monochrome: every glyph is drawn in the panel's own text
|
||||
colour, so it follows the theme instead of fighting it, and the shell's
|
||||
accent colours keep meaning what they mean. State is carried by shape, which
|
||||
also survives a monochrome theme and colour vision deficiency.
|
||||
|
||||
Only alpha varies, and only to push idle sessions back — nobody is waiting
|
||||
on those, so they should not compete with the ones that need an answer. */
|
||||
|
||||
.ccs-panel-box {
|
||||
spacing: 10px;
|
||||
@@ -14,6 +17,12 @@
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
/* Glyph is drawn in code (St.DrawingArea) using the panel text colour. */
|
||||
.ccs-dot {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
.ccs-chip-label {
|
||||
font-size: 0.9em;
|
||||
font-weight: bold;
|
||||
@@ -28,20 +37,6 @@
|
||||
font-feature-settings: "tnum";
|
||||
}
|
||||
|
||||
.ccs-blocked {
|
||||
color: #e01b24;
|
||||
}
|
||||
|
||||
.ccs-waiting {
|
||||
color: #e5a50a;
|
||||
}
|
||||
|
||||
.ccs-busy {
|
||||
color: #33d17a;
|
||||
}
|
||||
|
||||
/* Idle keeps the panel's own colour and just recedes: a session nobody is
|
||||
waiting on should not compete with the ones that need an answer. */
|
||||
.ccs-idle {
|
||||
opacity: 0.55;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user