aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authoruser <user@clank>2026-09-22 13:14:24 +0200
committeruser <user@clank>2026-09-22 13:14:24 +0200
commit24bfcc26df376621ccfe1e695bb4f5e6f1807e56 (patch)
tree911a7f6f08c79d5685116f0073d428c697a32a8f /docs
parentthemes: ask the binary where it is, not the prefix it was built for (diff)
downloadslosh-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.md2
-rw-r--r--docs/panes.md19
-rw-r--r--docs/slosh.58
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