diff options
| author | Peter Geissler <peter@haxx.in> | 2026-09-20 20:23:23 +0200 |
|---|---|---|
| committer | Peter Geissler <peter@haxx.in> | 2026-09-20 20:23:23 +0200 |
| commit | 07e1adf1124657aaea4fa32874282812281e4889 (patch) | |
| tree | ab63600e4438260e3e5c650bc711645fe21d066a /docs | |
| parent | sidebar: a status can have more than one row (tab_bar_status_lines) (diff) | |
| download | slosh-07e1adf1124657aaea4fa32874282812281e4889.tar.gz slosh-07e1adf1124657aaea4fa32874282812281e4889.tar.xz slosh-07e1adf1124657aaea4fa32874282812281e4889.zip | |
sidebar: air between tabs (tab_gap)
A tab carrying three rows of wrapped status and the tab under it carrying
three more read as one column of text: the labels are in there, but the list
has stopped looking like a list. tab_gap is the blank rows between them, 0 by
default, which is exactly what the sidebar has always drawn.
It is the space *between* tabs and nothing else. Above the first tab is
tab_bar_pad's and before the button is newtab_pad's, so the gap is applied
before each label except the first and none of the three is ever paid twice.
Given up a row at a time when the list is short of room, ahead of every label
and the button, which is the same order the pad and the statuses already
follow: a gap that pushed a tab off the bottom would be spacing costing you
the thing it spaces. Paint rather than layout, so tuning it repaints without
reflowing any pane. Sidebars only -- the top strip is one row, and the space
between tabs there is the label's own padding.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/config.md | 2 | ||||
| -rw-r--r-- | docs/panes.md | 9 | ||||
| -rw-r--r-- | docs/slosh.5 | 9 |
3 files changed, 19 insertions, 1 deletions
diff --git a/docs/config.md b/docs/config.md index 6fa0300..fa287f1 100644 --- a/docs/config.md +++ b/docs/config.md @@ -83,7 +83,7 @@ theme { frame_focus "#00ff88" } // ...but that one colour is mine | 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_width` `tab_bar_pad` `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_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`) | | 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 6cc1055..96fefc8 100644 --- a/docs/panes.md +++ b/docs/panes.md @@ -56,6 +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_pad 0 // blank rows above the first tab +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 newtab_button true // the `+` at the end of the list @@ -95,6 +96,14 @@ 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_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` +and before the `+` is `newtab_pad`, so none of the three is paid twice. Like +them it is paint rather than layout, and like them it is given up a row at a +time when the sidebar runs short — a gap must never be what costs you the tab +it was separating. + **A status can be given more than one row.** `tab_bar_status_lines 3` word-wraps it instead of cutting it, which is the difference between `add a summary…` and the sentence — three rows of a sixteen-column sidebar is forty-eight cells. The diff --git a/docs/slosh.5 b/docs/slosh.5 index 7fdd146..70cfa08 100644 --- a/docs/slosh.5 +++ b/docs/slosh.5 @@ -143,6 +143,15 @@ its inner line is the tab area's own ring, so the two meet in junctions and come out as one figure. On by default; off gives the two columns back to the labels. .TP +.BI tab_gap\ n +Blank rows between one tab and the next in a sidebar. Tabs that each carry a +paragraph of status read as one column of text; this makes them separate +entries again. It is the space \fIbetween\fR tabs only \(em above the first +is \fBtab_bar_pad\fR and before the button is \fBnewtab_pad\fR \(em and it +is given up a row at a time when the list is short of room, so the gap can +never be what costs you the tab it was separating. Paint rather than layout: +panes keep the same rectangle whatever it is. Sidebars only. +.TP .BI tab_bar_status\ n Under each of a sidebar's tabs, up to \fIn\fR rows of what the panes inside said through OSC 5577 status \(em or how they died \(em with an ellipsis when |
