# server.interactive.Server.choose

- **Module:** server.interactive.Server
- **Package:** libtmux
- **Language:** Rust
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-rs/blob/8a648c0894dfffc9303583f753b6c8ae01f2fe76/crates/libtmux/src/server/interactive.rs#L141
- **Page:** https://libtmux.org/reference/rs/server-interactive-server-choose/

```
server.interactive.Server.choose(self, chooser: Chooser, client: Option<&Client>) -> Result<(), Error>
```

Open one of tmux's interactive choosers on a client.

A chooser opens *in a pane*, which is why this needs no client and
succeeds on a server nothing is attached to: the pane's `pane_in_mode`
becomes `1` and its `pane_mode` becomes `tree-mode`, client or not.

That is the difference from [`Self::display_popup`],
[`Self::display_menu`], [`Self::command_prompt`] and
[`Self::display_panes`], which draw *on a client* and report "no current
client" without one. Passing `client` here only says which client's
current pane to open in.

# Errors

Returns [`Error::ServerMismatch`] when the client belongs to another
server, or an error when tmux refuses the command. A missing client is
not one: this does not need one.
