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

Rust API

Rust documentation

server.Server.set_environment

Rust

View as Markdown

Module
server
Declared in
Server
Package
libtmux
Source
crates/libtmux/src/server/settings.rs
Other languages
PythonTypeScriptGo Java .NET C++ Swift
set_environment ( self , name : &str , value : impl Into<OsString> ) → Result<(), Error>
method [source]
method [source]
set_environment

Set a variable in the server's own environment.

tmux keeps this and each session's environment in separate stores, and merges them only when it starts a process. So a name set here is reported as an unknown variable by Session::environment -- reading a session does not fall back to the server -- while a pane started afterwards is handed it all the same.

Where both hold a name, the session's value is the one the process gets. Self::hide_environment removes the name from the merge entirely.

Panes already running keep the environment they were started with.

The value is marked sensitive, since an environment carries tokens.

Errors

Returns an error when tmux rejects the name or value.

Discussed in Environment

In other ports Set a variable in the server's environment

Examples

use libtmux::EnvironmentEntry;
let guard = libtmux::test::TestServer::new().await?;
let server = guard.server();
server.set_environment("EDITOR", "hx").await?;
assert!(matches!(
server.environment("EDITOR").await?,
Some(EnvironmentEntry::Set(value)) if value.as_bytes() == b"hx",
));
// Separate stores: the session has no entry of its own, and reading it
// does not fall back to the server. The value still reaches a process
// the session starts.
let session = server.new_session("separate").await?;
assert_eq!(session.environment("EDITOR").await?, None);
guard.shutdown().await?;
await server.setEnvironment("EDITOR", "vim");

0 declared, 0 inherited

Esc

Type to search.