diff options
| author | user <user@clank> | 2026-08-14 20:12:51 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-14 20:12:51 +0200 |
| commit | ebd051073d5fc0ed5b8e59dd70501c07241ec3ed (patch) | |
| tree | 32c48022582c1c27a3a6c83c4c313de9ec582ab5 | |
| parent | sl0ppty: minimise a pane into a strip along the bottom (diff) | |
| download | slosh-ebd051073d5fc0ed5b8e59dd70501c07241ec3ed.tar.gz slosh-ebd051073d5fc0ed5b8e59dd70501c07241ec3ed.tar.xz slosh-ebd051073d5fc0ed5b8e59dd70501c07241ec3ed.zip | |
sl0ppty: pick a minimise mark that fills its cell
The buttons looked unevenly spaced. They are not: the cells are mark, space,
space, mark, space, space, mark, exactly even, which is worth checking before
touching any arithmetic.
The gap was in the glyph. An en dash is a short stroke floating in a mostly
empty cell, so it donated its own whitespace to the space beside it and sat
further from the zoom button than the zoom button sat from close, which fill
theirs. A lower one-eighth block has weight comparable to the square and the
cross, and is also the conventional minimise icon and a fair description of
where the pane actually goes.
Noted in the config beside the width warning, since it is the same class of
problem: the mark is yours to choose and the two things to know about the
choice are that emoji are drawn double-width and that a light glyph will look
badly spaced next to heavy ones.
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | config/config.kdl | 7 | ||||
| -rw-r--r-- | src/config.c | 2 | ||||
| -rw-r--r-- | src/config.h | 4 |
4 files changed, 11 insertions, 4 deletions
@@ -83,7 +83,7 @@ fills the tab until you put it back; the other panes keep running, they are just not drawn. `×` beside it closes the pane. `pane_buttons false` takes both buttons off without touching the keybindings. -**Minimise a pane** with `C-a m` or the `–` button and it leaves the layout for +**Minimise a pane** with `C-a m` or the `▁` button and it leaves the layout for a strip along the bottom, one row each, still running — the panes it leaves behind take the space back. Click its row to bring it back. Once a tab is too small and has flattened into a list, being minimised means nothing: every pane diff --git a/config/config.kdl b/config/config.kdl index 39e185c..2567060 100644 --- a/config/config.kdl +++ b/config/config.kdl @@ -54,12 +54,15 @@ title_inset 2 pane_buttons true // Emoji are drawn two columns wide by many terminals while chrome here is -// booked as one, so these default to narrow glyphs. Put the character itself +// booked as one, so these default to narrow glyphs. Pick marks of similar +// visual weight: the buttons are evenly spaced, but a glyph that floats in a +// mostly-empty cell donates that space to the gap and looks further off than +// its neighbours. Put the character itself // here; this file has no \u escape. zoom_mark "□" zoom_on_mark "▣" close_mark "×" -min_mark "–" +min_mark "▁" bell_indicator true diff --git a/src/config.c b/src/config.c index bc82d7b..f6c9e5f 100644 --- a/src/config.c +++ b/src/config.c @@ -175,7 +175,7 @@ void config_defaults(config_t *c) { snprintf(c->zoom_mark, sizeof c->zoom_mark, "\u25a1"); snprintf(c->zoom_on_mark, sizeof c->zoom_on_mark, "\u25a3"); snprintf(c->close_mark, sizeof c->close_mark, "\u00d7"); - snprintf(c->min_mark, sizeof c->min_mark, "\u2013"); + snprintf(c->min_mark, sizeof c->min_mark, "\u2581"); c->bell_indicator = true; snprintf(c->bell_mark, sizeof c->bell_mark, "\u2022"); c->min_pane_cols = 24; diff --git a/src/config.h b/src/config.h index bbd9e0c..0bbaa9e 100644 --- a/src/config.h +++ b/src/config.h @@ -85,6 +85,10 @@ typedef struct { /* Buttons in the top-right of a pane's frame: zoom, and close. Off leaves * the keyboard bindings alone; it is about the affordance, not the verb. */ bool pane_buttons; + /* Marks of similar visual weight, so the even spacing between the buttons + * reads as even: a glyph that floats in a mostly-empty cell donates its own + * whitespace to the gap beside it and looks further away than its + * neighbours, which is what an en dash did here. */ char zoom_mark[16], zoom_on_mark[16], close_mark[16], min_mark[16]; bool bell_indicator; /* What to draw. A short string rather than a fixed glyph: the obvious |
