# 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/842228310449e879ebcaa3f910597757c9dbffd6/libtmux/src/main/java/io/github/libtmux/ServerConfig.java#L24
- **Page:** https://libtmux.org/en/java/latest/reference/io-github-libtmux-serverconfig-serverconfig/

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

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.

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, {@code -u}, 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.
