libtmux Reference MCP Search
On this page

session.settings.Session.environment_all

View as Markdown

Module
session.settings
Declared in
Session
Package
libtmux
Source
crates/libtmux/src/session/settings.rs
environment_all ( self ) Result<BTreeMap<String, EnvironmentEntry>, Error>
method [source]
method [source]
environment_all

Read the session's whole environment.

tmux distinguishes a variable it holds a value for from one it has marked for *removal*, so that a process started in the session does not inherit it. Both appear in the listing, and [ EnvironmentEntry ] keeps them apart, exactly as Self::environment does for a single name.

Costs one tmux command per variable. The listing alone cannot be trusted: a value containing a newline occupies more than one line, and a continuation line holding an = is indistinguishable from the next variable. Each name is therefore read back on its own, which also discards the continuation lines, because tmux refuses a name it does not hold.

Errors

Returns an error when tmux cannot be reached or refuses the listing. An empty map means the session holds nothing, never that the listing failed.

Examples

use libtmux::EnvironmentEntry;

let guard = libtmux::test::TestServer::new().await?;
let session = guard.server().new_session("env").await?;

session.set_environment("EDITOR", "vi").await?;
session.hide_environment("PAGER").await?;

let environment = session.environment_all().await?;
assert!(matches!(
    environment.get("EDITOR"),
    Some(EnvironmentEntry::Set(value)) if value.as_bytes() == b"vi",
));
assert_eq!(environment.get("PAGER"), Some(&EnvironmentEntry::Removed));

guard.shutdown().await?;

Discussed in Environment

0 declared, 0 inherited

Esc

Type to search.