diff options
| author | user <user@clank> | 2026-09-10 16:10:33 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-09-10 16:10:33 +0200 |
| commit | fca50377124202217c9cf5071d346f1bb30907bb (patch) | |
| tree | 5c3530974568e88ae4794387e5f7d9f88f9fe6ee /docs | |
| parent | docs: the tab bar's new shapes, written down (diff) | |
| download | slosh-fca50377124202217c9cf5071d346f1bb30907bb.tar.gz slosh-fca50377124202217c9cf5071d346f1bb30907bb.tar.xz slosh-fca50377124202217c9cf5071d346f1bb30907bb.zip | |
sidebar: framed like a pane, and in compact mode framed *with* it (tab_bar_chrome)
A list of tabs sitting in bare columns beside a framed layout reads as
text that wandered in from outside. So the sidebar gets a frame of its
own -- and in compact mode not its own: its inner vertical lands on the
tab area's ring column, and because the lines are strokes that union
with whatever is already in the cell, the corners become tees without
anyone computing a junction. The sidebar and the layout come out as one
figure, which is the whole point.
Classic mode gets a free-standing frame in the idle frame colour,
rounded or square with everything else. The frame costs a column each
side and a row top and bottom, taken from the sidebar's own budget --
and dropped entirely, before the list is, when the sidebar is too small
to afford it: chrome must not displace what it is chrome for.
The content box (cx/cw) now feeds the labels, the status rows, their
hits and the truncation budget alike, so the frame cannot disagree with
where the clicks land.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/config.md | 2 | ||||
| -rw-r--r-- | docs/panes.md | 7 | ||||
| -rw-r--r-- | docs/slosh.5 | 8 |
3 files changed, 16 insertions, 1 deletions
diff --git a/docs/config.md b/docs/config.md index 4b964ac..edebc8d 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` `hints` `version_banner` `pane_buttons` `bell_indicator` 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_bar_status` `tab_bar_chrome` `hints` `version_banner` `pane_buttons` `bell_indicator` 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 dd3fdba..913d2cb 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 1 // blank rows above the first tab +tab_bar_chrome true // frame it like a pane ``` A **sidebar lists one tab per row** down the chosen edge, and the panes trade @@ -66,6 +67,12 @@ to the sidebar's bottom rows; the [status line](config.md) along the bottom keeps the full width. A terminal too narrow to give up the columns falls back to the top row until it grows. +**The sidebar is framed like a pane**, so it belongs to the chrome rather than +floating beside it. Under [`compact`](config.md#compact) the frame's inner line +_is_ the tab's outer ring: the two meet in real junctions (`┬`, `┴`) and read +as one figure, the same way a divider running into the ring does. Set +`tab_bar_chrome false` to give those two columns back to the labels. + **Under each tab, the sidebar says what the panes inside are up to.** A pane that announced a status over [OSC 5577](scripting.md#a-pane-can-draw-its-own-chrome) puts that line under its tab — visible from every other tab, which is the diff --git a/docs/slosh.5 b/docs/slosh.5 index 367d79e..4f22a06 100644 --- a/docs/slosh.5 +++ b/docs/slosh.5 @@ -135,6 +135,14 @@ 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_chrome\ bool +Frame a sidebar the way panes are framed, so it reads as part of the chrome +rather than as text floating beside it. Under +.B compact +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_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 |
