TmuxEnvironment
What tmux tells a program running inside one of its panes.
Source and package
- Qualified name
-
io.github .libtmux. Tmux Environment - Package
- io.github.libtmux
- Distribution
- io.github.libtmux:libtmux
- Source
- libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java
-
Description#
tmux exports
TMUXas<socket>,<server-pid>,<session>andTMUX_PANEas the pane's id. That is how a process discovers the server it is already inside, without being told where to look.#config()selects the server inTMUXby its path. AServerConfigbuilt with no endpoint does not: it passes tmux no socket unlessLIBTMUX_SOCKET_PATHorLIBTMUX_SOCKETis set, and tmux then followsTMUXby itself.Reading is separated from the environment itself, so the parsing is testable without a process ever having to be started inside tmux:
#of()takes the variables,#current()is the one-line wrapper that fetches them.A class rather than a record for the reason
ServerConfiggives — and because the pane is genuinely absent sometimes, which anOptionalaccessor says better than a nullable record component.Examples#
TmuxEnvironment here = TmuxEnvironment.current().orElseThrow();try (Server server = Server.open(here.config())) {Session mine = server.sessions().stream().filter(session -> session.id().equals(here.session())).findFirst().orElseThrow();}
Members8#
- config method A config addressing this server, ready for
Server#open(). - current method Reads this process's own environment.
- of method Reads a set of environment variables.
- pane method The pane this process is running in, absent when
TMUX_PANEwas not set. - serverPid method The process id of the tmux server, which is not the pane's process.
- session method The session this process is running in.
- socket method The socket the server is listening on.
- toString method
Guides#
Pages that discuss TmuxEnvironment.