diff options
| author | user <user@clank> | 2026-09-22 13:14:24 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-09-22 13:14:24 +0200 |
| commit | 24bfcc26df376621ccfe1e695bb4f5e6f1807e56 (patch) | |
| tree | 911a7f6f08c79d5685116f0073d428c697a32a8f /docs | |
| parent | themes: ask the binary where it is, not the prefix it was built for (diff) | |
| download | slosh-24bfcc26df376621ccfe1e695bb4f5e6f1807e56.tar.gz slosh-24bfcc26df376621ccfe1e695bb4f5e6f1807e56.tar.xz slosh-24bfcc26df376621ccfe1e695bb4f5e6f1807e56.zip | |
sidebar: the tab number at the far edge (tab_bar_index)
`1:api` puts a number at the start of every row, and in a sidebar that is a
column of digits in front of the thing you are actually reading -- the names
start one, two or three cells in depending on how many tabs you have, and the
numbers are only wanted at the moment you reach for C-a 2.
tab_bar_index "right" moves them:
│ tests 1 │ │ 1:tests │
│ verylongproj 2 │ vs │ 2:verylongproje│
│ api 3 │ │ 3:api │
Every name starts in the same column and the numbers line up in one of their
own, which costs a column of sidebar and buys the list a shape. "prefix" stays
the default, because it is what the strip has always drawn and the strip is
where most people meet it.
Sidebars only, and not by omission: a tab in the top strip is exactly as wide
as its label, so there is no far end to align against and a number floating
after a name it does not belong to would be worse than the prefix it replaced.
The setting is ignored there rather than half-honoured. A row too narrow to
spare the columns (under the number plus five) also keeps the prefix, since
the name is the part you came for, and the rename editor keeps the whole cell
as it always did.
A name long enough to reach the number stops one cell short of it, because
`verylongproje2` is a tab called verylongproje2 as far as any reader can tell.
The cell comes back as padding, so the plate is unbroken and the hit is still
the whole row -- clicking the number is clicking the tab, and the number
brightens with the label under the pointer rather than leaving half a row lit.
The bell mark keeps its place between them, budgeted first as before, so a
long name cannot eat either of the two things that are not the name.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/config.md | 2 | ||||
| -rw-r--r-- | docs/panes.md | 19 | ||||
| -rw-r--r-- | docs/slosh.5 | 8 |
3 files changed, 28 insertions, 1 deletions
diff --git a/docs/config.md b/docs/config.md index 506cbff..0065781 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_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_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 6062280..3a28046 100644 --- a/docs/panes.md +++ b/docs/panes.md @@ -55,6 +55,7 @@ The strip of tabs sits along the top by default. It does not have to: ```kdl 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, not against the name 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 @@ -126,6 +127,24 @@ yours wins; the band is unset by default, which leaves a translucent terminal's own background alone. The top strip has one row and no room for any of this, which is half of why the sidebar exists. +**The tab number can sit at the far end of the row.** `tab_bar_index "right"` +draws `api` on the left and `3` hard against the right edge, instead of the +default `3:api`: + +``` +│ tests 1 │ │ 1:tests │ +│ verylongproj 2 │ vs │ 2:verylongproje│ +│ api 3 │ │ 3:api │ +``` + +Every name then starts in the same column and the numbers line up in one of +their own, which is worth a column of a sidebar and is not available to the top +strip at all — a tab there is exactly as wide as its label, so it has no far end +to align against, and the setting is ignored. A row too narrow to spare the +columns goes back to the prefix, because the name is the part you came for, and +a name long enough to reach the number always stops one cell short of it: +`verylongproje2` is a tab called verylongproje2 as far as any reader can tell. + **Every tab is a plate, not a word on the background.** The one you are in is filled with the accent (`tab_active_bg`); the rest sit on `tab_idle_bg`, 43% of the way from the theme's background to `tab_idle`, the grey it writes their diff --git a/docs/slosh.5 b/docs/slosh.5 index ed7c0ad..ff8b386 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_index\ where +Where a tab's number sits: \fBprefix\fR (the default) writes it against the +name, \fB1:api\fR, and \fBright\fR puts it at the far end of the row so the +names all start in one column and the numbers line up in another. +Sidebars only \(em a tab in the top strip is as wide as its label, so there +is no far end to align against \(em and a row too narrow to spare the columns +keeps the prefix, since the name is the part you came for. +.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 |
