# io.github.libtmux.ServerConfig.ServerConfig

- **Module:** io.github.libtmux.ServerConfig
- **Package:** io.github.libtmux:libtmux
- **Language:** Java
- **Kind:** class
- **Source:** https://github.com/libtmux/libtmux-java/blob/c3517519ee799428a809ce6deb1708c8be289cd1/libtmux/src/main/java/io/github/libtmux/ServerConfig.java#L24
- **Page:** https://libtmux.org/reference/java/io-github-libtmux-serverconfig-serverconfig/

What a server needs to know before it runs anything: which tmux, which server, which config.

<p>Deliberately a builder-built class rather than a record. tmux keeps growing flags, and a
record's canonical constructor is public API: every field added later would break both source and
binary compatibility for anyone who had constructed one.

<p>Nothing here contacts tmux. A config can be built, stored and compared on a machine that has
no tmux installed.

## Members

- `builder` (method) — A builder holding the documented defaults.
- `binary` (method) — The tmux executable, resolved on {@code PATH} unless it is an absolute path.
- `binaryPath` (method) — The binary as a path, resolved the way this process resolves it.
- `endpoint` (method) — Which tmux server to talk to.
- `configFile` (method) — The config file tmux should read, if the caller pinned one.
- `defaultTimeout` (method) — How long a request waits when the caller does not say.
- `endpointCommand` (method) — The argv prefix every command on this server begins with: the binary, the server selection, and the config file if one was pinned.
- `toBuilder` (method) — A builder holding every choice this config made.
- `Builder` (class) — Collects the choices; {@link #build()} checks them.
