On this page
io.github.libtmux.TmuxEnvironment.TmuxEnvironment
- Module
- io.github.libtmux.TmuxEnvironment
- Package
- io.github.libtmux:libtmux
- Source
- libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java
-
What tmux tells a program running inside one of its panes.
<p>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.<pre>{@code 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(); } }</pre>
<p>Reading is separated from the environment itself, so the parsing is testable without a process ever having to be started inside tmux:
#oftakes the variables,#currentis the one-line wrapper that fetches them.<p>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.
8 declared, 0 inherited
Members
- 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