aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authoruser <user@clank>2026-09-22 15:24:16 +0200
committeruser <user@clank>2026-09-22 15:24:16 +0200
commitecdc8d0c335c35a74b46ddb22773e8ef4b222891 (patch)
treec2595e7522364eaaacd58f6c3a45a238b9e9fafa /docs
parentosc 5577: `busy`, and a sidebar that shows it (busy_mark) (diff)
downloadslosh-ecdc8d0c335c35a74b46ddb22773e8ef4b222891.tar.gz
slosh-ecdc8d0c335c35a74b46ddb22773e8ef4b222891.tar.xz
slosh-ecdc8d0c335c35a74b46ddb22773e8ef4b222891.zip
sidebar: room for the spinner, by default (tab_bar_padding 0 1 0 2)
`│⠋bash: cd` -- the mark landed in the one column of left padding there was, so it ended up welded to the first letter of the status. The rule was "the mark takes a column the padding was already holding blank", which is right about not reflowing and wrong about there being enough of it. So the mark takes the *first* column of the indent and whatever is left over is the air after it, and the default indent is two columns instead of one. One column is still available -- `tab_bar_padding 0 1` -- and now means the squashed look on purpose rather than by default; three gives two spaces; zero still puts everything against the frame. Nothing reflows when a program starts or stops working, which was the point of taking a column that was already blank. The labels and the tab numbers move with it, because the indent is the strip's and not the status's -- a status still starts in the column its tab's name starts in, which is the rule the leading space existed for in the first place.
Diffstat (limited to 'docs')
-rw-r--r--docs/panes.md20
-rw-r--r--docs/slosh.514
2 files changed, 23 insertions, 11 deletions
diff --git a/docs/panes.md b/docs/panes.md
index 0af41ce..d760b82 100644
--- a/docs/panes.md
+++ b/docs/panes.md
@@ -56,7 +56,7 @@ The strip of tabs sits along the top by default. It does not have to:
tab_bar_side "left" // or "right"; "top" is the default
tab_bar_width 18 // columns the sidebar takes
tab_bar_index "right" // the tab number at the far end; "prefix" is 1:name
-tab_bar_padding 0 1 // air inside it, in cells: rows, then columns
+tab_bar_padding 0 1 0 2 // air inside it, in cells: top right bottom left
tab_bar_pad 0 // ...or just the top of that, the older name
tab_gap 0 // ...and between one tab and the next
tab_bar_chrome true // frame it like a pane
@@ -100,10 +100,11 @@ be able to cost you a tab you can click.
**A pane can say its status is still happening**, and the sidebar says so back:
`busy` over OSC 5577 turns that row `tab_status_busy` and puts a spinner
-(`busy_mark`) in the column the padding holds blank — so `make test` running and
+(`busy_mark`) in the first column of the indent — so `make test` running and
`make test` finished, which are the same words, stop looking the same from
-another tab. Nothing moves when it flips, since the mark takes a column that
-was already there; `tab_bar_padding 0 2` gives it a gutter of its own. One frame
+another tab. Nothing moves when it flips, since the mark takes a column the
+padding was already holding blank, and the rest of that padding is the space
+after it. One frame
in `busy_mark` is a static mark and costs nothing, several make it turn, and the
session only keeps a frame clock while such a row is actually on screen. The
flag dies with the program: a status left behind by something that exited
@@ -115,9 +116,14 @@ a pane. In cells rather than `padding`'s rows-times-`gap_aspect`, because the
two sides do different jobs here — the columns indent the labels and their
statuses, the rows are air above the first tab and below the last thing in the
strip — and scaling the columns would spend four of a sixteen-column sidebar on
-`2`. The default is `0 1`: one column, which is where every label's leading
-space used to be fixed, so `tab_bar_padding 0` is a thing you can now ask for
-and puts the names against the frame. It is air *inside* the plate — a tab's
+`2`. The default is `0 1 0 2`: one column on the right, where the tab number stops,
+and two on the left, because that indent is also the gutter a busy pane's
+spinner sits in — the mark takes its first column and what is left over is the
+air after the mark, so a single column would stand the spinner against the
+first letter of the status. `tab_bar_padding 0 1` is that squashed look for
+anyone who wants the column back, and `tab_bar_padding 0` puts the names
+against the frame, which the hard-coded leading space they used to carry never
+allowed. It is air *inside* the plate — a tab's
fill still spans the whole row, because the row is what you click.
`tab_bar_pad` is the older name for the top of it alone, still honoured, and it
wins where both are written.
diff --git a/docs/slosh.5 b/docs/slosh.5
index 9c88c1e..62205cc 100644
--- a/docs/slosh.5
+++ b/docs/slosh.5
@@ -144,9 +144,14 @@ but counted in cells rather than rows times
\(em a sidebar's rows and columns do different jobs, one being air above
the list and the other an indent for its labels.
The default is
+.B 0 1 0 2
+\(em one column on the right, where the tab number stops, and two on the
+left, whose first column is the gutter a busy pane's spinner sits in and
+whose remainder is the air after it;
.B 0 1
-\(em one column, which is where every label's leading space used to be
-fixed; 0 puts the names against the frame.
+is the squashed look and
+.B 0
+puts the names against the frame.
It is inside the plate: a tab's fill still spans the whole row, which is
what you click.
.B tab_bar_pad
@@ -219,9 +224,10 @@ is the spinner's frames separated by spaces; one frame is a static mark and
costs nothing, several make it turn, and the session keeps a frame clock only
while such a row is on screen. Empty draws no mark and leaves
.B tab_status_busy
-to say it. The mark sits in the column
+to say it. The mark sits in the first column
.B tab_bar_padding
-holds blank, so nothing moves when a program starts or stops working.
+holds blank, so nothing moves when a program starts or stops working, and
+the rest of that padding is the space after it.
.TP
.BR newtab_button\ \fIbool\fR ,\ newtab_pad\ \fIn\fR
The new-tab button at the end of the tab strip, and the air between it and