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

session.Session.from_env

Rust

View as Markdown

Module
session
Declared in
Session
Package
libtmux
Source
crates/libtmux/src/session.rs
Other languages
PythonTypeScript Go Java .NET C++ Swift
from_env ( server : &crate::Server ) → Result<Option<Self>, Error>
method [source]
method [source]
from_env

Find the session this process is running in.

Resolved through the pane, because TMUX_PANE names exactly one pane while a server's TMUX value names the session that was current when the client attached, which may since have changed.

Ok(None) means tmux no longer has that pane.

Errors

Returns an error when TMUX_PANE is absent or is not a pane ID, or when the listing fails.

Discussed in Environment

In other ports The session this process is running inside

Examples

use libtmux::{Pane, Session};
let session = server.new_session("locating-session").await?;
let pane = session.panes().await?.remove(0);
// Standing in for the environment tmux gives a process it starts.
let found = Session::from_env_value(server, Some(pane.id().as_ref())).await?;
assert_eq!(found.expect("the session exists").id(), session.id());
>>> socket_path = server.cmd( # doctest: +HIDE
... "display-message", "-p", "-t", pane.pane_id, "#{socket_path}"
... ).stdout[0]

Even a deliberately wrong session id in $TMUX cannot mislead it:

>>> env = {"TMUX": f"{socket_path},1,999", "TMUX_PANE": pane.pane_id}
>>> Session.from_env(env).session_id == session.session_id
True
>>> Session.from_env(env)
Session($1 ...)
const current = await Session.fromEnv();
current.name;

0 declared, 0 inherited

Esc

Type to search.