# tmux switch-client

Source: https://libtmux.org/en/tmux/latest/manual/switch-client/

> Switch the current session for client target-client to target-session.

Switch the current session for client target-client to target-session.

## Syntax

```tmux-usage
tmux switch-client [-ElnprZ] [-c target-client] [-t target-session] [-T key-table] [-O order]
```

Alias: `switchc`.

## Behavior

Switch the current session for client `target-client` to `target-session`. As a special case, `-t` may refer to a pane (a target that contains ‘`:`’, ‘`.`’ or ‘`%`’), to change session, window and pane. In that case, `-Z` keeps the window zoomed if it was zoomed. If `-l`, `-n` or `-p` is used, the client is moved to the last, next or previous session respectively. `-O` may be used with `-n` and `-p` to specify the field to sort on: one of ‘`name`’, ‘`size`’, ‘`creation`’ (time), or ‘`activity`’ (time). `-r` toggles the client `read-only` and `ignore-size` flags (see the [`attach-session`](https://libtmux.org/en/tmux/latest/manual/attach-session/) command).

If `-E` is used, `update-environment` option will not be applied.

`-T` sets the client's key table; the next key will be looked up using `key-table`. After that key, the client is returned to its default key table (normally *root*). This may be used to configure multiple prefix keys, or to bind commands to sequences of keys. For example, to make typing ‘`abc`’ run the [`list-keys`](https://libtmux.org/en/tmux/latest/manual/list-keys/) command:

```tmux-config
bind-key -Ttable2 c list-keys
bind-key -Ttable1 b switch-client -Ttable2
bind-key -Troot   a switch-client -Ttable1
```

## C implementation

Internal declarations in tmux 3.7c:

* [`cmd_switch_client_entry`](https://libtmux.org/en/tmux/latest/reference/c-variable-cmd_switch_client_entry/)
* [`cmd_switch_client_exec`](https://libtmux.org/en/tmux/latest/reference/c-function-cmd-switch-client-c-cmd_switch_client_exec/)

## Use from a library

Each API describes its own defaults, errors and execution model.

* [Python](https://libtmux.org/en/py/latest/reference/libtmux-server-switch_client/)
* [Go](https://libtmux.org/en/go/latest/reference/tmux-server-switchclient/)
* [C#](https://libtmux.org/en/csharp/latest/reference/libtmux-server-switchclientasync/)

tmux sources and license

Syntax comes from `tmux 3.7c list-commands`. See the [global options](https://libtmux.org/en/tmux/latest/manual/full/#DESCRIPTION) for sockets and configuration, and [command syntax and targets](https://libtmux.org/en/tmux/latest/manual/full/#COMMANDS).

Behavior is taken from the [tmux 3.7c manual](https://github.com/tmux/tmux/blob/79072dd1a9f5fb437a5859e362a496fd57ec0981/tmux.1).

[Command declaration](https://github.com/tmux/tmux/blob/79072dd1a9f5fb437a5859e362a496fd57ec0981/cmd-switch-client.c#L35)

```
Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>

Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
```
