aboutsummaryrefslogtreecommitdiffstats
path: root/cli/src
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-13 20:36:45 +0200
committeruser <user@clank>2026-08-13 20:36:45 +0200
commit91f40dccd9def02d147ea41615f7bc159cb306a6 (patch)
tree525c568778860b404620ff6d4581e91cb5c07357 /cli/src
parentsl0p: the plugins we ship do not ask for permission (diff)
downloadsl0ppi-91f40dccd9def02d147ea41615f7bc159cb306a6.tar.gz
sl0ppi-91f40dccd9def02d147ea41615f7bc159cb306a6.tar.xz
sl0ppi-91f40dccd9def02d147ea41615f7bc159cb306a6.zip
sl0p(bar): a new-tab button, and margins that match the pane gap
First pass of the status bar overhaul, in the zjstatus fork plus the layout that configures it. margin_left / margin_right: the bar is a full-width pane while every pane above it is inset by the pane gap, so its ends stuck out past every frame on screen. The margins are applied by rendering into an inset viewport (inset_state), which is the same thing click positions are translated by -- so what is drawn and what is clickable come from one definition. That is the split button's lesson applied before shipping rather than after. {new_tab}: a clickable button that opens a tab and focuses it, with no name and no cwd, i.e. exactly what the `n` binding in TAB mode does. Clicking a tab already switches to it and double-clicking renames it; making one was the hole in the strip. Rendering and hit-testing are the same measured string here, so the button covers exactly the columns it draws. Both keys are inert when unset, so an unmodified zjstatus config renders identically. packaging/checks/status-bar-live.py reads the bar off a real session and asserts it spans exactly the columns the pane frames span, clicks the + and expects one more tab, then clicks beside it and expects none. Confirmed by setting the margins to 0 and watching the span assertion fail: (0, 99) against the frames' (2, 97). The check counts painted cells rather than ink, because a bar segment begins with a padding space inside its coloured pill -- strip the colour and the left edge reads one column off, which is half the margin being measured.
Diffstat (limited to 'cli/src')
0 files changed, 0 insertions, 0 deletions