Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

freeze.freeze

Rust
  • Python
  • Ruby Unavailable
  • Lua Unavailable
  • TypeScript Unavailable
  • Rust
  • Go Unavailable
  • Java Unavailable
  • .NET Unavailable
  • C++ Unavailable
  • Swift Unavailable

API reference · Markdown

freeze.freeze ( session : &Session ) → Result<Workspace, Error>
function [source]
function [source]
freeze.freeze

Describe a live session as a workspace.

The result is a Workspace , so it can be rendered with Workspace::to_yaml or handed straight back to crate::WorkspaceBuilder to make another like it.

A pane is described by the command tmux says it is running, by name and without its arguments. A pane at its shell's prompt freezes to a pane with no command: tmux reports the shell itself, and recording it would start a shell inside a shell when the file is built. A shell is the session's default-shell, or a common interactive shell by name.

Errors

Returns an error when the session's windows or panes cannot be listed.

Examples

use libtmux::{SplitDirection, SplitOptions};
use tmux_workspace::freeze;
let guard = libtmux::test::TestServer::new().await?;
let session = guard.server().new_session("built-by-hand").await?;
let mut window = session.active_window().await?.expect("a window");
window.split(SplitOptions::new(SplitDirection::Below)).await?;
let workspace = freeze(&session).await?;
assert_eq!(workspace.session_name, "built-by-hand");
assert_eq!(workspace.windows.len(), 1);
assert_eq!(workspace.windows[0].panes.len(), 2);
// And it round-trips through the file format.
let yaml = workspace.to_yaml();
assert_eq!(tmux_workspace::Workspace::from_yaml(&yaml)?, workspace);
guard.shutdown().await?;

Discussed in Build a workspace from a file · Rust workspace internals , Use the Rust workspace builder , Rust workspace builder behavior , Rust workspace builder API

In other ports Export a live session as workspace data
  • Python tmuxp.workspace.freezer.freeze
  • Ruby No source-verified Ruby equivalent is recorded for this operation.
  • Lua No source-verified Lua equivalent is recorded for this operation.
  • TypeScript the workspace package applies descriptions but does not export live sessions
  • Go the workspace module builds descriptions but has no live-session export
  • Java the workspace module builds descriptions but has no live-session export
  • .NET the workspace package builds descriptions but has no live-session export
  • C++ the source-only workspace consumer builds descriptions but has no live-session export
  • Swift encoding a Workspace serializes an existing description; it does not read a live session
Esc

Type to search.