diff options
| author | user <user@clank> | 2026-09-22 15:01:07 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-09-22 15:01:07 +0200 |
| commit | 43ab0d0c0dc0c79f04c7e70f5ab3b22b3e36e09a (patch) | |
| tree | ba1a5960438c15391fbf1c0a4e0c49421a8c1fcb /docs | |
| parent | sidebar: align the numbers by default (diff) | |
| download | slosh-43ab0d0c0dc0c79f04c7e70f5ab3b22b3e36e09a.tar.gz slosh-43ab0d0c0dc0c79f04c7e70f5ab3b22b3e36e09a.tar.xz slosh-43ab0d0c0dc0c79f04c7e70f5ab3b22b3e36e09a.zip | |
sidebar: air inside it, the way panes have padding (tab_bar_padding)
`padding` is a pane's: the ring between a frame and the text it holds, in rows
times gap_aspect so a `1` looks square around a block of prose. Handing the
same knob to the sidebar looked tempting and is wrong twice over. The sidebar
is chrome, not a pane, and its width is fixed by tab_bar_width -- so `padding
1` would quietly eat four of a sixteen-column strip (two cells a side, aspect
included) and shorten every tab name, because somebody wanted their terminal
text to breathe. And its two axes are not one idea: the columns are an indent
for labels, the rows are air above a list.
So tab_bar_padding, its own knob in the family the rest of the sidebar's air
already lives in (tab_bar_pad, tab_gap, newtab_pad), taking the same 1/2/4
CSS-order values as `padding` -- one reader for both, so they cannot drift
into meaning different things -- but counted in cells.
The default `0 1` is what the sidebar already drew: that one column is where
every label's leading space has been hard-coded since the sidebar existed, and
moving it into a setting is what makes `tab_bar_padding 0` possible at all --
names flush against the frame, which was not previously a thing anyone could
ask for. The statuses, the `+ new tab` row and the pane count follow the same
indent, since they were each carrying their own copy of that space.
It is air *inside* the plate: a tab's fill still spans the whole row and the
whole row is still the hit, because the row is what you click and a highlight
that stopped short of the frame would read as a highlighted word rather than a
chosen row. The bottom rows are given up when the strip is short of them, like
every other piece of air in here.
tab_bar_pad is the older name for the top component alone. It still works,
still means exactly that, and wins where a config writes both -- it is the
more specific of the two. The dump writes tab_bar_padding and mentions it.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/config.md | 2 | ||||
| -rw-r--r-- | docs/panes.md | 16 | ||||
| -rw-r--r-- | docs/slosh.5 | 19 |
3 files changed, 35 insertions, 2 deletions
diff --git a/docs/config.md b/docs/config.md index 0065781..dba0dd2 100644 --- a/docs/config.md +++ b/docs/config.md @@ -134,7 +134,7 @@ whatever the file says. | group | what is in it | | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | geometry | `gap` `gap_aspect` `padding` `compact` `rounded` `title_align` `title_inset` `min_pane` `min_split` | -| chrome | `status_bar` `status_line` `status_pad` `tab_bar_side` `tab_bar_index` `tab_bar_width` `tab_bar_pad` `tab_gap` `tab_bar_status` `tab_bar_status_lines` `tab_bar_chrome` `hints` `version_banner` `pane_buttons` `bell_indicator` `newtab_button` `newtab_pad` and the marks (`zoom_mark` `zoom_on_mark` `close_mark` `min_mark` `newtab_mark` `bell_mark`) | +| chrome | `status_bar` `status_line` `status_pad` `tab_bar_side` `tab_bar_index` `tab_bar_width` `tab_bar_padding` `tab_bar_pad` `tab_gap` `tab_bar_status` `tab_bar_status_lines` `tab_bar_chrome` `hints` `version_banner` `pane_buttons` `bell_indicator` `newtab_button` `newtab_pad` and the marks (`zoom_mark` `zoom_on_mark` `close_mark` `min_mark` `newtab_mark` `bell_mark`) | | behaviour | `focus_follows_mouse` `ctrl_d_exits` `scroll_lines` `scrollback` `scrollback_bytes` `toast_ms` `splash_ms` `hover_delay_ms` `double_click_ms` `word_separators` `anim_ms` `modal_scrim` `dim_unfocused` `float_shadow` `keep_dead` `in_band_shaders` `multi_attach` `attach_indicator` `size_follows` `shell` `editor` | | projects | `project_roots` `project_layout` (see [workspaces](workspaces.md)) | | colour | `theme { }` | diff --git a/docs/panes.md b/docs/panes.md index 7f11fcd..7018fc8 100644 --- a/docs/panes.md +++ b/docs/panes.md @@ -56,7 +56,8 @@ 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_pad 0 // blank rows above the first tab +tab_bar_padding 0 1 // air inside it, in cells: rows, then columns +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 tab_bar_status_lines 1 // rows one status may wrap onto @@ -97,6 +98,19 @@ way: **the statuses give way before the tabs do**, because the list is how you navigate and a status is only an annotation on it — a talkative pane must not be able to cost you a tab you can click. +**`tab_bar_padding` is the air inside the strip**, between its frame and the +list: 1, 2 or 4 values in CSS order, the shape [`padding`](config.md) takes for +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 +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. + **`tab_gap` puts air between one tab and the next**, which is what stops a list of tabs that each carry a paragraph of status from reading as one column of text. It is the space *between* tabs only: above the first is `tab_bar_pad` diff --git a/docs/slosh.5 b/docs/slosh.5 index 3a467e5..6d6acc2 100644 --- a/docs/slosh.5 +++ b/docs/slosh.5 @@ -135,6 +135,25 @@ The strip's indicators move to the sidebar's bottom rows; the status line keeps the full width. A terminal too narrow to give up the columns falls back to \fBtop\fR until it grows. .TP +.BI tab_bar_padding\ n\ ... +Air inside a sidebar, between its frame and the list, per side and in +cells: 1, 2 or 4 values in CSS order, like +.BR padding , +but counted in cells rather than rows times +.B gap_aspect +\(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 +\(em one column, which is where every label's leading space used to be +fixed; 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 +is the older name for the top alone and still works, and wins where both +are written. +Sidebars only. +.TP .BI tab_bar_index\ where Where a tab's number sits: \fBright\fR (the default) puts it at the far end of the row, so the names all start in one column and the numbers line up in |
