aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/ipc
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-12 14:52:13 +0200
committeruser <user@clank>2026-08-12 14:52:43 +0200
commit598e77563b8c6cace224c763e00d2fdb4157a869 (patch)
treebeda042e3e355eef9513a461a48d15635c611b89 /zellij-utils/src/ipc
parentsl0p: per-pane status bar via OSC 5577 (experimental) (diff)
downloadsl0ppij-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.rs2
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,
})
}