diff options
| author | user <user@clank> | 2026-09-22 15:24:16 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-09-22 15:24:16 +0200 |
| commit | ecdc8d0c335c35a74b46ddb22773e8ef4b222891 (patch) | |
| tree | c2595e7522364eaaacd58f6c3a45a238b9e9fafa /docs | |
| parent | osc 5577: `busy`, and a sidebar that shows it (busy_mark) (diff) | |
| download | slosh-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.md | 20 | ||||
| -rw-r--r-- | docs/slosh.5 | 14 |
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 |
