diff options
| author | user <user@clank> | 2026-08-12 14:52:13 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-12 14:52:43 +0200 |
| commit | 598e77563b8c6cace224c763e00d2fdb4157a869 (patch) | |
| tree | beda042e3e355eef9513a461a48d15635c611b89 /zellij-utils/src/ipc | |
| parent | sl0p: per-pane status bar via OSC 5577 (experimental) (diff) | |
| download | sl0ppij-598e77563b8c6cace224c763e00d2fdb4157a869.tar.gz sl0ppij-598e77563b8c6cace224c763e00d2fdb4157a869.tar.xz sl0ppij-598e77563b8c6cace224c763e00d2fdb4157a869.zip | |
sl0p: serialise the pane status bar for resurrection
The status bar survived detach/reattach (it lives on Grid) but not a
serialise/restore cycle, so a resurrected pane came back blank.
It now travels the whole per-pane serialisation pipeline, mirroring the fork's
existing default_fg/default_bg: pane -> PaneLayoutMetadata ->
PaneLayoutManifest -> TiledPaneLayout -> a status_bar property in the serialised
KDL, then back through the normal layout parser and applied by LayoutApplier
when the pane is recreated.
The sanitiser moved from grid.rs into zellij-utils so both entry points share
one definition. That matters: a layout file on disk is no more trustworthy than
the escape sequence that wrote it -- it may have been hand-edited, or copied from
somewhere else -- so restored text is stripped and length-capped on the way in
just like the OSC payload was.
Verified end to end rather than by unit test alone: set the bar, waited for a
serialisation pass, confirmed status_bar="..." in session-layout.kdl, killed the
session until list-sessions reported EXITED, then attached and watched it come
back from disk. The earlier attempt only proved detach/reattach because Quit had
left the session alive.
Diffstat (limited to 'zellij-utils/src/ipc')
| -rw-r--r-- | zellij-utils/src/ipc/protobuf_conversion.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/zellij-utils/src/ipc/protobuf_conversion.rs b/zellij-utils/src/ipc/protobuf_conversion.rs index 26c78f97..f8034ba9 100644 --- a/zellij-utils/src/ipc/protobuf_conversion.rs +++ b/zellij-utils/src/ipc/protobuf_conversion.rs @@ -4519,6 +4519,8 @@ impl TryFrom<crate::client_server_contract::client_server_contract::TiledPaneLay default_fg: layout.default_fg, default_bg: layout.default_bg, // no protobuf representation, same as default_fg/default_bg + // no protobuf representation, same as children_arrangement + status_bar: None, children_arrangement: None, }) } |
