server.Server.set_environment
Rust
- Python
- TypeScript
- Rust
- Go
- Java Unavailable
- .NET Unavailable
- C++ Unavailable
- Swift
- Module
- server
- Declared in
- Server
- Package
- libtmux
- Source
- crates/libtmux/src/server/settings.rs
- Other languages
- PythonTypeScriptGo Java .NET C++ Swift
-
-
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_environmentremoves 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
- Python
libtmux.Server.set_environment - TypeScript
server.Server.setEnvironment - Go
tmux.Server.SetEnvironment - Java no equivalent on
Server - .NET no equivalent on
Server - C++ no equivalent on
Server - Swift
Server.setEnvironment(_:to:in:)
- Python
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