|  | .\" $OpenBSD$ | 
|  | .\" | 
|  | .\" 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. | 
|  | .\" | 
|  | .Dd $Mdocdate: March 25 2013 $ | 
|  | .Dt TMUX 1 | 
|  | .Os | 
|  | .Sh NAME | 
|  | .Nm tmux | 
|  | .Nd terminal multiplexer | 
|  | .Sh SYNOPSIS | 
|  | .Nm tmux | 
|  | .Bk -words | 
|  | .Op Fl 2CluvV | 
|  | .Op Fl c Ar shell-command | 
|  | .Op Fl f Ar file | 
|  | .Op Fl L Ar socket-name | 
|  | .Op Fl S Ar socket-path | 
|  | .Op Ar command Op Ar flags | 
|  | .Ek | 
|  | .Sh DESCRIPTION | 
|  | .Nm | 
|  | is a terminal multiplexer: | 
|  | it enables a number of terminals to be created, accessed, and | 
|  | controlled from a single screen. | 
|  | .Nm | 
|  | may be detached from a screen | 
|  | and continue running in the background, | 
|  | then later reattached. | 
|  | .Pp | 
|  | When | 
|  | .Nm | 
|  | is started it creates a new | 
|  | .Em session | 
|  | with a single | 
|  | .Em window | 
|  | and displays it on screen. | 
|  | A status line at the bottom of the screen | 
|  | shows information on the current session | 
|  | and is used to enter interactive commands. | 
|  | .Pp | 
|  | A session is a single collection of | 
|  | .Em pseudo terminals | 
|  | under the management of | 
|  | .Nm . | 
|  | Each session has one or more | 
|  | windows linked to it. | 
|  | A window occupies the entire screen | 
|  | and may be split into rectangular panes, | 
|  | each of which is a separate pseudo terminal | 
|  | (the | 
|  | .Xr pty 4 | 
|  | manual page documents the technical details of pseudo terminals). | 
|  | Any number of | 
|  | .Nm | 
|  | instances may connect to the same session, | 
|  | and any number of windows may be present in the same session. | 
|  | Once all sessions are killed, | 
|  | .Nm | 
|  | exits. | 
|  | .Pp | 
|  | Each session is persistent and will survive accidental disconnection | 
|  | (such as | 
|  | .Xr ssh 1 | 
|  | connection timeout) or intentional detaching (with the | 
|  | .Ql C-b d | 
|  | key strokes). | 
|  | .Nm | 
|  | may be reattached using: | 
|  | .Pp | 
|  | .Dl $ tmux attach | 
|  | .Pp | 
|  | In | 
|  | .Nm , | 
|  | a session is displayed on screen by a | 
|  | .Em client | 
|  | and all sessions are managed by a single | 
|  | .Em server . | 
|  | The server and each client are separate processes which communicate through a | 
|  | socket in | 
|  | .Pa /tmp . | 
|  | .Pp | 
|  | The options are as follows: | 
|  | .Bl -tag -width "XXXXXXXXXXXX" | 
|  | .It Fl 2 | 
|  | Force | 
|  | .Nm | 
|  | to assume the terminal supports 256 colours. | 
|  | .It Fl C | 
|  | Start in control mode (see the | 
|  | .Sx CONTROL MODE | 
|  | section). | 
|  | Given twice | 
|  | .Xo ( Fl CC ) Xc | 
|  | disables echo. | 
|  | .It Fl c Ar shell-command | 
|  | Execute | 
|  | .Ar shell-command | 
|  | using the default shell. | 
|  | If necessary, the | 
|  | .Nm | 
|  | server will be started to retrieve the | 
|  | .Ic default-shell | 
|  | option. | 
|  | This option is for compatibility with | 
|  | .Xr sh 1 | 
|  | when | 
|  | .Nm | 
|  | is used as a login shell. | 
|  | .It Fl f Ar file | 
|  | Specify an alternative configuration file. | 
|  | By default, | 
|  | .Nm | 
|  | loads the system configuration file from | 
|  | .Pa @SYSCONFDIR@/tmux.conf , | 
|  | if present, then looks for a user configuration file at | 
|  | .Pa ~/.tmux.conf . | 
|  | .Pp | 
|  | The configuration file is a set of | 
|  | .Nm | 
|  | commands which are executed in sequence when the server is first started. | 
|  | .Nm | 
|  | loads configuration files once when the server process has started. | 
|  | The | 
|  | .Ic source-file | 
|  | command may be used to load a file later. | 
|  | .Pp | 
|  | .Nm | 
|  | shows any error messages from commands in configuration files in the first | 
|  | session created, and continues to process the rest of the configuration file. | 
|  | .It Fl L Ar socket-name | 
|  | .Nm | 
|  | stores the server socket in a directory under | 
|  | .Ev TMUX_TMPDIR | 
|  | or | 
|  | .Pa /tmp | 
|  | if it is unset. | 
|  | The default socket is named | 
|  | .Em default . | 
|  | This option allows a different socket name to be specified, allowing several | 
|  | independent | 
|  | .Nm | 
|  | servers to be run. | 
|  | Unlike | 
|  | .Fl S | 
|  | a full path is not necessary: the sockets are all created in the same | 
|  | directory. | 
|  | .Pp | 
|  | If the socket is accidentally removed, the | 
|  | .Dv SIGUSR1 | 
|  | signal may be sent to the | 
|  | .Nm | 
|  | server process to recreate it (note that this will fail if any parent | 
|  | directories are missing). | 
|  | .It Fl l | 
|  | Behave as a login shell. | 
|  | This flag currently has no effect and is for compatibility with other shells | 
|  | when using tmux as a login shell. | 
|  | .It Fl S Ar socket-path | 
|  | Specify a full alternative path to the server socket. | 
|  | If | 
|  | .Fl S | 
|  | is specified, the default socket directory is not used and any | 
|  | .Fl L | 
|  | flag is ignored. | 
|  | .It Fl u | 
|  | When starting, | 
|  | .Nm | 
|  | looks for the | 
|  | .Ev LC_ALL , | 
|  | .Ev LC_CTYPE | 
|  | and | 
|  | .Ev LANG | 
|  | environment variables: if the first found contains | 
|  | .Ql UTF-8 , | 
|  | then the terminal is assumed to support UTF-8. | 
|  | This is not always correct: the | 
|  | .Fl u | 
|  | flag explicitly informs | 
|  | .Nm | 
|  | that UTF-8 is supported. | 
|  | .Pp | 
|  | Note that | 
|  | .Nm | 
|  | itself always accepts UTF-8; this controls whether it will send UTF-8 | 
|  | characters to the terminal it is running (if not, they are replaced by | 
|  | .Ql _ ) . | 
|  | .It Fl v | 
|  | Request verbose logging. | 
|  | Log messages will be saved into | 
|  | .Pa tmux-client-PID.log | 
|  | and | 
|  | .Pa tmux-server-PID.log | 
|  | files in the current directory, where | 
|  | .Em PID | 
|  | is the PID of the server or client process. | 
|  | If | 
|  | .Fl v | 
|  | is specified twice, an additional | 
|  | .Pa tmux-out-PID.log | 
|  | file is generated with a copy of everything | 
|  | .Nm | 
|  | writes to the terminal. | 
|  | .Pp | 
|  | The | 
|  | .Dv SIGUSR2 | 
|  | signal may be sent to the | 
|  | .Nm | 
|  | server process to toggle logging between on (as if | 
|  | .Fl v | 
|  | was given) and off. | 
|  | .It Fl V | 
|  | Report the | 
|  | .Nm | 
|  | version. | 
|  | .Pp | 
|  | .It Ar command Op Ar flags | 
|  | This specifies one of a set of commands used to control | 
|  | .Nm , | 
|  | as described in the following sections. | 
|  | If no commands are specified, the | 
|  | .Ic new-session | 
|  | command is assumed. | 
|  | .El | 
|  | .Sh KEY BINDINGS | 
|  | .Nm | 
|  | may be controlled from an attached client by using a key combination of a | 
|  | prefix key, | 
|  | .Ql C-b | 
|  | (Ctrl-b) by default, followed by a command key. | 
|  | .Pp | 
|  | The default command key bindings are: | 
|  | .Pp | 
|  | .Bl -tag -width "XXXXXXXXXX" -offset indent -compact | 
|  | .It C-b | 
|  | Send the prefix key (C-b) through to the application. | 
|  | .It C-o | 
|  | Rotate the panes in the current window forwards. | 
|  | .It C-z | 
|  | Suspend the | 
|  | .Nm | 
|  | client. | 
|  | .It ! | 
|  | Break the current pane out of the window. | 
|  | .It \&" | 
|  | Split the current pane into two, top and bottom. | 
|  | .It # | 
|  | List all paste buffers. | 
|  | .It $ | 
|  | Rename the current session. | 
|  | .It % | 
|  | Split the current pane into two, left and right. | 
|  | .It & | 
|  | Kill the current window. | 
|  | .It ' | 
|  | Prompt for a window index to select. | 
|  | .It \&( | 
|  | Switch the attached client to the previous session. | 
|  | .It \&) | 
|  | Switch the attached client to the next session. | 
|  | .It , | 
|  | Rename the current window. | 
|  | .It - | 
|  | Delete the most recently copied buffer of text. | 
|  | .It . | 
|  | Prompt for an index to move the current window. | 
|  | .It 0 to 9 | 
|  | Select windows 0 to 9. | 
|  | .It : | 
|  | Enter the | 
|  | .Nm | 
|  | command prompt. | 
|  | .It ; | 
|  | Move to the previously active pane. | 
|  | .It = | 
|  | Choose which buffer to paste interactively from a list. | 
|  | .It \&? | 
|  | List all key bindings. | 
|  | .It D | 
|  | Choose a client to detach. | 
|  | .It L | 
|  | Switch the attached client back to the last session. | 
|  | .It \&[ | 
|  | Enter copy mode to copy text or view the history. | 
|  | .It \&] | 
|  | Paste the most recently copied buffer of text. | 
|  | .It c | 
|  | Create a new window. | 
|  | .It d | 
|  | Detach the current client. | 
|  | .It f | 
|  | Prompt to search for text in open windows. | 
|  | .It i | 
|  | Display some information about the current window. | 
|  | .It l | 
|  | Move to the previously selected window. | 
|  | .It n | 
|  | Change to the next window. | 
|  | .It o | 
|  | Select the next pane in the current window. | 
|  | .It p | 
|  | Change to the previous window. | 
|  | .It q | 
|  | Briefly display pane indexes. | 
|  | .It r | 
|  | Force redraw of the attached client. | 
|  | .It m | 
|  | Mark the current pane (see | 
|  | .Ic select-pane | 
|  | .Fl m ) . | 
|  | .It M | 
|  | Clear the marked pane. | 
|  | .It s | 
|  | Select a new session for the attached client interactively. | 
|  | .It t | 
|  | Show the time. | 
|  | .It w | 
|  | Choose the current window interactively. | 
|  | .It x | 
|  | Kill the current pane. | 
|  | .It z | 
|  | Toggle zoom state of the current pane. | 
|  | .It { | 
|  | Swap the current pane with the previous pane. | 
|  | .It } | 
|  | Swap the current pane with the next pane. | 
|  | .It ~ | 
|  | Show previous messages from | 
|  | .Nm , | 
|  | if any. | 
|  | .It Page Up | 
|  | Enter copy mode and scroll one page up. | 
|  | .It Up, Down | 
|  | .It Left, Right | 
|  | Change to the pane above, below, to the left, or to the right of the current | 
|  | pane. | 
|  | .It M-1 to M-5 | 
|  | Arrange panes in one of the five preset layouts: even-horizontal, | 
|  | even-vertical, main-horizontal, main-vertical, or tiled. | 
|  | .It Space | 
|  | Arrange the current window in the next preset layout. | 
|  | .It M-n | 
|  | Move to the next window with a bell or activity marker. | 
|  | .It M-o | 
|  | Rotate the panes in the current window backwards. | 
|  | .It M-p | 
|  | Move to the previous window with a bell or activity marker. | 
|  | .It C-Up, C-Down | 
|  | .It C-Left, C-Right | 
|  | Resize the current pane in steps of one cell. | 
|  | .It M-Up, M-Down | 
|  | .It M-Left, M-Right | 
|  | Resize the current pane in steps of five cells. | 
|  | .El | 
|  | .Pp | 
|  | Key bindings may be changed with the | 
|  | .Ic bind-key | 
|  | and | 
|  | .Ic unbind-key | 
|  | commands. | 
|  | .Sh COMMANDS | 
|  | This section contains a list of the commands supported by | 
|  | .Nm . | 
|  | Most commands accept the optional | 
|  | .Fl t | 
|  | (and sometimes | 
|  | .Fl s ) | 
|  | argument with one of | 
|  | .Ar target-client , | 
|  | .Ar target-session | 
|  | .Ar target-window , | 
|  | or | 
|  | .Ar target-pane . | 
|  | These specify the client, session, window or pane which a command should affect. | 
|  | .Pp | 
|  | .Ar target-client | 
|  | should be the name of the client, | 
|  | typically the | 
|  | .Xr pty 4 | 
|  | file to which the client is connected, for example either of | 
|  | .Pa /dev/ttyp1 | 
|  | or | 
|  | .Pa ttyp1 | 
|  | for the client attached to | 
|  | .Pa /dev/ttyp1 . | 
|  | If no client is specified, | 
|  | .Nm | 
|  | attempts to work out the client currently in use; if that fails, an error is | 
|  | reported. | 
|  | Clients may be listed with the | 
|  | .Ic list-clients | 
|  | command. | 
|  | .Pp | 
|  | .Ar target-session | 
|  | is tried as, in order: | 
|  | .Bl -enum -offset Ds | 
|  | .It | 
|  | A session ID prefixed with a $. | 
|  | .It | 
|  | An exact name of a session (as listed by the | 
|  | .Ic list-sessions | 
|  | command). | 
|  | .It | 
|  | The start of a session name, for example | 
|  | .Ql mysess | 
|  | would match a session named | 
|  | .Ql mysession . | 
|  | .It | 
|  | An | 
|  | .Xr fnmatch 3 | 
|  | pattern which is matched against the session name. | 
|  | .El | 
|  | .Pp | 
|  | If the session name is prefixed with an | 
|  | .Ql = , | 
|  | only an exact match is accepted (so | 
|  | .Ql =mysess | 
|  | will only match exactly | 
|  | .Ql mysess , | 
|  | not | 
|  | .Ql mysession ) . | 
|  | .Pp | 
|  | If a single session is found, it is used as the target session; multiple matches | 
|  | produce an error. | 
|  | If a session is omitted, the current session is used if available; if no | 
|  | current session is available, the most recently used is chosen. | 
|  | .Pp | 
|  | .Ar target-window | 
|  | (or | 
|  | .Ar src-window | 
|  | or | 
|  | .Ar dst-window ) | 
|  | specifies a window in the form | 
|  | .Em session Ns \&: Ns Em window . | 
|  | .Em session | 
|  | follows the same rules as for | 
|  | .Ar target-session , | 
|  | and | 
|  | .Em window | 
|  | is looked for in order as: | 
|  | .Bl -enum -offset Ds | 
|  | .It | 
|  | A special token, listed below. | 
|  | .It | 
|  | A window index, for example | 
|  | .Ql mysession:1 | 
|  | is window 1 in session | 
|  | .Ql mysession . | 
|  | .It | 
|  | A window ID, such as @1. | 
|  | .It | 
|  | An exact window name, such as | 
|  | .Ql mysession:mywindow . | 
|  | .It | 
|  | The start of a window name, such as | 
|  | .Ql mysession:mywin . | 
|  | .It | 
|  | As an | 
|  | .Xr fnmatch 3 | 
|  | pattern matched against the window name. | 
|  | .El | 
|  | .Pp | 
|  | Like sessions, a | 
|  | .Ql = | 
|  | prefix will do an exact match only. | 
|  | An empty window name specifies the next unused index if appropriate (for | 
|  | example the | 
|  | .Ic new-window | 
|  | and | 
|  | .Ic link-window | 
|  | commands) | 
|  | otherwise the current window in | 
|  | .Em session | 
|  | is chosen. | 
|  | .Pp | 
|  | The following special tokens are available to indicate particular windows. | 
|  | Each has a single-character alternative form. | 
|  | .Bl -column "XXXXXXXXXX" "X" | 
|  | .It Sy "Token" Ta Sy "" Ta Sy "Meaning" | 
|  | .It Li "{start}" Ta "^" Ta "The lowest-numbered window" | 
|  | .It Li "{end}" Ta "$" Ta "The highest-numbered window" | 
|  | .It Li "{last}" Ta "!" Ta "The last (previously current) window" | 
|  | .It Li "{next}" Ta "+" Ta "The next window by number" | 
|  | .It Li "{previous}" Ta "-" Ta "The previous window by number" | 
|  | .El | 
|  | .Pp | 
|  | .Ar target-pane | 
|  | (or | 
|  | .Ar src-pane | 
|  | or | 
|  | .Ar dst-pane ) | 
|  | may be a pane ID or takes a similar form to | 
|  | .Ar target-window | 
|  | but with the optional addition of a period followed by a pane index or pane ID, | 
|  | for example: | 
|  | .Ql mysession:mywindow.1 . | 
|  | If the pane index is omitted, the currently active pane in the specified | 
|  | window is used. | 
|  | The following special tokens are available for the pane index: | 
|  | .Bl -column "XXXXXXXXXXXXXX" "X" | 
|  | .It Sy "Token" Ta Sy "" Ta Sy "Meaning" | 
|  | .It Li "{last}" Ta "!" Ta "The last (previously active) pane" | 
|  | .It Li "{next}" Ta "+" Ta "The next pane by number" | 
|  | .It Li "{previous}" Ta "-" Ta "The previous pane by number" | 
|  | .It Li "{top}" Ta "" Ta "The top pane" | 
|  | .It Li "{bottom}" Ta "" Ta "The bottom pane" | 
|  | .It Li "{left}" Ta "" Ta "The leftmost pane" | 
|  | .It Li "{right}" Ta "" Ta "The rightmost pane" | 
|  | .It Li "{top-left}" Ta "" Ta "The top-left pane" | 
|  | .It Li "{top-right}" Ta "" Ta "The top-right pane" | 
|  | .It Li "{bottom-left}" Ta "" Ta "The bottom-left pane" | 
|  | .It Li "{bottom-right}" Ta "" Ta "The bottom-right pane" | 
|  | .It Li "{up-of}" Ta "" Ta "The pane above the active pane" | 
|  | .It Li "{down-of}" Ta "" Ta "The pane below the active pane" | 
|  | .It Li "{left-of}" Ta "" Ta "The pane to the left of the active pane" | 
|  | .It Li "{right-of}" Ta "" Ta "The pane to the right of the active pane" | 
|  | .El | 
|  | .Pp | 
|  | The tokens | 
|  | .Ql + | 
|  | and | 
|  | .Ql - | 
|  | may be followed by an offset, for example: | 
|  | .Bd -literal -offset indent | 
|  | select-window -t:+2 | 
|  | .Ed | 
|  | .Pp | 
|  | In addition, | 
|  | .Em target-session , | 
|  | .Em target-window | 
|  | or | 
|  | .Em target-pane | 
|  | may consist entirely of the token | 
|  | .Ql {mouse} | 
|  | (alternative form | 
|  | .Ql = ) | 
|  | to specify the most recent mouse event | 
|  | (see the | 
|  | .Sx MOUSE SUPPORT | 
|  | section) | 
|  | or | 
|  | .Ql {marked} | 
|  | (alternative form | 
|  | .Ql ~ ) | 
|  | to specify the marked pane (see | 
|  | .Ic select-pane | 
|  | .Fl m ) . | 
|  | .Pp | 
|  | Sessions, window and panes are each numbered with a unique ID; session IDs are | 
|  | prefixed with a | 
|  | .Ql $ , | 
|  | windows with a | 
|  | .Ql @ , | 
|  | and panes with a | 
|  | .Ql % . | 
|  | These are unique and are unchanged for the life of the session, window or pane | 
|  | in the | 
|  | .Nm | 
|  | server. | 
|  | The pane ID is passed to the child process of the pane in the | 
|  | .Ev TMUX_PANE | 
|  | environment variable. | 
|  | IDs may be displayed using the | 
|  | .Ql session_id , | 
|  | .Ql window_id , | 
|  | or | 
|  | .Ql pane_id | 
|  | formats (see the | 
|  | .Sx FORMATS | 
|  | section) and the | 
|  | .Ic display-message , | 
|  | .Ic list-sessions , | 
|  | .Ic list-windows | 
|  | or | 
|  | .Ic list-panes | 
|  | commands. | 
|  | .Pp | 
|  | .Ar shell-command | 
|  | arguments are | 
|  | .Xr sh 1 | 
|  | commands. | 
|  | This may be a single argument passed to the shell, for example: | 
|  | .Bd -literal -offset indent | 
|  | new-window 'vi /etc/passwd' | 
|  | .Ed | 
|  | .Pp | 
|  | Will run: | 
|  | .Bd -literal -offset indent | 
|  | /bin/sh -c 'vi /etc/passwd' | 
|  | .Ed | 
|  | .Pp | 
|  | Additionally, the | 
|  | .Ic new-window , | 
|  | .Ic new-session , | 
|  | .Ic split-window , | 
|  | .Ic respawn-window | 
|  | and | 
|  | .Ic respawn-pane | 
|  | commands allow | 
|  | .Ar shell-command | 
|  | to be given as multiple arguments and executed directly (without | 
|  | .Ql sh -c ) . | 
|  | This can avoid issues with shell quoting. | 
|  | For example: | 
|  | .Bd -literal -offset indent | 
|  | $ tmux new-window vi /etc/passwd | 
|  | .Ed | 
|  | .Pp | 
|  | Will run | 
|  | .Xr vi 1 | 
|  | directly without invoking the shell. | 
|  | .Pp | 
|  | .Ar command | 
|  | .Op Ar arguments | 
|  | refers to a | 
|  | .Nm | 
|  | command, passed with the command and arguments separately, for example: | 
|  | .Bd -literal -offset indent | 
|  | bind-key F1 set-window-option force-width 81 | 
|  | .Ed | 
|  | .Pp | 
|  | Or if using | 
|  | .Xr sh 1 : | 
|  | .Bd -literal -offset indent | 
|  | $ tmux bind-key F1 set-window-option force-width 81 | 
|  | .Ed | 
|  | .Pp | 
|  | Multiple commands may be specified together as part of a | 
|  | .Em command sequence . | 
|  | Each command should be separated by spaces and a semicolon; | 
|  | commands are executed sequentially from left to right and | 
|  | lines ending with a backslash continue on to the next line, | 
|  | except when escaped by another backslash. | 
|  | A literal semicolon may be included by escaping it with a backslash (for | 
|  | example, when specifying a command sequence to | 
|  | .Ic bind-key ) . | 
|  | .Pp | 
|  | Example | 
|  | .Nm | 
|  | commands include: | 
|  | .Bd -literal -offset indent | 
|  | refresh-client -t/dev/ttyp2 | 
|  |  | 
|  | rename-session -tfirst newname | 
|  |  | 
|  | set-window-option -t:0 monitor-activity on | 
|  |  | 
|  | new-window ; split-window -d | 
|  |  | 
|  | bind-key R source-file ~/.tmux.conf \e; \e | 
|  | display-message "source-file done" | 
|  | .Ed | 
|  | .Pp | 
|  | Or from | 
|  | .Xr sh 1 : | 
|  | .Bd -literal -offset indent | 
|  | $ tmux kill-window -t :1 | 
|  |  | 
|  | $ tmux new-window \e; split-window -d | 
|  |  | 
|  | $ tmux new-session -d 'vi /etc/passwd' \e; split-window -d \e; attach | 
|  | .Ed | 
|  | .Sh CLIENTS AND SESSIONS | 
|  | The | 
|  | .Nm | 
|  | server manages clients, sessions, windows and panes. | 
|  | Clients are attached to sessions to interact with them, either | 
|  | when they are created with the | 
|  | .Ic new-session | 
|  | command, or later with the | 
|  | .Ic attach-session | 
|  | command. | 
|  | Each session has one or more windows | 
|  | .Em linked | 
|  | into it. | 
|  | Windows may be linked to multiple sessions and are made up of one or | 
|  | more panes, | 
|  | each of which contains a pseudo terminal. | 
|  | Commands for creating, linking and otherwise manipulating windows | 
|  | are covered | 
|  | in the | 
|  | .Sx WINDOWS AND PANES | 
|  | section. | 
|  | .Pp | 
|  | The following commands are available to manage clients and sessions: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo Ic attach-session | 
|  | .Op Fl dEr | 
|  | .Op Fl c Ar working-directory | 
|  | .Op Fl t Ar target-session | 
|  | .Xc | 
|  | .D1 (alias: Ic attach ) | 
|  | If run from outside | 
|  | .Nm , | 
|  | create a new client in the current terminal and attach it to | 
|  | .Ar target-session . | 
|  | If used from inside, switch the current client. | 
|  | If | 
|  | .Fl d | 
|  | is specified, any other clients attached to the session are detached. | 
|  | .Fl r | 
|  | signifies the client is read-only (only keys bound to the | 
|  | .Ic detach-client | 
|  | or | 
|  | .Ic switch-client | 
|  | commands have any effect) | 
|  | .Pp | 
|  | If no server is started, | 
|  | .Ic attach-session | 
|  | will attempt to start it; this will fail unless sessions are created in the | 
|  | configuration file. | 
|  | .Pp | 
|  | The | 
|  | .Ar target-session | 
|  | rules for | 
|  | .Ic attach-session | 
|  | are slightly adjusted: if | 
|  | .Nm | 
|  | needs to select the most recently used session, it will prefer the most | 
|  | recently used | 
|  | .Em unattached | 
|  | session. | 
|  | .Pp | 
|  | .Fl c | 
|  | will set the session working directory (used for new windows) to | 
|  | .Ar working-directory . | 
|  | .Pp | 
|  | If | 
|  | .Fl E | 
|  | is used, the | 
|  | .Ic update-environment | 
|  | option will not be applied. | 
|  | .It Xo Ic detach-client | 
|  | .Op Fl aP | 
|  | .Op Fl E Ar shell-command | 
|  | .Op Fl s Ar target-session | 
|  | .Op Fl t Ar target-client | 
|  | .Xc | 
|  | .D1 (alias: Ic detach ) | 
|  | Detach the current client if bound to a key, the client specified with | 
|  | .Fl t , | 
|  | or all clients currently attached to the session specified by | 
|  | .Fl s . | 
|  | The | 
|  | .Fl a | 
|  | option kills all but the client given with | 
|  | .Fl t . | 
|  | If | 
|  | .Fl P | 
|  | is given, send SIGHUP to the parent process of the client, typically causing it | 
|  | to exit. | 
|  | With | 
|  | .Fl E , | 
|  | run | 
|  | .Ar shell-command | 
|  | to replace the client. | 
|  | .It Ic has-session Op Fl t Ar target-session | 
|  | .D1 (alias: Ic has ) | 
|  | Report an error and exit with 1 if the specified session does not exist. | 
|  | If it does exist, exit with 0. | 
|  | .It Ic kill-server | 
|  | Kill the | 
|  | .Nm | 
|  | server and clients and destroy all sessions. | 
|  | .It Xo Ic kill-session | 
|  | .Op Fl aC | 
|  | .Op Fl t Ar target-session | 
|  | .Xc | 
|  | Destroy the given session, closing any windows linked to it and no other | 
|  | sessions, and detaching all clients attached to it. | 
|  | If | 
|  | .Fl a | 
|  | is given, all sessions but the specified one is killed. | 
|  | The | 
|  | .Fl C | 
|  | flag clears alerts (bell, activity, or silence) in all windows linked to the | 
|  | session. | 
|  | .It Xo Ic list-clients | 
|  | .Op Fl F Ar format | 
|  | .Op Fl t Ar target-session | 
|  | .Xc | 
|  | .D1 (alias: Ic lsc ) | 
|  | List all clients attached to the server. | 
|  | For the meaning of the | 
|  | .Fl F | 
|  | flag, see the | 
|  | .Sx FORMATS | 
|  | section. | 
|  | If | 
|  | .Ar target-session | 
|  | is specified, list only clients connected to that session. | 
|  | .It Xo Ic list-commands | 
|  | .Op Fl F Ar format | 
|  | .Xc | 
|  | .D1 (alias: Ic lscm ) | 
|  | List the syntax of all commands supported by | 
|  | .Nm . | 
|  | .It Ic list-sessions Op Fl F Ar format | 
|  | .D1 (alias: Ic ls ) | 
|  | List all sessions managed by the server. | 
|  | For the meaning of the | 
|  | .Fl F | 
|  | flag, see the | 
|  | .Sx FORMATS | 
|  | section. | 
|  | .It Ic lock-client Op Fl t Ar target-client | 
|  | .D1 (alias: Ic lockc ) | 
|  | Lock | 
|  | .Ar target-client , | 
|  | see the | 
|  | .Ic lock-server | 
|  | command. | 
|  | .It Ic lock-session Op Fl t Ar target-session | 
|  | .D1 (alias: Ic locks ) | 
|  | Lock all clients attached to | 
|  | .Ar target-session . | 
|  | .It Xo Ic new-session | 
|  | .Op Fl AdDEP | 
|  | .Op Fl c Ar start-directory | 
|  | .Op Fl F Ar format | 
|  | .Op Fl n Ar window-name | 
|  | .Op Fl s Ar session-name | 
|  | .Op Fl t Ar group-name | 
|  | .Op Fl x Ar width | 
|  | .Op Fl y Ar height | 
|  | .Op Ar shell-command | 
|  | .Xc | 
|  | .D1 (alias: Ic new ) | 
|  | Create a new session with name | 
|  | .Ar session-name . | 
|  | .Pp | 
|  | The new session is attached to the current terminal unless | 
|  | .Fl d | 
|  | is given. | 
|  | .Ar window-name | 
|  | and | 
|  | .Ar shell-command | 
|  | are the name of and shell command to execute in the initial window. | 
|  | With | 
|  | .Fl d , | 
|  | the initial size is 80 x 24; | 
|  | .Fl x | 
|  | and | 
|  | .Fl y | 
|  | can be used to specify a different size. | 
|  | .Pp | 
|  | If run from a terminal, any | 
|  | .Xr termios 4 | 
|  | special characters are saved and used for new windows in the new session. | 
|  | .Pp | 
|  | The | 
|  | .Fl A | 
|  | flag makes | 
|  | .Ic new-session | 
|  | behave like | 
|  | .Ic attach-session | 
|  | if | 
|  | .Ar session-name | 
|  | already exists; in this case, | 
|  | .Fl D | 
|  | behaves like | 
|  | .Fl d | 
|  | to | 
|  | .Ic attach-session . | 
|  | .Pp | 
|  | If | 
|  | .Fl t | 
|  | is given, it specifies a | 
|  | .Ic session group . | 
|  | Sessions in the same group share the same set of windows - new windows are | 
|  | linked to all sessions in the group and any windows closed removed from all | 
|  | sessions. | 
|  | The current and previous window and any session options remain independent and | 
|  | any session in a group may be killed without affecting the others. | 
|  | The | 
|  | .Ar group-name | 
|  | argument may be: | 
|  | .Bl -enum -width Ds | 
|  | .It | 
|  | the name of an existing group, in which case the new session is added to that | 
|  | group; | 
|  | .It | 
|  | the name of an existing session - the new session is added to the same group | 
|  | as that session, creating a new group if necessary; | 
|  | .It | 
|  | the name for a new group containing only the new session. | 
|  | .El | 
|  | .Pp | 
|  | .Fl n | 
|  | and | 
|  | .Ar shell-command | 
|  | are invalid if | 
|  | .Fl t | 
|  | is used. | 
|  | .Pp | 
|  | The | 
|  | .Fl P | 
|  | option prints information about the new session after it has been created. | 
|  | By default, it uses the format | 
|  | .Ql #{session_name}: | 
|  | but a different format may be specified with | 
|  | .Fl F . | 
|  | .Pp | 
|  | If | 
|  | .Fl E | 
|  | is used, the | 
|  | .Ic update-environment | 
|  | option will not be applied. | 
|  | .It Xo Ic refresh-client | 
|  | .Op Fl C Ar width,height | 
|  | .Op Fl S | 
|  | .Op Fl t Ar target-client | 
|  | .Xc | 
|  | .D1 (alias: Ic refresh ) | 
|  | Refresh the current client if bound to a key, or a single client if one is given | 
|  | with | 
|  | .Fl t . | 
|  | If | 
|  | .Fl S | 
|  | is specified, only update the client's status line. | 
|  | .Pp | 
|  | .Fl C | 
|  | sets the width and height of a control client. | 
|  | .It Xo Ic rename-session | 
|  | .Op Fl t Ar target-session | 
|  | .Ar new-name | 
|  | .Xc | 
|  | .D1 (alias: Ic rename ) | 
|  | Rename the session to | 
|  | .Ar new-name . | 
|  | .It Xo Ic show-messages | 
|  | .Op Fl JT | 
|  | .Op Fl t Ar target-client | 
|  | .Xc | 
|  | .D1 (alias: Ic showmsgs ) | 
|  | Show client messages or server information. | 
|  | Any messages displayed on the status line are saved in a per-client message | 
|  | log, up to a maximum of the limit set by the | 
|  | .Ar message-limit | 
|  | server option. | 
|  | With | 
|  | .Fl t , | 
|  | display the log for | 
|  | .Ar target-client . | 
|  | .Fl J | 
|  | and | 
|  | .Fl T | 
|  | show debugging information about jobs and terminals. | 
|  | .It Xo Ic source-file | 
|  | .Op Fl q | 
|  | .Ar path | 
|  | .Xc | 
|  | .D1 (alias: Ic source ) | 
|  | Execute commands from | 
|  | .Ar path | 
|  | (which may be a | 
|  | .Xr glob 3 | 
|  | pattern). | 
|  | If | 
|  | .Fl q | 
|  | is given, no error will be returned if | 
|  | .Ar path | 
|  | does not exist. | 
|  | .Pp | 
|  | Within a configuration file, commands may be made conditional by surrounding | 
|  | them with | 
|  | .Em %if | 
|  | and | 
|  | .Em %endif | 
|  | lines. | 
|  | Additional | 
|  | .Em %elif | 
|  | and | 
|  | .Em %else | 
|  | lines may also be used. | 
|  | The argument to | 
|  | .Em %if | 
|  | and | 
|  | .Em %elif | 
|  | is expanded as a format and if it evaluates to false (zero or empty), | 
|  | subsequent lines are ignored until the next | 
|  | .Em %elif , | 
|  | .Em %else | 
|  | or | 
|  | .Em %endif . | 
|  | For example: | 
|  | .Bd -literal -offset indent | 
|  | %if #{==:#{host},myhost} | 
|  | set -g status-style bg=red | 
|  | %elif #{==:#{host},myotherhost} | 
|  | set -g status-style bg=green | 
|  | %else | 
|  | set -g status-style bg=blue | 
|  | %endif | 
|  | .Ed | 
|  | .Pp | 
|  | Will change the status line to red if running on | 
|  | .Ql myhost , | 
|  | green if running on | 
|  | .Ql myotherhost , | 
|  | or blue if running on another host. | 
|  | .It Ic start-server | 
|  | .D1 (alias: Ic start ) | 
|  | Start the | 
|  | .Nm | 
|  | server, if not already running, without creating any sessions. | 
|  | .It Xo Ic suspend-client | 
|  | .Op Fl t Ar target-client | 
|  | .Xc | 
|  | .D1 (alias: Ic suspendc ) | 
|  | Suspend a client by sending | 
|  | .Dv SIGTSTP | 
|  | (tty stop). | 
|  | .It Xo Ic switch-client | 
|  | .Op Fl Elnpr | 
|  | .Op Fl c Ar target-client | 
|  | .Op Fl t Ar target-session | 
|  | .Op Fl T Ar key-table | 
|  | .Xc | 
|  | .D1 (alias: Ic switchc ) | 
|  | Switch the current session for client | 
|  | .Ar target-client | 
|  | to | 
|  | .Ar target-session . | 
|  | If | 
|  | .Fl l , | 
|  | .Fl n | 
|  | or | 
|  | .Fl p | 
|  | is used, the client is moved to the last, next or previous session | 
|  | respectively. | 
|  | .Fl r | 
|  | toggles whether a client is read-only (see the | 
|  | .Ic attach-session | 
|  | command). | 
|  | .Pp | 
|  | If | 
|  | .Fl E | 
|  | is used, | 
|  | .Ic update-environment | 
|  | option will not be applied. | 
|  | .Pp | 
|  | .Fl T | 
|  | sets the client's key table; the next key from the client will be interpreted from | 
|  | .Ar key-table . | 
|  | This may be used to configure multiple prefix keys, or to bind commands to | 
|  | sequences of keys. | 
|  | For example, to make typing | 
|  | .Ql abc | 
|  | run the | 
|  | .Ic list-keys | 
|  | command: | 
|  | .Bd -literal -offset indent | 
|  | bind-key -Ttable2 c list-keys | 
|  | bind-key -Ttable1 b switch-client -Ttable2 | 
|  | bind-key -Troot   a switch-client -Ttable1 | 
|  | .Ed | 
|  | .El | 
|  | .Sh WINDOWS AND PANES | 
|  | A | 
|  | .Nm | 
|  | window may be in one of two modes. | 
|  | The default permits direct access to the terminal attached to the window. | 
|  | The other is copy mode, which permits a section of a window or its | 
|  | history to be copied to a | 
|  | .Em paste buffer | 
|  | for later insertion into another window. | 
|  | This mode is entered with the | 
|  | .Ic copy-mode | 
|  | command, bound to | 
|  | .Ql \&[ | 
|  | by default. | 
|  | It is also entered when a command that produces output, such as | 
|  | .Ic list-keys , | 
|  | is executed from a key binding. | 
|  | .Pp | 
|  | Commands are sent to copy mode using the | 
|  | .Fl X | 
|  | flag to the | 
|  | .Ic send-keys | 
|  | command. | 
|  | When a key is pressed, copy mode automatically uses one of two key tables, | 
|  | depending on the | 
|  | .Ic mode-keys | 
|  | option: | 
|  | .Ic copy-mode | 
|  | for emacs, or | 
|  | .Ic copy-mode-vi | 
|  | for vi. | 
|  | Key tables may be viewed with the | 
|  | .Ic list-keys | 
|  | command. | 
|  | .Pp | 
|  | The following commands are supported in copy mode: | 
|  | .Bl -column "CommandXXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent | 
|  | .It Sy "Command" Ta Sy "vi" Ta Sy "emacs" | 
|  | .It Li "append-selection" Ta "" Ta "" | 
|  | .It Li "append-selection-and-cancel" Ta "A" Ta "" | 
|  | .It Li "back-to-indentation" Ta "^" Ta "M-m" | 
|  | .It Li "begin-selection" Ta "Space" Ta "C-Space" | 
|  | .It Li "bottom-line" Ta "L" Ta "" | 
|  | .It Li "cancel" Ta "q" Ta "Escape" | 
|  | .It Li "clear-selection" Ta "Escape" Ta "C-g" | 
|  | .It Li "copy-end-of-line" Ta "D" Ta "C-k" | 
|  | .It Li "copy-line" Ta "" Ta "" | 
|  | .It Li "copy-pipe <command>" Ta "" Ta "" | 
|  | .It Li "copy-pipe-and-cancel <command>" Ta "" Ta "" | 
|  | .It Li "copy-selection" Ta "" Ta "" | 
|  | .It Li "copy-selection-and-cancel" Ta "Enter" Ta "M-w" | 
|  | .It Li "cursor-down" Ta "j" Ta "Down" | 
|  | .It Li "cursor-left" Ta "h" Ta "Left" | 
|  | .It Li "cursor-right" Ta "l" Ta "Right" | 
|  | .It Li "cursor-up" Ta "k" Ta "Up" | 
|  | .It Li "end-of-line" Ta "$" Ta "C-e" | 
|  | .It Li "goto-line <line>" Ta ":" Ta "g" | 
|  | .It Li "halfpage-down" Ta "C-d" Ta "M-Down" | 
|  | .It Li "halfpage-down-and-cancel" Ta "" Ta "" | 
|  | .It Li "halfpage-up" Ta "C-u" Ta "M-Up" | 
|  | .It Li "history-bottom" Ta "G" Ta "M->" | 
|  | .It Li "history-top" Ta "g" Ta "M-<" | 
|  | .It Li "jump-again" Ta ";" Ta ";" | 
|  | .It Li "jump-backward <to>" Ta "F" Ta "F" | 
|  | .It Li "jump-forward <to>" Ta "f" Ta "f" | 
|  | .It Li "jump-reverse" Ta "," Ta "," | 
|  | .It Li "jump-to-backward <to>" Ta "T" Ta "" | 
|  | .It Li "jump-to-forward <to>" Ta "t" Ta "" | 
|  | .It Li "middle-line" Ta "M" Ta "M-r" | 
|  | .It Li "next-paragraph" Ta "}" Ta "M-}" | 
|  | .It Li "next-space" Ta "W" Ta "" | 
|  | .It Li "next-space-end" Ta "E" Ta "" | 
|  | .It Li "next-word" Ta "w" Ta "" | 
|  | .It Li "next-word-end" Ta "e" Ta "M-f" | 
|  | .It Li "other-end" Ta "o" Ta "" | 
|  | .It Li "page-down" Ta "C-f" Ta "PageDown" | 
|  | .It Li "page-down-and-cancel" Ta "" Ta "" | 
|  | .It Li "page-up" Ta "C-b" Ta "PageUp" | 
|  | .It Li "previous-paragraph" Ta "{" Ta "M-{" | 
|  | .It Li "previous-space" Ta "B" Ta "" | 
|  | .It Li "previous-word" Ta "b" Ta "M-b" | 
|  | .It Li "rectangle-toggle" Ta "v" Ta "R" | 
|  | .It Li "scroll-down" Ta "C-e" Ta "C-Down" | 
|  | .It Li "scroll-down-and-cancel" Ta "" Ta "" | 
|  | .It Li "scroll-up" Ta "C-y" Ta "C-Up" | 
|  | .It Li "search-again" Ta "n" Ta "n" | 
|  | .It Li "search-backward <for>" Ta "?" Ta "" | 
|  | .It Li "search-forward <for>" Ta "/" Ta "" | 
|  | .It Li "search-backward-incremental <for>" Ta "" Ta "C-r" | 
|  | .It Li "search-forward-incremental <for>" Ta "" Ta "C-s" | 
|  | .It Li "search-reverse" Ta "N" Ta "N" | 
|  | .It Li "select-line" Ta "V" Ta "" | 
|  | .It Li "start-of-line" Ta "0" Ta "C-a" | 
|  | .It Li "stop-selection" Ta "" Ta "" | 
|  | .It Li "top-line" Ta "H" Ta "M-R" | 
|  | .El | 
|  | .Pp | 
|  | The | 
|  | .Ql -and-cancel | 
|  | variants of some commands exit copy mode after they have completed (for copy | 
|  | commands) or when the cursor reaches the bottom (for scrolling commands). | 
|  | .Pp | 
|  | The next and previous word keys use space and the | 
|  | .Ql - , | 
|  | .Ql _ | 
|  | and | 
|  | .Ql @ | 
|  | characters as word delimiters by default, but this can be adjusted by | 
|  | setting the | 
|  | .Em word-separators | 
|  | session option. | 
|  | Next word moves to the start of the next word, next word end to the end of the | 
|  | next word and previous word to the start of the previous word. | 
|  | The three next and previous space keys work similarly but use a space alone as | 
|  | the word separator. | 
|  | .Pp | 
|  | The jump commands enable quick movement within a line. | 
|  | For instance, typing | 
|  | .Ql f | 
|  | followed by | 
|  | .Ql / | 
|  | will move the cursor to the next | 
|  | .Ql / | 
|  | character on the current line. | 
|  | A | 
|  | .Ql \&; | 
|  | will then jump to the next occurrence. | 
|  | .Pp | 
|  | Commands in copy mode may be prefaced by an optional repeat count. | 
|  | With vi key bindings, a prefix is entered using the number keys; with | 
|  | emacs, the Alt (meta) key and a number begins prefix entry. | 
|  | .Pp | 
|  | The synopsis for the | 
|  | .Ic copy-mode | 
|  | command is: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo Ic copy-mode | 
|  | .Op Fl Meu | 
|  | .Op Fl t Ar target-pane | 
|  | .Xc | 
|  | Enter copy mode. | 
|  | The | 
|  | .Fl u | 
|  | option scrolls one page up. | 
|  | .Fl M | 
|  | begins a mouse drag (only valid if bound to a mouse key binding, see | 
|  | .Sx MOUSE SUPPORT ) . | 
|  | .Fl e | 
|  | specifies that scrolling to the bottom of the history (to the visible screen) | 
|  | should exit copy mode. | 
|  | While in copy mode, pressing a key other than those used for scrolling will | 
|  | disable this behaviour. | 
|  | This is intended to allow fast scrolling through a pane's history, for | 
|  | example with: | 
|  | .Bd -literal -offset indent | 
|  | bind PageUp copy-mode -eu | 
|  | .Ed | 
|  | .El | 
|  | .Pp | 
|  | Each window displayed by | 
|  | .Nm | 
|  | may be split into one or more | 
|  | .Em panes ; | 
|  | each pane takes up a certain area of the display and is a separate terminal. | 
|  | A window may be split into panes using the | 
|  | .Ic split-window | 
|  | command. | 
|  | Windows may be split horizontally (with the | 
|  | .Fl h | 
|  | flag) or vertically. | 
|  | Panes may be resized with the | 
|  | .Ic resize-pane | 
|  | command (bound to | 
|  | .Ql C-Up , | 
|  | .Ql C-Down | 
|  | .Ql C-Left | 
|  | and | 
|  | .Ql C-Right | 
|  | by default), the current pane may be changed with the | 
|  | .Ic select-pane | 
|  | command and the | 
|  | .Ic rotate-window | 
|  | and | 
|  | .Ic swap-pane | 
|  | commands may be used to swap panes without changing their position. | 
|  | Panes are numbered beginning from zero in the order they are created. | 
|  | .Pp | 
|  | A number of preset | 
|  | .Em layouts | 
|  | are available. | 
|  | These may be selected with the | 
|  | .Ic select-layout | 
|  | command or cycled with | 
|  | .Ic next-layout | 
|  | (bound to | 
|  | .Ql Space | 
|  | by default); once a layout is chosen, panes within it may be moved and resized | 
|  | as normal. | 
|  | .Pp | 
|  | The following layouts are supported: | 
|  | .Bl -tag -width Ds | 
|  | .It Ic even-horizontal | 
|  | Panes are spread out evenly from left to right across the window. | 
|  | .It Ic even-vertical | 
|  | Panes are spread evenly from top to bottom. | 
|  | .It Ic main-horizontal | 
|  | A large (main) pane is shown at the top of the window and the remaining panes | 
|  | are spread from left to right in the leftover space at the bottom. | 
|  | Use the | 
|  | .Em main-pane-height | 
|  | window option to specify the height of the top pane. | 
|  | .It Ic main-vertical | 
|  | Similar to | 
|  | .Ic main-horizontal | 
|  | but the large pane is placed on the left and the others spread from top to | 
|  | bottom along the right. | 
|  | See the | 
|  | .Em main-pane-width | 
|  | window option. | 
|  | .It Ic tiled | 
|  | Panes are spread out as evenly as possible over the window in both rows and | 
|  | columns. | 
|  | .El | 
|  | .Pp | 
|  | In addition, | 
|  | .Ic select-layout | 
|  | may be used to apply a previously used layout - the | 
|  | .Ic list-windows | 
|  | command displays the layout of each window in a form suitable for use with | 
|  | .Ic select-layout . | 
|  | For example: | 
|  | .Bd -literal -offset indent | 
|  | $ tmux list-windows | 
|  | 0: ksh [159x48] | 
|  | layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0} | 
|  | $ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0} | 
|  | .Ed | 
|  | .Pp | 
|  | .Nm | 
|  | automatically adjusts the size of the layout for the current window size. | 
|  | Note that a layout cannot be applied to a window with more panes than that | 
|  | from which the layout was originally defined. | 
|  | .Pp | 
|  | Commands related to windows and panes are as follows: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo Ic break-pane | 
|  | .Op Fl dP | 
|  | .Op Fl F Ar format | 
|  | .Op Fl n Ar window-name | 
|  | .Op Fl s Ar src-pane | 
|  | .Op Fl t Ar dst-window | 
|  | .Xc | 
|  | .D1 (alias: Ic breakp ) | 
|  | Break | 
|  | .Ar src-pane | 
|  | off from its containing window to make it the only pane in | 
|  | .Ar dst-window . | 
|  | If | 
|  | .Fl d | 
|  | is given, the new window does not become the current window. | 
|  | The | 
|  | .Fl P | 
|  | option prints information about the new window after it has been created. | 
|  | By default, it uses the format | 
|  | .Ql #{session_name}:#{window_index} | 
|  | but a different format may be specified with | 
|  | .Fl F . | 
|  | .It Xo Ic capture-pane | 
|  | .Op Fl aepPqCJ | 
|  | .Op Fl b Ar buffer-name | 
|  | .Op Fl E Ar end-line | 
|  | .Op Fl S Ar start-line | 
|  | .Op Fl t Ar target-pane | 
|  | .Xc | 
|  | .D1 (alias: Ic capturep ) | 
|  | Capture the contents of a pane. | 
|  | If | 
|  | .Fl p | 
|  | is given, the output goes to stdout, otherwise to the buffer specified with | 
|  | .Fl b | 
|  | or a new buffer if omitted. | 
|  | If | 
|  | .Fl a | 
|  | is given, the alternate screen is used, and the history is not accessible. | 
|  | If no alternate screen exists, an error will be returned unless | 
|  | .Fl q | 
|  | is given. | 
|  | If | 
|  | .Fl e | 
|  | is given, the output includes escape sequences for text and background | 
|  | attributes. | 
|  | .Fl C | 
|  | also escapes non-printable characters as octal \exxx. | 
|  | .Fl J | 
|  | joins wrapped lines and preserves trailing spaces at each line's end. | 
|  | .Fl P | 
|  | captures only any output that the pane has received that is the beginning of an | 
|  | as-yet incomplete escape sequence. | 
|  | .Pp | 
|  | .Fl S | 
|  | and | 
|  | .Fl E | 
|  | specify the starting and ending line numbers, zero is the first line of the | 
|  | visible pane and negative numbers are lines in the history. | 
|  | .Ql - | 
|  | to | 
|  | .Fl S | 
|  | is the start of the history and to | 
|  | .Fl E | 
|  | the end of the visible pane. | 
|  | The default is to capture only the visible contents of the pane. | 
|  | .It Xo | 
|  | .Ic choose-client | 
|  | .Op Fl N | 
|  | .Op Fl F Ar format | 
|  | .Op Fl f Ar filter | 
|  | .Op Fl O Ar sort-order | 
|  | .Op Fl t Ar target-pane | 
|  | .Op Ar template | 
|  | .Xc | 
|  | Put a pane into client mode, allowing a client to be selected interactively from | 
|  | a list. | 
|  | The following keys may be used in client mode: | 
|  | .Bl -column "Key" "Function" -offset indent | 
|  | .It Sy "Key" Ta Sy "Function" | 
|  | .It Li "Enter" Ta "Choose selected client" | 
|  | .It Li "Up" Ta "Select previous client" | 
|  | .It Li "Down" Ta "Select next client" | 
|  | .It Li "C-s" Ta "Search by name" | 
|  | .It Li "n" Ta "Repeat last search" | 
|  | .It Li "t" Ta "Toggle if client is tagged" | 
|  | .It Li "T" Ta "Tag no clients" | 
|  | .It Li "C-t" Ta "Tag all clients" | 
|  | .It Li "d" Ta "Detach selected client" | 
|  | .It Li "D" Ta "Detach tagged clients" | 
|  | .It Li "x" Ta "Detach and HUP selected client" | 
|  | .It Li "X" Ta "Detach and HUP tagged clients" | 
|  | .It Li "z" Ta "Suspend selected client" | 
|  | .It Li "Z" Ta "Suspend tagged clients" | 
|  | .It Li "f" Ta "Enter a format to filter items" | 
|  | .It Li "O" Ta "Change sort order" | 
|  | .It Li "v" Ta "Toggle preview" | 
|  | .It Li "q" Ta "Exit mode" | 
|  | .El | 
|  | .Pp | 
|  | After a client is chosen, | 
|  | .Ql %% | 
|  | is replaced by the client name in | 
|  | .Ar template | 
|  | and the result executed as a command. | 
|  | If | 
|  | .Ar template | 
|  | is not given, "detach-client -t '%%'" is used. | 
|  | .Pp | 
|  | .Fl O | 
|  | specifies the initial sort order: one of | 
|  | .Ql name , | 
|  | .Ql size , | 
|  | .Ql creation , | 
|  | or | 
|  | .Ql activity . | 
|  | .Fl f | 
|  | specifies an initial filter: the filter is a format - if it evaluates to zero, | 
|  | the item in the list is not shown, otherwise it is shown. | 
|  | If a filter would lead to an empty list, it is ignored. | 
|  | .Fl F | 
|  | specifies the format for each item in the list. | 
|  | .Fl N | 
|  | starts without the preview. | 
|  | This command works only if at least one client is attached. | 
|  | .It Xo | 
|  | .Ic choose-tree | 
|  | .Op Fl GNsw | 
|  | .Op Fl F Ar format | 
|  | .Op Fl f Ar filter | 
|  | .Op Fl O Ar sort-order | 
|  | .Op Fl t Ar target-pane | 
|  | .Op Ar template | 
|  | .Xc | 
|  | Put a pane into tree mode, where a session, window or pane may be chosen | 
|  | interactively from a list. | 
|  | .Fl s | 
|  | starts with sessions collapsed and | 
|  | .Fl w | 
|  | with windows collapsed. | 
|  | The following keys may be used in tree mode: | 
|  | .Bl -column "Key" "Function" -offset indent | 
|  | .It Sy "Key" Ta Sy "Function" | 
|  | .It Li "Enter" Ta "Choose selected item" | 
|  | .It Li "Up" Ta "Select previous item" | 
|  | .It Li "Down" Ta "Select next item" | 
|  | .It Li "<" Ta "Scroll list of previews left" | 
|  | .It Li ">" Ta "Scroll list of previews right" | 
|  | .It Li "C-s" Ta "Search by name" | 
|  | .It Li "n" Ta "Repeat last search" | 
|  | .It Li "t" Ta "Toggle if item is tagged" | 
|  | .It Li "T" Ta "Tag no items" | 
|  | .It Li "C-t" Ta "Tag all items" | 
|  | .It Li "\&:" Ta "Run a command for each tagged item" | 
|  | .It Li "f" Ta "Enter a format to filter items" | 
|  | .It Li "O" Ta "Change sort order" | 
|  | .It Li "v" Ta "Toggle preview" | 
|  | .It Li "q" Ta "Exit mode" | 
|  | .El | 
|  | .Pp | 
|  | After a session, window or pane is chosen, | 
|  | .Ql %% | 
|  | is replaced by the target in | 
|  | .Ar template | 
|  | and the result executed as a command. | 
|  | If | 
|  | .Ar template | 
|  | is not given, "switch-client -t '%%'" is used. | 
|  | .Pp | 
|  | .Fl O | 
|  | specifies the initial sort order: one of | 
|  | .Ql index , | 
|  | .Ql name , | 
|  | or | 
|  | .Ql time . | 
|  | .Fl f | 
|  | specifies an initial filter: the filter is a format - if it evaluates to zero, | 
|  | the item in the list is not shown, otherwise it is shown. | 
|  | If a filter would lead to an empty list, it is ignored. | 
|  | .Fl F | 
|  | specifies the format for each item in the tree. | 
|  | .Fl N | 
|  | starts without the preview. | 
|  | .Fl G | 
|  | includes all sessions in any session groups in the tree rather than only the | 
|  | first. | 
|  | This command works only if at least one client is attached. | 
|  | .It Xo | 
|  | .Ic display-panes | 
|  | .Op Fl d Ar duration | 
|  | .Op Fl t Ar target-client | 
|  | .Op Ar template | 
|  | .Xc | 
|  | .D1 (alias: Ic displayp ) | 
|  | Display a visible indicator of each pane shown by | 
|  | .Ar target-client . | 
|  | See the | 
|  | .Ic display-panes-colour | 
|  | and | 
|  | .Ic display-panes-active-colour | 
|  | session options. | 
|  | The indicator is closed when a key is pressed or | 
|  | .Ar duration | 
|  | milliseconds have passed. | 
|  | If | 
|  | .Fl d | 
|  | is not given, | 
|  | .Ic display-panes-time | 
|  | is used. | 
|  | A duration of zero means the indicator stays until a key is pressed. | 
|  | While the indicator is on screen, a pane may be chosen with the | 
|  | .Ql 0 | 
|  | to | 
|  | .Ql 9 | 
|  | keys, which will cause | 
|  | .Ar template | 
|  | to be executed as a command with | 
|  | .Ql %% | 
|  | substituted by the pane ID. | 
|  | The default | 
|  | .Ar template | 
|  | is "select-pane -t '%%'". | 
|  | .It Xo Ic find-window | 
|  | .Op Fl CNT | 
|  | .Op Fl t Ar target-pane | 
|  | .Ar match-string | 
|  | .Xc | 
|  | .D1 (alias: Ic findw ) | 
|  | Search for the | 
|  | .Xr fnmatch 3 | 
|  | pattern | 
|  | .Ar match-string | 
|  | in window names, titles, and visible content (but not history). | 
|  | The flags control matching behavior: | 
|  | .Fl C | 
|  | matches only visible window contents, | 
|  | .Fl N | 
|  | matches only the window name and | 
|  | .Fl T | 
|  | matches only the window title. | 
|  | The default is | 
|  | .Fl CNT . | 
|  | .Pp | 
|  | This command works only if at least one client is attached. | 
|  | .It Xo Ic join-pane | 
|  | .Op Fl bdhv | 
|  | .Oo Fl l | 
|  | .Ar size | | 
|  | .Fl p Ar percentage Oc | 
|  | .Op Fl s Ar src-pane | 
|  | .Op Fl t Ar dst-pane | 
|  | .Xc | 
|  | .D1 (alias: Ic joinp ) | 
|  | Like | 
|  | .Ic split-window , | 
|  | but instead of splitting | 
|  | .Ar dst-pane | 
|  | and creating a new pane, split it and move | 
|  | .Ar src-pane | 
|  | into the space. | 
|  | This can be used to reverse | 
|  | .Ic break-pane . | 
|  | The | 
|  | .Fl b | 
|  | option causes | 
|  | .Ar src-pane | 
|  | to be joined to left of or above | 
|  | .Ar dst-pane . | 
|  | .Pp | 
|  | If | 
|  | .Fl s | 
|  | is omitted and a marked pane is present (see | 
|  | .Ic select-pane | 
|  | .Fl m ) , | 
|  | the marked pane is used rather than the current pane. | 
|  | .It Xo Ic kill-pane | 
|  | .Op Fl a | 
|  | .Op Fl t Ar target-pane | 
|  | .Xc | 
|  | .D1 (alias: Ic killp ) | 
|  | Destroy the given pane. | 
|  | If no panes remain in the containing window, it is also destroyed. | 
|  | The | 
|  | .Fl a | 
|  | option kills all but the pane given with | 
|  | .Fl t . | 
|  | .It Xo Ic kill-window | 
|  | .Op Fl a | 
|  | .Op Fl t Ar target-window | 
|  | .Xc | 
|  | .D1 (alias: Ic killw ) | 
|  | Kill the current window or the window at | 
|  | .Ar target-window , | 
|  | removing it from any sessions to which it is linked. | 
|  | The | 
|  | .Fl a | 
|  | option kills all but the window given with | 
|  | .Fl t . | 
|  | .It Xo Ic last-pane | 
|  | .Op Fl de | 
|  | .Op Fl t Ar target-window | 
|  | .Xc | 
|  | .D1 (alias: Ic lastp ) | 
|  | Select the last (previously selected) pane. | 
|  | .Fl e | 
|  | enables or | 
|  | .Fl d | 
|  | disables input to the pane. | 
|  | .It Ic last-window Op Fl t Ar target-session | 
|  | .D1 (alias: Ic last ) | 
|  | Select the last (previously selected) window. | 
|  | If no | 
|  | .Ar target-session | 
|  | is specified, select the last window of the current session. | 
|  | .It Xo Ic link-window | 
|  | .Op Fl adk | 
|  | .Op Fl s Ar src-window | 
|  | .Op Fl t Ar dst-window | 
|  | .Xc | 
|  | .D1 (alias: Ic linkw ) | 
|  | Link the window at | 
|  | .Ar src-window | 
|  | to the specified | 
|  | .Ar dst-window . | 
|  | If | 
|  | .Ar dst-window | 
|  | is specified and no such window exists, the | 
|  | .Ar src-window | 
|  | is linked there. | 
|  | With | 
|  | .Fl a , | 
|  | the window is moved to the next index up (following windows | 
|  | are moved if necessary). | 
|  | If | 
|  | .Fl k | 
|  | is given and | 
|  | .Ar dst-window | 
|  | exists, it is killed, otherwise an error is generated. | 
|  | If | 
|  | .Fl d | 
|  | is given, the newly linked window is not selected. | 
|  | .It Xo Ic list-panes | 
|  | .Op Fl as | 
|  | .Op Fl F Ar format | 
|  | .Op Fl t Ar target | 
|  | .Xc | 
|  | .D1 (alias: Ic lsp ) | 
|  | If | 
|  | .Fl a | 
|  | is given, | 
|  | .Ar target | 
|  | is ignored and all panes on the server are listed. | 
|  | If | 
|  | .Fl s | 
|  | is given, | 
|  | .Ar target | 
|  | is a session (or the current session). | 
|  | If neither is given, | 
|  | .Ar target | 
|  | is a window (or the current window). | 
|  | For the meaning of the | 
|  | .Fl F | 
|  | flag, see the | 
|  | .Sx FORMATS | 
|  | section. | 
|  | .It Xo Ic list-windows | 
|  | .Op Fl a | 
|  | .Op Fl F Ar format | 
|  | .Op Fl t Ar target-session | 
|  | .Xc | 
|  | .D1 (alias: Ic lsw ) | 
|  | If | 
|  | .Fl a | 
|  | is given, list all windows on the server. | 
|  | Otherwise, list windows in the current session or in | 
|  | .Ar target-session . | 
|  | For the meaning of the | 
|  | .Fl F | 
|  | flag, see the | 
|  | .Sx FORMATS | 
|  | section. | 
|  | .It Xo Ic move-pane | 
|  | .Op Fl bdhv | 
|  | .Oo Fl l | 
|  | .Ar size | | 
|  | .Fl p Ar percentage Oc | 
|  | .Op Fl s Ar src-pane | 
|  | .Op Fl t Ar dst-pane | 
|  | .Xc | 
|  | .D1 (alias: Ic movep ) | 
|  | Like | 
|  | .Ic join-pane , | 
|  | but | 
|  | .Ar src-pane | 
|  | and | 
|  | .Ar dst-pane | 
|  | may belong to the same window. | 
|  | .It Xo Ic move-window | 
|  | .Op Fl ardk | 
|  | .Op Fl s Ar src-window | 
|  | .Op Fl t Ar dst-window | 
|  | .Xc | 
|  | .D1 (alias: Ic movew ) | 
|  | This is similar to | 
|  | .Ic link-window , | 
|  | except the window at | 
|  | .Ar src-window | 
|  | is moved to | 
|  | .Ar dst-window . | 
|  | With | 
|  | .Fl r , | 
|  | all windows in the session are renumbered in sequential order, respecting | 
|  | the | 
|  | .Ic base-index | 
|  | option. | 
|  | .It Xo Ic new-window | 
|  | .Op Fl adkP | 
|  | .Op Fl c Ar start-directory | 
|  | .Op Fl F Ar format | 
|  | .Op Fl n Ar window-name | 
|  | .Op Fl t Ar target-window | 
|  | .Op Ar shell-command | 
|  | .Xc | 
|  | .D1 (alias: Ic neww ) | 
|  | Create a new window. | 
|  | With | 
|  | .Fl a , | 
|  | the new window is inserted at the next index up from the specified | 
|  | .Ar target-window , | 
|  | moving windows up if necessary, | 
|  | otherwise | 
|  | .Ar target-window | 
|  | is the new window location. | 
|  | .Pp | 
|  | If | 
|  | .Fl d | 
|  | is given, the session does not make the new window the current window. | 
|  | .Ar target-window | 
|  | represents the window to be created; if the target already exists an error is | 
|  | shown, unless the | 
|  | .Fl k | 
|  | flag is used, in which case it is destroyed. | 
|  | .Ar shell-command | 
|  | is the command to execute. | 
|  | If | 
|  | .Ar shell-command | 
|  | is not specified, the value of the | 
|  | .Ic default-command | 
|  | option is used. | 
|  | .Fl c | 
|  | specifies the working directory in which the new window is created. | 
|  | .Pp | 
|  | When the shell command completes, the window closes. | 
|  | See the | 
|  | .Ic remain-on-exit | 
|  | option to change this behaviour. | 
|  | .Pp | 
|  | The | 
|  | .Ev TERM | 
|  | environment variable must be set to | 
|  | .Ql screen | 
|  | or | 
|  | .Ql tmux | 
|  | for all programs running | 
|  | .Em inside | 
|  | .Nm . | 
|  | New windows will automatically have | 
|  | .Ql TERM=screen | 
|  | added to their environment, but care must be taken not to reset this in shell | 
|  | start-up files. | 
|  | .Pp | 
|  | The | 
|  | .Fl P | 
|  | option prints information about the new window after it has been created. | 
|  | By default, it uses the format | 
|  | .Ql #{session_name}:#{window_index} | 
|  | but a different format may be specified with | 
|  | .Fl F . | 
|  | .It Ic next-layout Op Fl t Ar target-window | 
|  | .D1 (alias: Ic nextl ) | 
|  | Move a window to the next layout and rearrange the panes to fit. | 
|  | .It Xo Ic next-window | 
|  | .Op Fl a | 
|  | .Op Fl t Ar target-session | 
|  | .Xc | 
|  | .D1 (alias: Ic next ) | 
|  | Move to the next window in the session. | 
|  | If | 
|  | .Fl a | 
|  | is used, move to the next window with an alert. | 
|  | .It Xo Ic pipe-pane | 
|  | .Op Fl o | 
|  | .Op Fl t Ar target-pane | 
|  | .Op Ar shell-command | 
|  | .Xc | 
|  | .D1 (alias: Ic pipep ) | 
|  | Pipe any output sent by the program in | 
|  | .Ar target-pane | 
|  | to a shell command. | 
|  | A pane may only be piped to one command at a time, any existing pipe is | 
|  | closed before | 
|  | .Ar shell-command | 
|  | is executed. | 
|  | The | 
|  | .Ar shell-command | 
|  | string may contain the special character sequences supported by the | 
|  | .Ic status-left | 
|  | option. | 
|  | If no | 
|  | .Ar shell-command | 
|  | is given, the current pipe (if any) is closed. | 
|  | .Pp | 
|  | The | 
|  | .Fl o | 
|  | option only opens a new pipe if no previous pipe exists, allowing a pipe to | 
|  | be toggled with a single key, for example: | 
|  | .Bd -literal -offset indent | 
|  | bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P' | 
|  | .Ed | 
|  | .It Xo Ic previous-layout | 
|  | .Op Fl t Ar target-window | 
|  | .Xc | 
|  | .D1 (alias: Ic prevl ) | 
|  | Move to the previous layout in the session. | 
|  | .It Xo Ic previous-window | 
|  | .Op Fl a | 
|  | .Op Fl t Ar target-session | 
|  | .Xc | 
|  | .D1 (alias: Ic prev ) | 
|  | Move to the previous window in the session. | 
|  | With | 
|  | .Fl a , | 
|  | move to the previous window with an alert. | 
|  | .It Xo Ic rename-window | 
|  | .Op Fl t Ar target-window | 
|  | .Ar new-name | 
|  | .Xc | 
|  | .D1 (alias: Ic renamew ) | 
|  | Rename the current window, or the window at | 
|  | .Ar target-window | 
|  | if specified, to | 
|  | .Ar new-name . | 
|  | .It Xo Ic resize-pane | 
|  | .Op Fl DLMRUZ | 
|  | .Op Fl t Ar target-pane | 
|  | .Op Fl x Ar width | 
|  | .Op Fl y Ar height | 
|  | .Op Ar adjustment | 
|  | .Xc | 
|  | .D1 (alias: Ic resizep ) | 
|  | Resize a pane, up, down, left or right by | 
|  | .Ar adjustment | 
|  | with | 
|  | .Fl U , | 
|  | .Fl D , | 
|  | .Fl L | 
|  | or | 
|  | .Fl R , | 
|  | or | 
|  | to an absolute size | 
|  | with | 
|  | .Fl x | 
|  | or | 
|  | .Fl y . | 
|  | The | 
|  | .Ar adjustment | 
|  | is given in lines or cells (the default is 1). | 
|  | .Pp | 
|  | With | 
|  | .Fl Z , | 
|  | the active pane is toggled between zoomed (occupying the whole of the window) | 
|  | and unzoomed (its normal position in the layout). | 
|  | .Pp | 
|  | .Fl M | 
|  | begins mouse resizing (only valid if bound to a mouse key binding, see | 
|  | .Sx MOUSE SUPPORT ) . | 
|  | .It Xo Ic respawn-pane | 
|  | .Op Fl c Ar start-directory | 
|  | .Op Fl k | 
|  | .Op Fl t Ar target-pane | 
|  | .Op Ar shell-command | 
|  | .Xc | 
|  | .D1 (alias: Ic respawnp ) | 
|  | Reactivate a pane in which the command has exited (see the | 
|  | .Ic remain-on-exit | 
|  | window option). | 
|  | If | 
|  | .Ar shell-command | 
|  | is not given, the command used when the pane was created is executed. | 
|  | The pane must be already inactive, unless | 
|  | .Fl k | 
|  | is given, in which case any existing command is killed. | 
|  | .Fl c | 
|  | specifies a new working directory for the pane. | 
|  | .It Xo Ic respawn-window | 
|  | .Op Fl c Ar start-directory | 
|  | .Op Fl k | 
|  | .Op Fl t Ar target-window | 
|  | .Op Ar shell-command | 
|  | .Xc | 
|  | .D1 (alias: Ic respawnw ) | 
|  | Reactivate a window in which the command has exited (see the | 
|  | .Ic remain-on-exit | 
|  | window option). | 
|  | If | 
|  | .Ar shell-command | 
|  | is not given, the command used when the window was created is executed. | 
|  | The window must be already inactive, unless | 
|  | .Fl k | 
|  | is given, in which case any existing command is killed. | 
|  | .Fl c | 
|  | specifies a new working directory for the window. | 
|  | .It Xo Ic rotate-window | 
|  | .Op Fl DU | 
|  | .Op Fl t Ar target-window | 
|  | .Xc | 
|  | .D1 (alias: Ic rotatew ) | 
|  | Rotate the positions of the panes within a window, either upward (numerically | 
|  | lower) with | 
|  | .Fl U | 
|  | or downward (numerically higher). | 
|  | .It Xo Ic select-layout | 
|  | .Op Fl Enop | 
|  | .Op Fl t Ar target-pane | 
|  | .Op Ar layout-name | 
|  | .Xc | 
|  | .D1 (alias: Ic selectl ) | 
|  | Choose a specific layout for a window. | 
|  | If | 
|  | .Ar layout-name | 
|  | is not given, the last preset layout used (if any) is reapplied. | 
|  | .Fl n | 
|  | and | 
|  | .Fl p | 
|  | are equivalent to the | 
|  | .Ic next-layout | 
|  | and | 
|  | .Ic previous-layout | 
|  | commands. | 
|  | .Fl o | 
|  | applies the last set layout if possible (undoes the most recent layout change). | 
|  | .Fl E | 
|  | spreads the current pane and any panes next to it out evenly. | 
|  | .It Xo Ic select-pane | 
|  | .Op Fl DdegLlMmRU | 
|  | .Op Fl P Ar style | 
|  | .Op Fl T Ar title | 
|  | .Op Fl t Ar target-pane | 
|  | .Xc | 
|  | .D1 (alias: Ic selectp ) | 
|  | Make pane | 
|  | .Ar target-pane | 
|  | the active pane in window | 
|  | .Ar target-window , | 
|  | or set its style (with | 
|  | .Fl P ) . | 
|  | If one of | 
|  | .Fl D , | 
|  | .Fl L , | 
|  | .Fl R , | 
|  | or | 
|  | .Fl U | 
|  | is used, respectively the pane below, to the left, to the right, or above the | 
|  | target pane is used. | 
|  | .Fl l | 
|  | is the same as using the | 
|  | .Ic last-pane | 
|  | command. | 
|  | .Fl e | 
|  | enables or | 
|  | .Fl d | 
|  | disables input to the pane. | 
|  | .Pp | 
|  | .Fl m | 
|  | and | 
|  | .Fl M | 
|  | are used to set and clear the | 
|  | .Em marked pane . | 
|  | There is one marked pane at a time, setting a new marked pane clears the last. | 
|  | The marked pane is the default target for | 
|  | .Fl s | 
|  | to | 
|  | .Ic join-pane , | 
|  | .Ic swap-pane | 
|  | and | 
|  | .Ic swap-window . | 
|  | .Pp | 
|  | Each pane has a style: by default the | 
|  | .Ic window-style | 
|  | and | 
|  | .Ic window-active-style | 
|  | options are used, | 
|  | .Ic select-pane | 
|  | .Fl P | 
|  | sets the style for a single pane. | 
|  | For example, to set the pane 1 background to red: | 
|  | .Bd -literal -offset indent | 
|  | select-pane -t:.1 -P 'bg=red' | 
|  | .Ed | 
|  | .Pp | 
|  | .Fl g | 
|  | shows the current pane style. | 
|  | .Pp | 
|  | .Fl T | 
|  | sets the pane title. | 
|  | .It Xo Ic select-window | 
|  | .Op Fl lnpT | 
|  | .Op Fl t Ar target-window | 
|  | .Xc | 
|  | .D1 (alias: Ic selectw ) | 
|  | Select the window at | 
|  | .Ar target-window . | 
|  | .Fl l , | 
|  | .Fl n | 
|  | and | 
|  | .Fl p | 
|  | are equivalent to the | 
|  | .Ic last-window , | 
|  | .Ic next-window | 
|  | and | 
|  | .Ic previous-window | 
|  | commands. | 
|  | If | 
|  | .Fl T | 
|  | is given and the selected window is already the current window, | 
|  | the command behaves like | 
|  | .Ic last-window . | 
|  | .It Xo Ic split-window | 
|  | .Op Fl bdfhvP | 
|  | .Op Fl c Ar start-directory | 
|  | .Oo Fl l | 
|  | .Ar size | | 
|  | .Fl p Ar percentage Oc | 
|  | .Op Fl t Ar target-pane | 
|  | .Op Ar shell-command | 
|  | .Op Fl F Ar format | 
|  | .Xc | 
|  | .D1 (alias: Ic splitw ) | 
|  | Create a new pane by splitting | 
|  | .Ar target-pane : | 
|  | .Fl h | 
|  | does a horizontal split and | 
|  | .Fl v | 
|  | a vertical split; if neither is specified, | 
|  | .Fl v | 
|  | is assumed. | 
|  | The | 
|  | .Fl l | 
|  | and | 
|  | .Fl p | 
|  | options specify the size of the new pane in lines (for vertical split) or in | 
|  | cells (for horizontal split), or as a percentage, respectively. | 
|  | The | 
|  | .Fl b | 
|  | option causes the new pane to be created to the left of or above | 
|  | .Ar target-pane . | 
|  | The | 
|  | .Fl f | 
|  | option creates a new pane spanning the full window height (with | 
|  | .Fl h ) | 
|  | or full window width (with | 
|  | .Fl v ) , | 
|  | instead of splitting the active pane. | 
|  | All other options have the same meaning as for the | 
|  | .Ic new-window | 
|  | command. | 
|  | .It Xo Ic swap-pane | 
|  | .Op Fl dDU | 
|  | .Op Fl s Ar src-pane | 
|  | .Op Fl t Ar dst-pane | 
|  | .Xc | 
|  | .D1 (alias: Ic swapp ) | 
|  | Swap two panes. | 
|  | If | 
|  | .Fl U | 
|  | is used and no source pane is specified with | 
|  | .Fl s , | 
|  | .Ar dst-pane | 
|  | is swapped with the previous pane (before it numerically); | 
|  | .Fl D | 
|  | swaps with the next pane (after it numerically). | 
|  | .Fl d | 
|  | instructs | 
|  | .Nm | 
|  | not to change the active pane. | 
|  | .Pp | 
|  | If | 
|  | .Fl s | 
|  | is omitted and a marked pane is present (see | 
|  | .Ic select-pane | 
|  | .Fl m ) , | 
|  | the marked pane is used rather than the current pane. | 
|  | .It Xo Ic swap-window | 
|  | .Op Fl d | 
|  | .Op Fl s Ar src-window | 
|  | .Op Fl t Ar dst-window | 
|  | .Xc | 
|  | .D1 (alias: Ic swapw ) | 
|  | This is similar to | 
|  | .Ic link-window , | 
|  | except the source and destination windows are swapped. | 
|  | It is an error if no window exists at | 
|  | .Ar src-window . | 
|  | .Pp | 
|  | Like | 
|  | .Ic swap-pane , | 
|  | if | 
|  | .Fl s | 
|  | is omitted and a marked pane is present (see | 
|  | .Ic select-pane | 
|  | .Fl m ) , | 
|  | the window containing the marked pane is used rather than the current window. | 
|  | .It Xo Ic unlink-window | 
|  | .Op Fl k | 
|  | .Op Fl t Ar target-window | 
|  | .Xc | 
|  | .D1 (alias: Ic unlinkw ) | 
|  | Unlink | 
|  | .Ar target-window . | 
|  | Unless | 
|  | .Fl k | 
|  | is given, a window may be unlinked only if it is linked to multiple sessions - | 
|  | windows may not be linked to no sessions; | 
|  | if | 
|  | .Fl k | 
|  | is specified and the window is linked to only one session, it is unlinked and | 
|  | destroyed. | 
|  | .El | 
|  | .Sh KEY BINDINGS | 
|  | .Nm | 
|  | allows a command to be bound to most keys, with or without a prefix key. | 
|  | When specifying keys, most represent themselves (for example | 
|  | .Ql A | 
|  | to | 
|  | .Ql Z ) . | 
|  | Ctrl keys may be prefixed with | 
|  | .Ql C- | 
|  | or | 
|  | .Ql ^ , | 
|  | and Alt (meta) with | 
|  | .Ql M- . | 
|  | In addition, the following special key names are accepted: | 
|  | .Em Up , | 
|  | .Em Down , | 
|  | .Em Left , | 
|  | .Em Right , | 
|  | .Em BSpace , | 
|  | .Em BTab , | 
|  | .Em DC | 
|  | (Delete), | 
|  | .Em End , | 
|  | .Em Enter , | 
|  | .Em Escape , | 
|  | .Em F1 | 
|  | to | 
|  | .Em F12 , | 
|  | .Em Home , | 
|  | .Em IC | 
|  | (Insert), | 
|  | .Em NPage/PageDown/PgDn , | 
|  | .Em PPage/PageUp/PgUp , | 
|  | .Em Space , | 
|  | and | 
|  | .Em Tab . | 
|  | Note that to bind the | 
|  | .Ql \&" | 
|  | or | 
|  | .Ql ' | 
|  | keys, quotation marks are necessary, for example: | 
|  | .Bd -literal -offset indent | 
|  | bind-key '"' split-window | 
|  | bind-key "'" new-window | 
|  | .Ed | 
|  | .Pp | 
|  | Commands related to key bindings are as follows: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo Ic bind-key | 
|  | .Op Fl nr | 
|  | .Op Fl T Ar key-table | 
|  | .Ar key Ar command Op Ar arguments | 
|  | .Xc | 
|  | .D1 (alias: Ic bind ) | 
|  | Bind key | 
|  | .Ar key | 
|  | to | 
|  | .Ar command . | 
|  | Keys are bound in a key table. | 
|  | By default (without -T), the key is bound in | 
|  | the | 
|  | .Em prefix | 
|  | key table. | 
|  | This table is used for keys pressed after the prefix key (for example, | 
|  | by default | 
|  | .Ql c | 
|  | is bound to | 
|  | .Ic new-window | 
|  | in the | 
|  | .Em prefix | 
|  | table, so | 
|  | .Ql C-b c | 
|  | creates a new window). | 
|  | The | 
|  | .Em root | 
|  | table is used for keys pressed without the prefix key: binding | 
|  | .Ql c | 
|  | to | 
|  | .Ic new-window | 
|  | in the | 
|  | .Em root | 
|  | table (not recommended) means a plain | 
|  | .Ql c | 
|  | will create a new window. | 
|  | .Fl n | 
|  | is an alias | 
|  | for | 
|  | .Fl T Ar root . | 
|  | Keys may also be bound in custom key tables and the | 
|  | .Ic switch-client | 
|  | .Fl T | 
|  | command used to switch to them from a key binding. | 
|  | The | 
|  | .Fl r | 
|  | flag indicates this key may repeat, see the | 
|  | .Ic repeat-time | 
|  | option. | 
|  | .Pp | 
|  | To view the default bindings and possible commands, see the | 
|  | .Ic list-keys | 
|  | command. | 
|  | .It Xo Ic list-keys | 
|  | .Op Fl T Ar key-table | 
|  | .Xc | 
|  | .D1 (alias: Ic lsk ) | 
|  | List all key bindings. | 
|  | Without | 
|  | .Fl T | 
|  | all key tables are printed. | 
|  | With | 
|  | .Fl T | 
|  | only | 
|  | .Ar key-table . | 
|  | .It Xo Ic send-keys | 
|  | .Op Fl lMRX | 
|  | .Op Fl N Ar repeat-count | 
|  | .Op Fl t Ar target-pane | 
|  | .Ar key Ar ... | 
|  | .Xc | 
|  | .D1 (alias: Ic send ) | 
|  | Send a key or keys to a window. | 
|  | Each argument | 
|  | .Ar key | 
|  | is the name of the key (such as | 
|  | .Ql C-a | 
|  | or | 
|  | .Ql NPage ) | 
|  | to send; if the string is not recognised as a key, it is sent as a series of | 
|  | characters. | 
|  | The | 
|  | .Fl l | 
|  | flag disables key name lookup and sends the keys literally. | 
|  | All arguments are sent sequentially from first to last. | 
|  | The | 
|  | .Fl R | 
|  | flag causes the terminal state to be reset. | 
|  | .Pp | 
|  | .Fl M | 
|  | passes through a mouse event (only valid if bound to a mouse key binding, see | 
|  | .Sx MOUSE SUPPORT ) . | 
|  | .Pp | 
|  | .Fl X | 
|  | is used to send a command into copy mode - see | 
|  | the | 
|  | .Sx WINDOWS AND PANES | 
|  | section. | 
|  | .Fl N | 
|  | specifies a repeat count. | 
|  | .It Xo Ic send-prefix | 
|  | .Op Fl 2 | 
|  | .Op Fl t Ar target-pane | 
|  | .Xc | 
|  | Send the prefix key, or with | 
|  | .Fl 2 | 
|  | the secondary prefix key, to a window as if it was pressed. | 
|  | .It Xo Ic unbind-key | 
|  | .Op Fl an | 
|  | .Op Fl T Ar key-table | 
|  | .Ar key | 
|  | .Xc | 
|  | .D1 (alias: Ic unbind ) | 
|  | Unbind the command bound to | 
|  | .Ar key . | 
|  | .Fl n | 
|  | and | 
|  | .Fl T | 
|  | are the same as for | 
|  | .Ic bind-key . | 
|  | If | 
|  | .Fl a | 
|  | is present, all key bindings are removed. | 
|  | .El | 
|  | .Sh OPTIONS | 
|  | The appearance and behaviour of | 
|  | .Nm | 
|  | may be modified by changing the value of various options. | 
|  | There are three types of option: | 
|  | .Em server options , | 
|  | .Em session options | 
|  | and | 
|  | .Em window options . | 
|  | .Pp | 
|  | The | 
|  | .Nm | 
|  | server has a set of global options which do not apply to any particular | 
|  | window or session. | 
|  | These are altered with the | 
|  | .Ic set-option | 
|  | .Fl s | 
|  | command, or displayed with the | 
|  | .Ic show-options | 
|  | .Fl s | 
|  | command. | 
|  | .Pp | 
|  | In addition, each individual session may have a set of session options, and | 
|  | there is a separate set of global session options. | 
|  | Sessions which do not have a particular option configured inherit the value | 
|  | from the global session options. | 
|  | Session options are set or unset with the | 
|  | .Ic set-option | 
|  | command and may be listed with the | 
|  | .Ic show-options | 
|  | command. | 
|  | The available server and session options are listed under the | 
|  | .Ic set-option | 
|  | command. | 
|  | .Pp | 
|  | Similarly, a set of window options is attached to each window, and there is | 
|  | a set of global window options from which any unset options are inherited. | 
|  | Window options are altered with the | 
|  | .Ic set-window-option | 
|  | command and can be listed with the | 
|  | .Ic show-window-options | 
|  | command. | 
|  | All window options are documented with the | 
|  | .Ic set-window-option | 
|  | command. | 
|  | .Pp | 
|  | .Nm | 
|  | also supports user options which are prefixed with a | 
|  | .Ql \&@ . | 
|  | User options may have any name, so long as they are prefixed with | 
|  | .Ql \&@ , | 
|  | and be set to any string. | 
|  | For example: | 
|  | .Bd -literal -offset indent | 
|  | $ tmux setw -q @foo "abc123" | 
|  | $ tmux showw -v @foo | 
|  | abc123 | 
|  | .Ed | 
|  | .Pp | 
|  | Commands which set options are as follows: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo Ic set-option | 
|  | .Op Fl aFgoqsuw | 
|  | .Op Fl t Ar target-session | Ar target-window | 
|  | .Ar option Ar value | 
|  | .Xc | 
|  | .D1 (alias: Ic set ) | 
|  | Set a window option with | 
|  | .Fl w | 
|  | (equivalent to the | 
|  | .Ic set-window-option | 
|  | command), | 
|  | a server option with | 
|  | .Fl s , | 
|  | otherwise a session option. | 
|  | If | 
|  | .Fl g | 
|  | is given, the global session or window option is set. | 
|  | .Fl F | 
|  | expands formats in the option value. | 
|  | The | 
|  | .Fl u | 
|  | flag unsets an option, so a session inherits the option from the global | 
|  | options (or with | 
|  | .Fl g , | 
|  | restores a global option to the default). | 
|  | .Pp | 
|  | The | 
|  | .Fl o | 
|  | flag prevents setting an option that is already set and the | 
|  | .Fl q | 
|  | flag suppresses errors about unknown or ambiguous options. | 
|  | .Pp | 
|  | With | 
|  | .Fl a , | 
|  | and if the option expects a string or a style, | 
|  | .Ar value | 
|  | is appended to the existing setting. | 
|  | For example: | 
|  | .Bd -literal -offset indent | 
|  | set -g status-left "foo" | 
|  | set -ag status-left "bar" | 
|  | .Ed | 
|  | .Pp | 
|  | Will result in | 
|  | .Ql foobar . | 
|  | And: | 
|  | .Bd -literal -offset indent | 
|  | set -g status-style "bg=red" | 
|  | set -ag status-style "fg=blue" | 
|  | .Ed | 
|  | .Pp | 
|  | Will result in a red background | 
|  | .Em and | 
|  | blue foreground. | 
|  | Without | 
|  | .Fl a , | 
|  | the result would be the default background and a blue foreground. | 
|  | .Pp | 
|  | Available window options are listed under | 
|  | .Ic set-window-option . | 
|  | .Pp | 
|  | .Ar value | 
|  | depends on the option and may be a number, a string, or a flag (on, off, or | 
|  | omitted to toggle). | 
|  | .Pp | 
|  | Available server options are: | 
|  | .Bl -tag -width Ds | 
|  | .It Ic buffer-limit Ar number | 
|  | Set the number of buffers; as new buffers are added to the top of the stack, | 
|  | old ones are removed from the bottom if necessary to maintain this maximum | 
|  | length. | 
|  | .It Xo Ic command-alias[] | 
|  | .Ar name=value | 
|  | .Xc | 
|  | This is an array of custom aliases for commands. | 
|  | If an unknown command matches | 
|  | .Ar name , | 
|  | it is replaced with | 
|  | .Ar value . | 
|  | For example, after: | 
|  | .Pp | 
|  | .Dl set -s command-alias[100] zoom='resize-pane -Z' | 
|  | .Pp | 
|  | Using: | 
|  | .Pp | 
|  | .Dl zoom -t:.1 | 
|  | .Pp | 
|  | Is equivalent to: | 
|  | .Pp | 
|  | .Dl resize-pane -Z -t:.1 | 
|  | .Pp | 
|  | Note that aliases are expanded when a command is parsed rather than when it is | 
|  | executed, so binding an alias with | 
|  | .Ic bind-key | 
|  | will bind the expanded form. | 
|  | .It Ic default-terminal Ar terminal | 
|  | Set the default terminal for new windows created in this session - the | 
|  | default value of the | 
|  | .Ev TERM | 
|  | environment variable. | 
|  | For | 
|  | .Nm | 
|  | to work correctly, this | 
|  | .Em must | 
|  | be set to | 
|  | .Ql screen , | 
|  | .Ql tmux | 
|  | or a derivative of them. | 
|  | .It Ic escape-time Ar time | 
|  | Set the time in milliseconds for which | 
|  | .Nm | 
|  | waits after an escape is input to determine if it is part of a function or meta | 
|  | key sequences. | 
|  | The default is 500 milliseconds. | 
|  | .It Xo Ic exit-unattached | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | If enabled, the server will exit when there are no attached clients. | 
|  | .It Xo Ic focus-events | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | When enabled, focus events are requested from the terminal if supported and | 
|  | passed through to applications running in | 
|  | .Nm . | 
|  | Attached clients should be detached and attached again after changing this | 
|  | option. | 
|  | .It Ic history-file Ar path | 
|  | If not empty, a file to which | 
|  | .Nm | 
|  | will write command prompt history on exit and load it from on start. | 
|  | .It Ic message-limit Ar number | 
|  | Set the number of error or information messages to save in the message log for | 
|  | each client. | 
|  | The default is 100. | 
|  | .It Xo Ic set-clipboard | 
|  | .Op Ic on | external | off | 
|  | .Xc | 
|  | Attempt to set the terminal clipboard content using the | 
|  | .Xr xterm 1 | 
|  | escape sequence, if there is an | 
|  | .Em \&Ms | 
|  | entry in the | 
|  | .Xr terminfo 5 | 
|  | description (see the | 
|  | .Sx TERMINFO EXTENSIONS | 
|  | section). | 
|  | .Pp | 
|  | If set to | 
|  | .Ic on , | 
|  | .Nm | 
|  | will both accept the escape sequence to create a buffer and attempt to set | 
|  | the terminal clipboard. | 
|  | If set to | 
|  | .Ic external , | 
|  | .Nm | 
|  | will attempt to set the terminal clipboard but ignore attempts | 
|  | by applications to set | 
|  | .Nm | 
|  | buffers. | 
|  | If | 
|  | .Ic off , | 
|  | .Nm | 
|  | will neither accept the clipboard escape sequence nor attempt to set the | 
|  | clipboard. | 
|  | .Pp | 
|  | Note that this feature needs to be enabled in | 
|  | .Xr xterm 1 | 
|  | by setting the resource: | 
|  | .Bd -literal -offset indent | 
|  | disallowedWindowOps: 20,21,SetXprop | 
|  | .Ed | 
|  | .Pp | 
|  | Or changing this property from the | 
|  | .Xr xterm 1 | 
|  | interactive menu when required. | 
|  | .It Ic terminal-overrides[] Ar string | 
|  | Allow terminal descriptions read using | 
|  | .Xr terminfo 5 | 
|  | to be overridden. | 
|  | Each entry is a colon-separated string made up of a terminal type pattern | 
|  | (matched using | 
|  | .Xr fnmatch 3 ) | 
|  | and a set of | 
|  | .Em name=value | 
|  | entries. | 
|  | .Pp | 
|  | For example, to set the | 
|  | .Ql clear | 
|  | .Xr terminfo 5 | 
|  | entry to | 
|  | .Ql \ee[H\ee[2J | 
|  | for all terminal types matching | 
|  | .Ql rxvt* : | 
|  | .Pp | 
|  | .Dl "rxvt*:clear=\ee[H\ee[2J" | 
|  | .Pp | 
|  | The terminal entry value is passed through | 
|  | .Xr strunvis 3 | 
|  | before interpretation. | 
|  | .El | 
|  | .Pp | 
|  | Available session options are: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo Ic activity-action | 
|  | .Op Ic any | none | current | other | 
|  | .Xc | 
|  | Set action on window activity when | 
|  | .Ic monitor-activity | 
|  | is on. | 
|  | .Ic any | 
|  | means activity in any window linked to a session causes a bell or message | 
|  | (depending on | 
|  | .Ic visual-activity ) | 
|  | in the current window of that session, | 
|  | .Ic none | 
|  | means all activity is ignored (equivalent to | 
|  | .Ic monitor-activity | 
|  | being off), | 
|  | .Ic current | 
|  | means only activity in windows other than the current window are ignored and | 
|  | .Ic other | 
|  | means activity in the current window is ignored but not those in other windows. | 
|  | .It Ic assume-paste-time Ar milliseconds | 
|  | If keys are entered faster than one in | 
|  | .Ar milliseconds , | 
|  | they are assumed to have been pasted rather than typed and | 
|  | .Nm | 
|  | key bindings are not processed. | 
|  | The default is one millisecond and zero disables. | 
|  | .It Ic base-index Ar index | 
|  | Set the base index from which an unused index should be searched when a new | 
|  | window is created. | 
|  | The default is zero. | 
|  | .It Xo Ic bell-action | 
|  | .Op Ic any | none | current | other | 
|  | .Xc | 
|  | Set action on a bell in a window when | 
|  | .Ic monitor-bell | 
|  | is on. | 
|  | The values are the same as those for | 
|  | .Ic activity-action . | 
|  | .It Ic default-command Ar shell-command | 
|  | Set the command used for new windows (if not specified when the window is | 
|  | created) to | 
|  | .Ar shell-command , | 
|  | which may be any | 
|  | .Xr sh 1 | 
|  | command. | 
|  | The default is an empty string, which instructs | 
|  | .Nm | 
|  | to create a login shell using the value of the | 
|  | .Ic default-shell | 
|  | option. | 
|  | .It Ic default-shell Ar path | 
|  | Specify the default shell. | 
|  | This is used as the login shell for new windows when the | 
|  | .Ic default-command | 
|  | option is set to empty, and must be the full path of the executable. | 
|  | When started | 
|  | .Nm | 
|  | tries to set a default value from the first suitable of the | 
|  | .Ev SHELL | 
|  | environment variable, the shell returned by | 
|  | .Xr getpwuid 3 , | 
|  | or | 
|  | .Pa /bin/sh . | 
|  | This option should be configured when | 
|  | .Nm | 
|  | is used as a login shell. | 
|  | .It Xo Ic destroy-unattached | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | If enabled and the session is no longer attached to any clients, it is | 
|  | destroyed. | 
|  | .It Xo Ic detach-on-destroy | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | If on (the default), the client is detached when the session it is attached to | 
|  | is destroyed. | 
|  | If off, the client is switched to the most recently active of the remaining | 
|  | sessions. | 
|  | .It Ic display-panes-active-colour Ar colour | 
|  | Set the colour used by the | 
|  | .Ic display-panes | 
|  | command to show the indicator for the active pane. | 
|  | .It Ic display-panes-colour Ar colour | 
|  | Set the colour used by the | 
|  | .Ic display-panes | 
|  | command to show the indicators for inactive panes. | 
|  | .It Ic display-panes-time Ar time | 
|  | Set the time in milliseconds for which the indicators shown by the | 
|  | .Ic display-panes | 
|  | command appear. | 
|  | .It Ic display-time Ar time | 
|  | Set the amount of time for which status line messages and other on-screen | 
|  | indicators are displayed. | 
|  | If set to 0, messages and indicators are displayed until a key is pressed. | 
|  | .Ar time | 
|  | is in milliseconds. | 
|  | .It Ic history-limit Ar lines | 
|  | Set the maximum number of lines held in window history. | 
|  | This setting applies only to new windows - existing window histories are not | 
|  | resized and retain the limit at the point they were created. | 
|  | .It Ic key-table Ar key-table | 
|  | Set the default key table to | 
|  | .Ar key-table | 
|  | instead of | 
|  | .Em root . | 
|  | .It Ic lock-after-time Ar number | 
|  | Lock the session (like the | 
|  | .Ic lock-session | 
|  | command) after | 
|  | .Ar number | 
|  | seconds of inactivity. | 
|  | The default is not to lock (set to 0). | 
|  | .It Ic lock-command Ar shell-command | 
|  | Command to run when locking each client. | 
|  | The default is to run | 
|  | .Xr lock 1 | 
|  | with | 
|  | .Fl np . | 
|  | .It Ic message-command-style Ar style | 
|  | Set status line message command style, where | 
|  | .Ar style | 
|  | is a comma-separated list of characteristics to be specified. | 
|  | .Pp | 
|  | These may be | 
|  | .Ql bg=colour | 
|  | to set the background colour, | 
|  | .Ql fg=colour | 
|  | to set the foreground colour, and a list of attributes as specified below. | 
|  | .Pp | 
|  | The colour is one of: | 
|  | .Ic black , | 
|  | .Ic red , | 
|  | .Ic green , | 
|  | .Ic yellow , | 
|  | .Ic blue , | 
|  | .Ic magenta , | 
|  | .Ic cyan , | 
|  | .Ic white , | 
|  | aixterm bright variants (if supported: | 
|  | .Ic brightred , | 
|  | .Ic brightgreen , | 
|  | and so on), | 
|  | .Ic colour0 | 
|  | to | 
|  | .Ic colour255 | 
|  | from the 256-colour set, | 
|  | .Ic default , | 
|  | or a hexadecimal RGB string such as | 
|  | .Ql #ffffff , | 
|  | which chooses the closest match from the default 256-colour set. | 
|  | .Pp | 
|  | The attributes is either | 
|  | .Ic none | 
|  | or a comma-delimited list of one or more of: | 
|  | .Ic bright | 
|  | (or | 
|  | .Ic bold ) , | 
|  | .Ic dim , | 
|  | .Ic underscore , | 
|  | .Ic blink , | 
|  | .Ic reverse , | 
|  | .Ic hidden , | 
|  | .Ic italics , | 
|  | or | 
|  | .Ic strikethrough | 
|  | to turn an attribute on, or an attribute prefixed with | 
|  | .Ql no | 
|  | to turn one off. | 
|  | .Pp | 
|  | Examples are: | 
|  | .Bd -literal -offset indent | 
|  | fg=yellow,bold,underscore,blink | 
|  | bg=black,fg=default,noreverse | 
|  | .Ed | 
|  | .Pp | 
|  | With the | 
|  | .Fl a | 
|  | flag to the | 
|  | .Ic set-option | 
|  | command the new style is added otherwise the existing style is replaced. | 
|  | .It Ic message-style Ar style | 
|  | Set status line message style. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .It Xo Ic mouse | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | If on, | 
|  | .Nm | 
|  | captures the mouse and allows mouse events to be bound as key bindings. | 
|  | See the | 
|  | .Sx MOUSE SUPPORT | 
|  | section for details. | 
|  | .It Ic prefix Ar key | 
|  | Set the key accepted as a prefix key. | 
|  | In addition to the standard keys described under | 
|  | .Sx KEY BINDINGS , | 
|  | .Ic prefix | 
|  | can be set to the special key | 
|  | .Ql None | 
|  | to set no prefix. | 
|  | .It Ic prefix2 Ar key | 
|  | Set a secondary key accepted as a prefix key. | 
|  | Like | 
|  | .Ic prefix , | 
|  | .Ic prefix2 | 
|  | can be set to | 
|  | .Ql None . | 
|  | .It Xo Ic renumber-windows | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | If on, when a window is closed in a session, automatically renumber the other | 
|  | windows in numerical order. | 
|  | This respects the | 
|  | .Ic base-index | 
|  | option if it has been set. | 
|  | If off, do not renumber the windows. | 
|  | .It Ic repeat-time Ar time | 
|  | Allow multiple commands to be entered without pressing the prefix-key again | 
|  | in the specified | 
|  | .Ar time | 
|  | milliseconds (the default is 500). | 
|  | Whether a key repeats may be set when it is bound using the | 
|  | .Fl r | 
|  | flag to | 
|  | .Ic bind-key . | 
|  | Repeat is enabled for the default keys bound to the | 
|  | .Ic resize-pane | 
|  | command. | 
|  | .It Xo Ic set-titles | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | Attempt to set the client terminal title using the | 
|  | .Em tsl | 
|  | and | 
|  | .Em fsl | 
|  | .Xr terminfo 5 | 
|  | entries if they exist. | 
|  | .Nm | 
|  | automatically sets these to the \ee]0;...\e007 sequence if | 
|  | the terminal appears to be | 
|  | .Xr xterm 1 . | 
|  | This option is off by default. | 
|  | .It Ic set-titles-string Ar string | 
|  | String used to set the window title if | 
|  | .Ic set-titles | 
|  | is on. | 
|  | Formats are expanded, see the | 
|  | .Sx FORMATS | 
|  | section. | 
|  | .It Xo Ic silence-action | 
|  | .Op Ic any | none | current | other | 
|  | .Xc | 
|  | Set action on window silence when | 
|  | .Ic monitor-silence | 
|  | is on. | 
|  | The values are the same as those for | 
|  | .Ic activity-action . | 
|  | .It Xo Ic status | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | Show or hide the status line. | 
|  | .It Ic status-interval Ar interval | 
|  | Update the status line every | 
|  | .Ar interval | 
|  | seconds. | 
|  | By default, updates will occur every 15 seconds. | 
|  | A setting of zero disables redrawing at interval. | 
|  | .It Xo Ic status-justify | 
|  | .Op Ic left | centre | right | 
|  | .Xc | 
|  | Set the position of the window list component of the status line: left, centre | 
|  | or right justified. | 
|  | .It Xo Ic status-keys | 
|  | .Op Ic vi | emacs | 
|  | .Xc | 
|  | Use vi or emacs-style | 
|  | key bindings in the status line, for example at the command prompt. | 
|  | The default is emacs, unless the | 
|  | .Ev VISUAL | 
|  | or | 
|  | .Ev EDITOR | 
|  | environment variables are set and contain the string | 
|  | .Ql vi . | 
|  | .It Ic status-left Ar string | 
|  | Display | 
|  | .Ar string | 
|  | (by default the session name) to the left of the status line. | 
|  | .Ar string | 
|  | will be passed through | 
|  | .Xr strftime 3 | 
|  | and formats (see | 
|  | .Sx FORMATS ) | 
|  | will be expanded. | 
|  | It may also contain the special character sequence #[] to change the colour | 
|  | or attributes, for example | 
|  | .Ql #[fg=red,bright] | 
|  | to set a bright red foreground. | 
|  | See the | 
|  | .Ic message-command-style | 
|  | option for a description of colours and attributes. | 
|  | .Pp | 
|  | For details on how the names and titles can be set see the | 
|  | .Sx "NAMES AND TITLES" | 
|  | section. | 
|  | .Pp | 
|  | Examples are: | 
|  | .Bd -literal -offset indent | 
|  | #(sysctl vm.loadavg) | 
|  | #[fg=yellow,bold]#(apm -l)%%#[default] [#S] | 
|  | .Ed | 
|  | .Pp | 
|  | The default is | 
|  | .Ql "[#S] " . | 
|  | .It Ic status-left-length Ar length | 
|  | Set the maximum | 
|  | .Ar length | 
|  | of the left component of the status line. | 
|  | The default is 10. | 
|  | .It Ic status-left-style Ar style | 
|  | Set the style of the left part of the status line. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .It Xo Ic status-position | 
|  | .Op Ic top | bottom | 
|  | .Xc | 
|  | Set the position of the status line. | 
|  | .It Ic status-right Ar string | 
|  | Display | 
|  | .Ar string | 
|  | to the right of the status line. | 
|  | By default, the current pane title in double quotes, the date and the time | 
|  | are shown. | 
|  | As with | 
|  | .Ic status-left , | 
|  | .Ar string | 
|  | will be passed to | 
|  | .Xr strftime 3 | 
|  | and character pairs are replaced. | 
|  | .It Ic status-right-length Ar length | 
|  | Set the maximum | 
|  | .Ar length | 
|  | of the right component of the status line. | 
|  | The default is 40. | 
|  | .It Ic status-right-style Ar style | 
|  | Set the style of the right part of the status line. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .It Ic status-style Ar style | 
|  | Set status line style. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .It Ic update-environment[] Ar variable | 
|  | Set list of environment variables to be copied into the session environment | 
|  | when a new session is created or an existing session is attached. | 
|  | Any variables that do not exist in the source environment are set to be | 
|  | removed from the session environment (as if | 
|  | .Fl r | 
|  | was given to the | 
|  | .Ic set-environment | 
|  | command). | 
|  | .It Ic user-keys[] Ar key | 
|  | Set list of user-defined key escape sequences. | 
|  | Each item is associated with a key named | 
|  | .Ql User0 , | 
|  | .Ql User1 , | 
|  | and so on. | 
|  | .Pp | 
|  | For example: | 
|  | .Bd -literal -offset indent | 
|  | set -s user-keys[0] "\ee[5;30012~" | 
|  | bind User0 resize-pane -L 3 | 
|  | .Ed | 
|  | .It Xo Ic visual-activity | 
|  | .Op Ic on | off | both | 
|  | .Xc | 
|  | If on, display a message instead of sending a bell when activity occurs in a | 
|  | window for which the | 
|  | .Ic monitor-activity | 
|  | window option is enabled. | 
|  | If set to both, a bell and a message are produced. | 
|  | .It Xo Ic visual-bell | 
|  | .Op Ic on | off | both | 
|  | .Xc | 
|  | If on, a message is shown on a bell in a window for which the | 
|  | .Ic monitor-bell | 
|  | window option is enabled instead of it being passed through to the | 
|  | terminal (which normally makes a sound). | 
|  | If set to both, a bell and a message are produced. | 
|  | Also see the | 
|  | .Ic bell-action | 
|  | option. | 
|  | .It Xo Ic visual-silence | 
|  | .Op Ic on | off | both | 
|  | .Xc | 
|  | If | 
|  | .Ic monitor-silence | 
|  | is enabled, prints a message after the interval has expired on a given window | 
|  | instead of sending a bell. | 
|  | If set to both, a bell and a message are produced. | 
|  | .It Ic word-separators Ar string | 
|  | Sets the session's conception of what characters are considered word | 
|  | separators, for the purposes of the next and previous word commands in | 
|  | copy mode. | 
|  | The default is | 
|  | .Ql \ -_@ . | 
|  | .El | 
|  | .It Xo Ic set-window-option | 
|  | .Op Fl aFgoqu | 
|  | .Op Fl t Ar target-window | 
|  | .Ar option Ar value | 
|  | .Xc | 
|  | .D1 (alias: Ic setw ) | 
|  | Set a window option. | 
|  | The | 
|  | .Fl a , | 
|  | .Fl F , | 
|  | .Fl g , | 
|  | .Fl o , | 
|  | .Fl q | 
|  | and | 
|  | .Fl u | 
|  | flags work similarly to the | 
|  | .Ic set-option | 
|  | command. | 
|  | .Pp | 
|  | Supported window options are: | 
|  | .Pp | 
|  | .Bl -tag -width Ds -compact | 
|  | .It Xo Ic aggressive-resize | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | Aggressively resize the chosen window. | 
|  | This means that | 
|  | .Nm | 
|  | will resize the window to the size of the smallest session for which it is the | 
|  | current window, rather than the smallest session to which it is attached. | 
|  | The window may resize when the current window is changed on another sessions; | 
|  | this option is good for full-screen programs which support | 
|  | .Dv SIGWINCH | 
|  | and poor for interactive programs such as shells. | 
|  | .Pp | 
|  | .It Xo Ic allow-rename | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | Allow programs to change the window name using a terminal escape | 
|  | sequence (\eek...\ee\e\e). | 
|  | The default is off. | 
|  | .Pp | 
|  | .It Xo Ic alternate-screen | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | This option configures whether programs running inside | 
|  | .Nm | 
|  | may use the terminal alternate screen feature, which allows the | 
|  | .Em smcup | 
|  | and | 
|  | .Em rmcup | 
|  | .Xr terminfo 5 | 
|  | capabilities. | 
|  | The alternate screen feature preserves the contents of the window when an | 
|  | interactive application starts and restores it on exit, so that any output | 
|  | visible before the application starts reappears unchanged after it exits. | 
|  | The default is on. | 
|  | .Pp | 
|  | .It Xo Ic automatic-rename | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | Control automatic window renaming. | 
|  | When this setting is enabled, | 
|  | .Nm | 
|  | will rename the window automatically using the format specified by | 
|  | .Ic automatic-rename-format . | 
|  | This flag is automatically disabled for an individual window when a name | 
|  | is specified at creation with | 
|  | .Ic new-window | 
|  | or | 
|  | .Ic new-session , | 
|  | or later with | 
|  | .Ic rename-window , | 
|  | or with a terminal escape sequence. | 
|  | It may be switched off globally with: | 
|  | .Bd -literal -offset indent | 
|  | set-window-option -g automatic-rename off | 
|  | .Ed | 
|  | .Pp | 
|  | .It Ic automatic-rename-format Ar format | 
|  | The format (see | 
|  | .Sx FORMATS ) | 
|  | used when the | 
|  | .Ic automatic-rename | 
|  | option is enabled. | 
|  | .Pp | 
|  | .It Ic clock-mode-colour Ar colour | 
|  | Set clock colour. | 
|  | .Pp | 
|  | .It Xo Ic clock-mode-style | 
|  | .Op Ic 12 | 24 | 
|  | .Xc | 
|  | Set clock hour format. | 
|  | .Pp | 
|  | .It Ic force-height Ar height | 
|  | .It Ic force-width Ar width | 
|  | Prevent | 
|  | .Nm | 
|  | from resizing a window to greater than | 
|  | .Ar width | 
|  | or | 
|  | .Ar height . | 
|  | A value of zero restores the default unlimited setting. | 
|  | .Pp | 
|  | .It Ic main-pane-height Ar height | 
|  | .It Ic main-pane-width Ar width | 
|  | Set the width or height of the main (left or top) pane in the | 
|  | .Ic main-horizontal | 
|  | or | 
|  | .Ic main-vertical | 
|  | layouts. | 
|  | .Pp | 
|  | .It Xo Ic mode-keys | 
|  | .Op Ic vi | emacs | 
|  | .Xc | 
|  | Use vi or emacs-style key bindings in copy mode. | 
|  | The default is emacs, unless | 
|  | .Ev VISUAL | 
|  | or | 
|  | .Ev EDITOR | 
|  | contains | 
|  | .Ql vi . | 
|  | .Pp | 
|  | .It Ic mode-style Ar style | 
|  | Set window modes style. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .Pp | 
|  | .It Xo Ic monitor-activity | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | Monitor for activity in the window. | 
|  | Windows with activity are highlighted in the status line. | 
|  | .Pp | 
|  | .It Xo Ic monitor-bell | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | Monitor for a bell in the window. | 
|  | Windows with a bell are highlighted in the status line. | 
|  | .Pp | 
|  | .It Xo Ic monitor-silence | 
|  | .Op Ic interval | 
|  | .Xc | 
|  | Monitor for silence (no activity) in the window within | 
|  | .Ic interval | 
|  | seconds. | 
|  | Windows that have been silent for the interval are highlighted in the | 
|  | status line. | 
|  | An interval of zero disables the monitoring. | 
|  | .Pp | 
|  | .It Ic other-pane-height Ar height | 
|  | Set the height of the other panes (not the main pane) in the | 
|  | .Ic main-horizontal | 
|  | layout. | 
|  | If this option is set to 0 (the default), it will have no effect. | 
|  | If both the | 
|  | .Ic main-pane-height | 
|  | and | 
|  | .Ic other-pane-height | 
|  | options are set, the main pane will grow taller to make the other panes the | 
|  | specified height, but will never shrink to do so. | 
|  | .Pp | 
|  | .It Ic other-pane-width Ar width | 
|  | Like | 
|  | .Ic other-pane-height , | 
|  | but set the width of other panes in the | 
|  | .Ic main-vertical | 
|  | layout. | 
|  | .Pp | 
|  | .It Ic pane-active-border-style Ar style | 
|  | Set the pane border style for the currently active pane. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | Attributes are ignored. | 
|  | .Pp | 
|  | .It Ic pane-base-index Ar index | 
|  | Like | 
|  | .Ic base-index , | 
|  | but set the starting index for pane numbers. | 
|  | .Pp | 
|  | .It Ic pane-border-format Ar format | 
|  | Set the text shown in pane border status lines. | 
|  | .Pp | 
|  | .It Xo Ic pane-border-status | 
|  | .Op Ic off | top | bottom | 
|  | .Xc | 
|  | Turn pane border status lines off or set their position. | 
|  | .Pp | 
|  | .It Ic pane-border-style Ar style | 
|  | Set the pane border style for panes aside from the active pane. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | Attributes are ignored. | 
|  | .Pp | 
|  | .It Xo Ic remain-on-exit | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | A window with this flag set is not destroyed when the program running in it | 
|  | exits. | 
|  | The window may be reactivated with the | 
|  | .Ic respawn-window | 
|  | command. | 
|  | .Pp | 
|  | .It Xo Ic synchronize-panes | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | Duplicate input to any pane to all other panes in the same window (only | 
|  | for panes that are not in any special mode). | 
|  | .Pp | 
|  | .It Ic window-active-style Ar style | 
|  | Set the style for the window's active pane. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .Pp | 
|  | .It Ic window-status-activity-style Ar style | 
|  | Set status line style for windows with an activity alert. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .Pp | 
|  | .It Ic window-status-bell-style Ar style | 
|  | Set status line style for windows with a bell alert. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .Pp | 
|  | .It Ic window-status-current-format Ar string | 
|  | Like | 
|  | .Ar window-status-format , | 
|  | but is the format used when the window is the current window. | 
|  | .Pp | 
|  | .It Ic window-status-current-style Ar style | 
|  | Set status line style for the currently active window. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .Pp | 
|  | .It Ic window-status-format Ar string | 
|  | Set the format in which the window is displayed in the status line window list. | 
|  | See the | 
|  | .Ar status-left | 
|  | option for details of special character sequences available. | 
|  | The default is | 
|  | .Ql #I:#W#F . | 
|  | .Pp | 
|  | .It Ic window-status-last-style Ar style | 
|  | Set status line style for the last active window. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .Pp | 
|  | .It Ic window-status-separator Ar string | 
|  | Sets the separator drawn between windows in the status line. | 
|  | The default is a single space character. | 
|  | .Pp | 
|  | .It Ic window-status-style Ar style | 
|  | Set status line style for a single window. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .Pp | 
|  | .It Ic window-style Ar style | 
|  | Set the default window style. | 
|  | For how to specify | 
|  | .Ar style , | 
|  | see the | 
|  | .Ic message-command-style | 
|  | option. | 
|  | .Pp | 
|  | .It Xo Ic wrap-search | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | If this option is set, searches will wrap around the end of the pane contents. | 
|  | The default is on. | 
|  | .Pp | 
|  | .It Xo Ic xterm-keys | 
|  | .Op Ic on | off | 
|  | .Xc | 
|  | If this option is set, | 
|  | .Nm | 
|  | will generate | 
|  | .Xr xterm 1 -style | 
|  | function key sequences; these have a number included to indicate modifiers such | 
|  | as Shift, Alt or Ctrl. | 
|  | .El | 
|  | .It Xo Ic show-options | 
|  | .Op Fl gqsvw | 
|  | .Op Fl t Ar target-session | Ar target-window | 
|  | .Op Ar option | 
|  | .Xc | 
|  | .D1 (alias: Ic show ) | 
|  | Show the window options (or a single window option if given) with | 
|  | .Fl w | 
|  | (equivalent to | 
|  | .Ic show-window-options ) , | 
|  | the server options with | 
|  | .Fl s , | 
|  | otherwise the session options for | 
|  | .Ar target session . | 
|  | Global session or window options are listed if | 
|  | .Fl g | 
|  | is used. | 
|  | .Fl v | 
|  | shows only the option value, not the name. | 
|  | If | 
|  | .Fl q | 
|  | is set, no error will be returned if | 
|  | .Ar option | 
|  | is unset. | 
|  | .It Xo Ic show-window-options | 
|  | .Op Fl gv | 
|  | .Op Fl t Ar target-window | 
|  | .Op Ar option | 
|  | .Xc | 
|  | .D1 (alias: Ic showw ) | 
|  | List the window options or a single option for | 
|  | .Ar target-window , | 
|  | or the global window options if | 
|  | .Fl g | 
|  | is used. | 
|  | .Fl v | 
|  | shows only the option value, not the name. | 
|  | .El | 
|  | .Sh HOOKS | 
|  | .Nm | 
|  | allows commands to run on various triggers, called | 
|  | .Em hooks . | 
|  | Most | 
|  | .Nm | 
|  | commands have an | 
|  | .Em after | 
|  | hook and there are a number of hooks not associated with commands. | 
|  | .Pp | 
|  | A command's after | 
|  | hook is run after it completes, except when the command is run as part of a hook | 
|  | itself. | 
|  | They are named with an | 
|  | .Ql after- | 
|  | prefix. | 
|  | For example, the following command adds a hook to select the even-vertical | 
|  | layout after every | 
|  | .Ic split-window : | 
|  | .Bd -literal -offset indent | 
|  | set-hook after-split-window "selectl even-vertical" | 
|  | .Ed | 
|  | .Pp | 
|  | All the notifications listed in the | 
|  | .Sx CONTROL MODE | 
|  | section are hooks (without any arguments), except | 
|  | .Ic %exit . | 
|  | The following additional hooks are available: | 
|  | .Bl -tag -width "XXXXXXXXXXXXXXXXXXXXXX" | 
|  | .It alert-activity | 
|  | Run when a window has activity. | 
|  | See | 
|  | .Ic monitor-activity . | 
|  | .It alert-bell | 
|  | Run when a window has received a bell. | 
|  | See | 
|  | .Ic monitor-bell . | 
|  | .It alert-silence | 
|  | Run when a window has been silent. | 
|  | See | 
|  | .Ic monitor-silence . | 
|  | .It client-attached | 
|  | Run when a client is attached. | 
|  | .It client-detached | 
|  | Run when a client is detached | 
|  | .It client-resized | 
|  | Run when a client is resized. | 
|  | .It client-session-changed | 
|  | Run when a client's attached session is changed. | 
|  | .It pane-died | 
|  | Run when the program running in a pane exits, but | 
|  | .Ic remain-on-exit | 
|  | is on so the pane has not closed. | 
|  | .It pane-exited | 
|  | Run when the program running in a pane exits. | 
|  | .It pane-set-clipboard | 
|  | Run when the terminal clipboard is set using the | 
|  | .Xr xterm 1 | 
|  | escape sequence. | 
|  | .It session-created | 
|  | Run when a new session created. | 
|  | .It session-closed | 
|  | Run when a session closed. | 
|  | .It session-renamed | 
|  | Run when a session is renamed. | 
|  | .It window-linked | 
|  | Run when a window is linked into a session. | 
|  | .It window-renamed | 
|  | Run when a window is renamed. | 
|  | .It window-unlinked | 
|  | Run when a window is unlinked from a session. | 
|  | .El | 
|  | .Pp | 
|  | Hooks are managed with these commands: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo Ic set-hook | 
|  | .Op Fl gu | 
|  | .Op Fl t Ar target-session | 
|  | .Ar hook-name | 
|  | .Ar command | 
|  | .Xc | 
|  | Sets (or with | 
|  | .Fl u | 
|  | unsets) hook | 
|  | .Ar hook-name | 
|  | to | 
|  | .Ar command . | 
|  | If | 
|  | .Fl g | 
|  | is given, | 
|  | .Em hook-name | 
|  | is added to the global list of hooks, otherwise it is added to the session | 
|  | hooks (for | 
|  | .Ar target-session | 
|  | with | 
|  | .Fl t ) . | 
|  | Like options, session hooks inherit from the global ones. | 
|  | .It Xo Ic show-hooks | 
|  | .Op Fl g | 
|  | .Op Fl t Ar target-session | 
|  | .Xc | 
|  | Shows the global list of hooks with | 
|  | .Fl g , | 
|  | otherwise the session hooks. | 
|  | .El | 
|  | .Sh MOUSE SUPPORT | 
|  | If the | 
|  | .Ic mouse | 
|  | option is on (the default is off), | 
|  | .Nm | 
|  | allows mouse events to be bound as keys. | 
|  | The name of each key is made up of a mouse event (such as | 
|  | .Ql MouseUp1 ) | 
|  | and a location suffix (one of | 
|  | .Ql Pane | 
|  | for the contents of a pane, | 
|  | .Ql Border | 
|  | for a pane border or | 
|  | .Ql Status | 
|  | for the status line). | 
|  | The following mouse events are available: | 
|  | .Bl -column "MouseDown1" "MouseDrag1" "WheelDown" -offset indent | 
|  | .It Li "WheelUp" Ta "WheelDown" Ta "" | 
|  | .It Li "MouseDown1" Ta "MouseUp1" Ta "MouseDrag1" Ta "MouseDragEnd1" | 
|  | .It Li "MouseDown2" Ta "MouseUp2" Ta "MouseDrag2" Ta "MouseDragEnd2" | 
|  | .It Li "MouseDown3" Ta "MouseUp3" Ta "MouseDrag3" Ta "MouseDragEnd3" | 
|  | .It Li "DoubleClick1" Ta "DoubleClick2" Ta "DoubleClick3" | 
|  | .It Li "TripleClick1" Ta "TripleClick2" Ta "TripleClick3" | 
|  | .El | 
|  | .Pp | 
|  | Each should be suffixed with a location, for example | 
|  | .Ql MouseDown1Status . | 
|  | .Pp | 
|  | The special token | 
|  | .Ql {mouse} | 
|  | or | 
|  | .Ql = | 
|  | may be used as | 
|  | .Ar target-window | 
|  | or | 
|  | .Ar target-pane | 
|  | in commands bound to mouse key bindings. | 
|  | It resolves to the window or pane over which the mouse event took place | 
|  | (for example, the window in the status line over which button 1 was released for a | 
|  | .Ql MouseUp1Status | 
|  | binding, or the pane over which the wheel was scrolled for a | 
|  | .Ql WheelDownPane | 
|  | binding). | 
|  | .Pp | 
|  | The | 
|  | .Ic send-keys | 
|  | .Fl M | 
|  | flag may be used to forward a mouse event to a pane. | 
|  | .Pp | 
|  | The default key bindings allow the mouse to be used to select and resize panes, | 
|  | to copy text and to change window using the status line. | 
|  | These take effect if the | 
|  | .Ic mouse | 
|  | option is turned on. | 
|  | .Sh FORMATS | 
|  | Certain commands accept the | 
|  | .Fl F | 
|  | flag with a | 
|  | .Ar format | 
|  | argument. | 
|  | This is a string which controls the output format of the command. | 
|  | Replacement variables are enclosed in | 
|  | .Ql #{ | 
|  | and | 
|  | .Ql } , | 
|  | for example | 
|  | .Ql #{session_name} . | 
|  | The possible variables are listed in the table below, or the name of a | 
|  | .Nm | 
|  | option may be used for an option's value. | 
|  | Some variables have a shorter alias such as | 
|  | .Ql #S , | 
|  | and | 
|  | .Ql ## | 
|  | is replaced by a single | 
|  | .Ql # . | 
|  | .Pp | 
|  | Conditionals are available by prefixing with | 
|  | .Ql \&? | 
|  | and separating two alternatives with a comma; | 
|  | if the specified variable exists and is not zero, the first alternative | 
|  | is chosen, otherwise the second is used. | 
|  | For example | 
|  | .Ql #{?session_attached,attached,not attached} | 
|  | will include the string | 
|  | .Ql attached | 
|  | if the session is attached and the string | 
|  | .Ql not attached | 
|  | if it is unattached, or | 
|  | .Ql #{?automatic-rename,yes,no} | 
|  | will include | 
|  | .Ql yes | 
|  | if | 
|  | .Ic automatic-rename | 
|  | is enabled, or | 
|  | .Ql no | 
|  | if not. | 
|  | .Pp | 
|  | Comparisons may be expressed by prefixing two comma-separated | 
|  | alternatives by | 
|  | .Ql == | 
|  | or | 
|  | .Ql != | 
|  | and a colon. | 
|  | For example | 
|  | .Ql #{==:#{host},myhost} | 
|  | will be replaced by | 
|  | .Ql 1 | 
|  | if running on | 
|  | .Ql myhost , | 
|  | otherwise by | 
|  | .Ql 0 . | 
|  | An | 
|  | .Ql m | 
|  | specifies an | 
|  | .Xr fnmatch 3 | 
|  | comparison where the first argument is the pattern and the second the string to | 
|  | compare, for example | 
|  | .Ql #{m:*foo*,#{host}} . | 
|  | .Ql || | 
|  | and | 
|  | .Ql && | 
|  | evaluate to true if either or both of two comma-separated alternatives are | 
|  | true, for example | 
|  | .Ql #{||,#{pane_in_mode},#{alternate_on}} . | 
|  | A | 
|  | .Ql C | 
|  | performs a search for an | 
|  | .Xr fnmatch 3 | 
|  | pattern in the pane content and evaluates to zero if not found, or a line | 
|  | number if found. | 
|  | .Pp | 
|  | A limit may be placed on the length of the resultant string by prefixing it | 
|  | by an | 
|  | .Ql = , | 
|  | a number and a colon. | 
|  | Positive numbers count from the start of the string and negative from the end, | 
|  | so | 
|  | .Ql #{=5:pane_title} | 
|  | will include at most the first 5 characters of the pane title, or | 
|  | .Ql #{=-5:pane_title} | 
|  | the last 5 characters. | 
|  | Prefixing a time variable with | 
|  | .Ql t: | 
|  | will convert it to a string, so if | 
|  | .Ql #{window_activity} | 
|  | gives | 
|  | .Ql 1445765102 , | 
|  | .Ql #{t:window_activity} | 
|  | gives | 
|  | .Ql Sun Oct 25 09:25:02 2015 . | 
|  | The | 
|  | .Ql b: | 
|  | and | 
|  | .Ql d: | 
|  | prefixes are | 
|  | .Xr basename 3 | 
|  | and | 
|  | .Xr dirname 3 | 
|  | of the variable respectively. | 
|  | A prefix of the form | 
|  | .Ql s/foo/bar/: | 
|  | will substitute | 
|  | .Ql foo | 
|  | with | 
|  | .Ql bar | 
|  | throughout. | 
|  | .Pp | 
|  | In addition, the first line of a shell command's output may be inserted using | 
|  | .Ql #() . | 
|  | For example, | 
|  | .Ql #(uptime) | 
|  | will insert the system's uptime. | 
|  | When constructing formats, | 
|  | .Nm | 
|  | does not wait for | 
|  | .Ql #() | 
|  | commands to finish; instead, the previous result from running the same command is used, | 
|  | or a placeholder if the command has not been run before. | 
|  | If the command hasn't exited, the most recent line of output will be used, but the status | 
|  | line will not be updated more than once a second. | 
|  | Commands are executed with the | 
|  | .Nm | 
|  | global environment set (see the | 
|  | .Sx ENVIRONMENT | 
|  | section). | 
|  | .Pp | 
|  | The following variables are available, where appropriate: | 
|  | .Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX" | 
|  | .It Sy "Variable name" Ta Sy "Alias" Ta Sy "Replaced with" | 
|  | .It Li "alternate_on" Ta "" Ta "If pane is in alternate screen" | 
|  | .It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen" | 
|  | .It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen" | 
|  | .It Li "buffer_created" Ta "" Ta "Time buffer created" | 
|  | .It Li "buffer_name" Ta "" Ta "Name of buffer" | 
|  | .It Li "buffer_sample" Ta "" Ta "Sample of start of buffer" | 
|  | .It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes" | 
|  | .It Li "client_activity" Ta "" Ta "Time client last had activity" | 
|  | .It Li "client_created" Ta "" Ta "Time client created" | 
|  | .It Li "client_control_mode" Ta "" Ta "1 if client is in control mode" | 
|  | .It Li "client_discarded" Ta "" Ta "Bytes discarded when client behind" | 
|  | .It Li "client_height" Ta "" Ta "Height of client" | 
|  | .It Li "client_key_table" Ta "" Ta "Current key table" | 
|  | .It Li "client_last_session" Ta "" Ta "Name of the client's last session" | 
|  | .It Li "client_name" Ta "" Ta "Name of client" | 
|  | .It Li "client_pid" Ta "" Ta "PID of client process" | 
|  | .It Li "client_prefix" Ta "" Ta "1 if prefix key has been pressed" | 
|  | .It Li "client_readonly" Ta "" Ta "1 if client is readonly" | 
|  | .It Li "client_session" Ta "" Ta "Name of the client's session" | 
|  | .It Li "client_termname" Ta "" Ta "Terminal name of client" | 
|  | .It Li "client_termtype" Ta "" Ta "Terminal type of client" | 
|  | .It Li "client_tty" Ta "" Ta "Pseudo terminal of client" | 
|  | .It Li "client_utf8" Ta "" Ta "1 if client supports utf8" | 
|  | .It Li "client_width" Ta "" Ta "Width of client" | 
|  | .It Li "client_written" Ta "" Ta "Bytes written to client" | 
|  | .It Li "command" Ta "" Ta "Name of command in use, if any" | 
|  | .It Li "command_list_name" Ta "" Ta "Command name if listing commands" | 
|  | .It Li "command_list_alias" Ta "" Ta "Command alias if listing commands" | 
|  | .It Li "command_list_usage" Ta "" Ta "Command usage if listing commands" | 
|  | .It Li "cursor_flag" Ta "" Ta "Pane cursor flag" | 
|  | .It Li "cursor_x" Ta "" Ta "Cursor X position in pane" | 
|  | .It Li "cursor_y" Ta "" Ta "Cursor Y position in pane" | 
|  | .It Li "history_bytes" Ta "" Ta "Number of bytes in window history" | 
|  | .It Li "history_limit" Ta "" Ta "Maximum window history lines" | 
|  | .It Li "history_size" Ta "" Ta "Size of history in lines" | 
|  | .It Li "hook" Ta "" Ta "Name of running hook, if any" | 
|  | .It Li "hook_pane" Ta "" Ta "ID of pane where hook was run, if any" | 
|  | .It Li "hook_session" Ta "" Ta "ID of session where hook was run, if any" | 
|  | .It Li "hook_session_name" Ta "" Ta "Name of session where hook was run, if any" | 
|  | .It Li "hook_window" Ta "" Ta "ID of window where hook was run, if any" | 
|  | .It Li "hook_window_name" Ta "" Ta "Name of window where hook was run, if any" | 
|  | .It Li "host" Ta "#H" Ta "Hostname of local host" | 
|  | .It Li "host_short" Ta "#h" Ta "Hostname of local host (no domain name)" | 
|  | .It Li "insert_flag" Ta "" Ta "Pane insert flag" | 
|  | .It Li "keypad_cursor_flag" Ta "" Ta "Pane keypad cursor flag" | 
|  | .It Li "keypad_flag" Ta "" Ta "Pane keypad flag" | 
|  | .It Li "line" Ta "" Ta "Line number in the list" | 
|  | .It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag" | 
|  | .It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag" | 
|  | .It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag" | 
|  | .It Li "mouse_all_flag" Ta "" Ta "Pane mouse all flag" | 
|  | .It Li "pane_active" Ta "" Ta "1 if active pane" | 
|  | .It Li "pane_at_bottom" Ta "" Ta "1 if pane is at the bottom of window" | 
|  | .It Li "pane_at_left" Ta "" Ta "1 if pane is at the left of window" | 
|  | .It Li "pane_at_right" Ta "" Ta "1 if pane is at the right of window" | 
|  | .It Li "pane_at_top" Ta "" Ta "1 if pane is at the top of window" | 
|  | .It Li "pane_bottom" Ta "" Ta "Bottom of pane" | 
|  | .It Li "pane_current_command" Ta "" Ta "Current command if available" | 
|  | .It Li "pane_current_path" Ta "" Ta "Current path if available" | 
|  | .It Li "pane_dead" Ta "" Ta "1 if pane is dead" | 
|  | .It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane" | 
|  | .It Li "pane_format" Ta "" Ta "1 if format is for a pane (not assuming the current)" | 
|  | .It Li "pane_height" Ta "" Ta "Height of pane" | 
|  | .It Li "pane_id" Ta "#D" Ta "Unique pane ID" | 
|  | .It Li "pane_in_mode" Ta "" Ta "If pane is in a mode" | 
|  | .It Li "pane_input_off" Ta "" Ta "If input to pane is disabled" | 
|  | .It Li "pane_index" Ta "#P" Ta "Index of pane" | 
|  | .It Li "pane_left" Ta "" Ta "Left of pane" | 
|  | .It Li "pane_mode" Ta "" Ta "Name of pane mode, if any." | 
|  | .It Li "pane_pid" Ta "" Ta "PID of first process in pane" | 
|  | .It Li "pane_pipe" Ta "" Ta "1 if pane is being piped" | 
|  | .It Li "pane_right" Ta "" Ta "Right of pane" | 
|  | .It Li "pane_search_string" Ta "" Ta "Last search string in copy mode" | 
|  | .It Li "pane_start_command" Ta "" Ta "Command pane started with" | 
|  | .It Li "pane_synchronized" Ta "" Ta "If pane is synchronized" | 
|  | .It Li "pane_tabs" Ta "" Ta "Pane tab positions" | 
|  | .It Li "pane_title" Ta "#T" Ta "Title of pane" | 
|  | .It Li "pane_top" Ta "" Ta "Top of pane" | 
|  | .It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane" | 
|  | .It Li "pane_width" Ta "" Ta "Width of pane" | 
|  | .It Li "pid" Ta ""  Ta "Server PID" | 
|  | .It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane" | 
|  | .It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane" | 
|  | .It Li "scroll_position" Ta "" Ta "Scroll position in copy mode" | 
|  | .It Li "selection_present" Ta "" Ta "1 if selection started in copy mode" | 
|  | .It Li "session_alerts" Ta "" Ta "List of window indexes with alerts" | 
|  | .It Li "session_attached" Ta "" Ta "Number of clients session is attached to" | 
|  | .It Li "session_activity" Ta "" Ta "Time of session last activity" | 
|  | .It Li "session_created" Ta "" Ta "Time session created" | 
|  | .It Li "session_format" Ta "" Ta "1 if format is for a session (not assuming the current)" | 
|  | .It Li "session_last_attached" Ta "" Ta "Time session last attached" | 
|  | .It Li "session_group" Ta "" Ta "Name of session group" | 
|  | .It Li "session_group_size" Ta "" Ta "Size of session group" | 
|  | .It Li "session_group_list" Ta "" Ta "List of sessions in group" | 
|  | .It Li "session_grouped" Ta "" Ta "1 if session in a group" | 
|  | .It Li "session_height" Ta "" Ta "Height of session" | 
|  | .It Li "session_id" Ta "" Ta "Unique session ID" | 
|  | .It Li "session_many_attached" Ta "" Ta "1 if multiple clients attached" | 
|  | .It Li "session_name" Ta "#S" Ta "Name of session" | 
|  | .It Li "session_stack" Ta "" Ta "Window indexes in most recent order" | 
|  | .It Li "session_width" Ta "" Ta "Width of session" | 
|  | .It Li "session_windows" Ta "" Ta "Number of windows in session" | 
|  | .It Li "socket_path" Ta "" Ta "Server socket path" | 
|  | .It Li "start_time" Ta "" Ta "Server start time" | 
|  | .It Li "version" Ta "" Ta "Server version" | 
|  | .It Li "window_activity" Ta "" Ta "Time of window last activity" | 
|  | .It Li "window_activity_flag" Ta "" Ta "1 if window has activity" | 
|  | .It Li "window_active" Ta "" Ta "1 if window active" | 
|  | .It Li "window_bell_flag" Ta "" Ta "1 if window has bell" | 
|  | .It Li "window_flags" Ta "#F" Ta "Window flags" | 
|  | .It Li "window_format" Ta "" Ta "1 if format is for a window (not assuming the current)" | 
|  | .It Li "window_height" Ta "" Ta "Height of window" | 
|  | .It Li "window_id" Ta "" Ta "Unique window ID" | 
|  | .It Li "window_index" Ta "#I" Ta "Index of window" | 
|  | .It Li "window_last_flag" Ta "" Ta "1 if window is the last used" | 
|  | .It Li "window_layout" Ta "" Ta "Window layout description, ignoring zoomed window panes" | 
|  | .It Li "window_linked" Ta "" Ta "1 if window is linked across sessions" | 
|  | .It Li "window_name" Ta "#W" Ta "Name of window" | 
|  | .It Li "window_panes" Ta "" Ta "Number of panes in window" | 
|  | .It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert" | 
|  | .It Li "window_stack_index" Ta "" Ta "Index in session most recent stack" | 
|  | .It Li "window_visible_layout" Ta "" Ta "Window layout description, respecting zoomed window panes" | 
|  | .It Li "window_width" Ta "" Ta "Width of window" | 
|  | .It Li "window_zoomed_flag" Ta "" Ta "1 if window is zoomed" | 
|  | .It Li "wrap_flag" Ta "" Ta "Pane wrap flag" | 
|  | .El | 
|  | .Sh NAMES AND TITLES | 
|  | .Nm | 
|  | distinguishes between names and titles. | 
|  | Windows and sessions have names, which may be used to specify them in targets | 
|  | and are displayed in the status line and various lists: the name is the | 
|  | .Nm | 
|  | identifier for a window or session. | 
|  | Only panes have titles. | 
|  | A pane's title is typically set by the program running inside the pane using | 
|  | an escape sequence (like it would set the | 
|  | .Xr xterm 1 | 
|  | window title in | 
|  | .Xr X 7 ) . | 
|  | Windows themselves do not have titles - a window's title is the title of its | 
|  | active pane. | 
|  | .Nm | 
|  | itself may set the title of the terminal in which the client is running, see | 
|  | the | 
|  | .Ic set-titles | 
|  | option. | 
|  | .Pp | 
|  | A session's name is set with the | 
|  | .Ic new-session | 
|  | and | 
|  | .Ic rename-session | 
|  | commands. | 
|  | A window's name is set with one of: | 
|  | .Bl -enum -width Ds | 
|  | .It | 
|  | A command argument (such as | 
|  | .Fl n | 
|  | for | 
|  | .Ic new-window | 
|  | or | 
|  | .Ic new-session ) . | 
|  | .It | 
|  | An escape sequence: | 
|  | .Bd -literal -offset indent | 
|  | $ printf '\e033kWINDOW_NAME\e033\e\e' | 
|  | .Ed | 
|  | .It | 
|  | Automatic renaming, which sets the name to the active command in the window's | 
|  | active pane. | 
|  | See the | 
|  | .Ic automatic-rename | 
|  | option. | 
|  | .El | 
|  | .Pp | 
|  | When a pane is first created, its title is the hostname. | 
|  | A pane's title can be set via the OSC title setting sequence, for example: | 
|  | .Bd -literal -offset indent | 
|  | $ printf '\e033]2;My Title\e033\e\e' | 
|  | .Ed | 
|  | .Pp | 
|  | It can also be modified with the | 
|  | .Ic select-pane | 
|  | .Fl T | 
|  | command. | 
|  | .Sh ENVIRONMENT | 
|  | When the server is started, | 
|  | .Nm | 
|  | copies the environment into the | 
|  | .Em global environment ; | 
|  | in addition, each session has a | 
|  | .Em session environment . | 
|  | When a window is created, the session and global environments are merged. | 
|  | If a variable exists in both, the value from the session environment is used. | 
|  | The result is the initial environment passed to the new process. | 
|  | .Pp | 
|  | The | 
|  | .Ic update-environment | 
|  | session option may be used to update the session environment from the client | 
|  | when a new session is created or an old reattached. | 
|  | .Nm | 
|  | also initialises the | 
|  | .Ev TMUX | 
|  | variable with some internal information to allow commands to be executed | 
|  | from inside, and the | 
|  | .Ev TERM | 
|  | variable with the correct terminal setting of | 
|  | .Ql screen . | 
|  | .Pp | 
|  | Commands to alter and view the environment are: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo Ic set-environment | 
|  | .Op Fl gru | 
|  | .Op Fl t Ar target-session | 
|  | .Ar name Op Ar value | 
|  | .Xc | 
|  | .D1 (alias: Ic setenv ) | 
|  | Set or unset an environment variable. | 
|  | If | 
|  | .Fl g | 
|  | is used, the change is made in the global environment; otherwise, it is applied | 
|  | to the session environment for | 
|  | .Ar target-session . | 
|  | The | 
|  | .Fl u | 
|  | flag unsets a variable. | 
|  | .Fl r | 
|  | indicates the variable is to be removed from the environment before starting a | 
|  | new process. | 
|  | .It Xo Ic show-environment | 
|  | .Op Fl gs | 
|  | .Op Fl t Ar target-session | 
|  | .Op Ar variable | 
|  | .Xc | 
|  | .D1 (alias: Ic showenv ) | 
|  | Display the environment for | 
|  | .Ar target-session | 
|  | or the global environment with | 
|  | .Fl g . | 
|  | If | 
|  | .Ar variable | 
|  | is omitted, all variables are shown. | 
|  | Variables removed from the environment are prefixed with | 
|  | .Ql - . | 
|  | If | 
|  | .Fl s | 
|  | is used, the output is formatted as a set of Bourne shell commands. | 
|  | .El | 
|  | .Sh STATUS LINE | 
|  | .Nm | 
|  | includes an optional status line which is displayed in the bottom line of each | 
|  | terminal. | 
|  | By default, the status line is enabled (it may be disabled with the | 
|  | .Ic status | 
|  | session option) and contains, from left-to-right: the name of the current | 
|  | session in square brackets; the window list; the title of the active pane | 
|  | in double quotes; and the time and date. | 
|  | .Pp | 
|  | The status line is made of three parts: configurable left and right sections | 
|  | (which may contain dynamic content such as the time or output from a shell | 
|  | command, see the | 
|  | .Ic status-left , | 
|  | .Ic status-left-length , | 
|  | .Ic status-right , | 
|  | and | 
|  | .Ic status-right-length | 
|  | options below), and a central window list. | 
|  | By default, the window list shows the index, name and (if any) flag of the | 
|  | windows present in the current session in ascending numerical order. | 
|  | It may be customised with the | 
|  | .Ar window-status-format | 
|  | and | 
|  | .Ar window-status-current-format | 
|  | options. | 
|  | The flag is one of the following symbols appended to the window name: | 
|  | .Bl -column "Symbol" "Meaning" -offset indent | 
|  | .It Sy "Symbol" Ta Sy "Meaning" | 
|  | .It Li "*" Ta "Denotes the current window." | 
|  | .It Li "-" Ta "Marks the last window (previously selected)." | 
|  | .It Li "#" Ta "Window activity is monitored and activity has been detected." | 
|  | .It Li "\&!" Ta "Window bells are monitored and a bell has occurred in the window." | 
|  | .It Li "~" Ta "The window has been silent for the monitor-silence interval." | 
|  | .It Li "M" Ta "The window contains the marked pane." | 
|  | .It Li "Z" Ta "The window's active pane is zoomed." | 
|  | .El | 
|  | .Pp | 
|  | The # symbol relates to the | 
|  | .Ic monitor-activity | 
|  | window option. | 
|  | The window name is printed in inverted colours if an alert (bell, activity or | 
|  | silence) is present. | 
|  | .Pp | 
|  | The colour and attributes of the status line may be configured, the entire | 
|  | status line using the | 
|  | .Ic status-style | 
|  | session option and individual windows using the | 
|  | .Ic window-status-style | 
|  | window option. | 
|  | .Pp | 
|  | The status line is automatically refreshed at interval if it has changed, the | 
|  | interval may be controlled with the | 
|  | .Ic status-interval | 
|  | session option. | 
|  | .Pp | 
|  | Commands related to the status line are as follows: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo Ic command-prompt | 
|  | .Op Fl 1i | 
|  | .Op Fl I Ar inputs | 
|  | .Op Fl p Ar prompts | 
|  | .Op Fl t Ar target-client | 
|  | .Op Ar template | 
|  | .Xc | 
|  | Open the command prompt in a client. | 
|  | This may be used from inside | 
|  | .Nm | 
|  | to execute commands interactively. | 
|  | .Pp | 
|  | If | 
|  | .Ar template | 
|  | is specified, it is used as the command. | 
|  | If present, | 
|  | .Fl I | 
|  | is a comma-separated list of the initial text for each prompt. | 
|  | If | 
|  | .Fl p | 
|  | is given, | 
|  | .Ar prompts | 
|  | is a comma-separated list of prompts which are displayed in order; otherwise | 
|  | a single prompt is displayed, constructed from | 
|  | .Ar template | 
|  | if it is present, or | 
|  | .Ql \&: | 
|  | if not. | 
|  | .Pp | 
|  | Before the command is executed, the first occurrence of the string | 
|  | .Ql %% | 
|  | and all occurrences of | 
|  | .Ql %1 | 
|  | are replaced by the response to the first prompt, all | 
|  | .Ql %2 | 
|  | are replaced with the response to the second prompt, and so on for further | 
|  | prompts. | 
|  | Up to nine prompt responses may be replaced | 
|  | .Po | 
|  | .Ql %1 | 
|  | to | 
|  | .Ql %9 | 
|  | .Pc . | 
|  | .Ql %%% | 
|  | is like | 
|  | .Ql %% | 
|  | but any quotation marks are escaped. | 
|  | .Pp | 
|  | .Fl 1 | 
|  | makes the prompt only accept one key press, in this case the resulting input | 
|  | is a single character. | 
|  | .Fl i | 
|  | executes the command every time the prompt input changes instead of when the | 
|  | user exits the command prompt. | 
|  | .Pp | 
|  | The following keys have a special meaning in the command prompt, depending | 
|  | on the value of the | 
|  | .Ic status-keys | 
|  | option: | 
|  | .Bl -column "FunctionXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXX" "emacsX" -offset indent | 
|  | .It Sy "Function" Ta Sy "vi" Ta Sy "emacs" | 
|  | .It Li "Cancel command prompt" Ta "Escape" Ta "Escape" | 
|  | .It Li "Delete current word" Ta "" Ta "C-w" | 
|  | .It Li "Delete entire command" Ta "d" Ta "C-u" | 
|  | .It Li "Delete from cursor to end" Ta "D" Ta "C-k" | 
|  | .It Li "Execute command" Ta "Enter" Ta "Enter" | 
|  | .It Li "Get next command from history" Ta "" Ta "Down" | 
|  | .It Li "Get previous command from history" Ta "" Ta "Up" | 
|  | .It Li "Insert top paste buffer" Ta "p" Ta "C-y" | 
|  | .It Li "Look for completions" Ta "Tab" Ta "Tab" | 
|  | .It Li "Move cursor left" Ta "h" Ta "Left" | 
|  | .It Li "Move cursor right" Ta "l" Ta "Right" | 
|  | .It Li "Move cursor to end" Ta "$" Ta "C-e" | 
|  | .It Li "Move cursor to next word" Ta "w" Ta "M-f" | 
|  | .It Li "Move cursor to previous word" Ta "b" Ta "M-b" | 
|  | .It Li "Move cursor to start" Ta "0" Ta "C-a" | 
|  | .It Li "Transpose characters" Ta "" Ta "C-t" | 
|  | .El | 
|  | .It Xo Ic confirm-before | 
|  | .Op Fl p Ar prompt | 
|  | .Op Fl t Ar target-client | 
|  | .Ar command | 
|  | .Xc | 
|  | .D1 (alias: Ic confirm ) | 
|  | Ask for confirmation before executing | 
|  | .Ar command . | 
|  | If | 
|  | .Fl p | 
|  | is given, | 
|  | .Ar prompt | 
|  | is the prompt to display; otherwise a prompt is constructed from | 
|  | .Ar command . | 
|  | It may contain the special character sequences supported by the | 
|  | .Ic status-left | 
|  | option. | 
|  | .Pp | 
|  | This command works only from inside | 
|  | .Nm . | 
|  | .It Xo Ic display-message | 
|  | .Op Fl p | 
|  | .Op Fl c Ar target-client | 
|  | .Op Fl t Ar target-pane | 
|  | .Op Ar message | 
|  | .Xc | 
|  | .D1 (alias: Ic display ) | 
|  | Display a message. | 
|  | If | 
|  | .Fl p | 
|  | is given, the output is printed to stdout, otherwise it is displayed in the | 
|  | .Ar target-client | 
|  | status line. | 
|  | The format of | 
|  | .Ar message | 
|  | is described in the | 
|  | .Sx FORMATS | 
|  | section; information is taken from | 
|  | .Ar target-pane | 
|  | if | 
|  | .Fl t | 
|  | is given, otherwise the active pane for the session attached to | 
|  | .Ar target-client . | 
|  | .El | 
|  | .Sh BUFFERS | 
|  | .Nm | 
|  | maintains a set of named | 
|  | .Em paste buffers . | 
|  | Each buffer may be either explicitly or automatically named. | 
|  | Explicitly named buffers are named when created with the | 
|  | .Ic set-buffer | 
|  | or | 
|  | .Ic load-buffer | 
|  | commands, or by renaming an automatically named buffer with | 
|  | .Ic set-buffer | 
|  | .Fl n . | 
|  | Automatically named buffers are given a name such as | 
|  | .Ql buffer0001 , | 
|  | .Ql buffer0002 | 
|  | and so on. | 
|  | When the | 
|  | .Ic buffer-limit | 
|  | option is reached, the oldest automatically named buffer is deleted. | 
|  | Explicitly named buffers are not subject to | 
|  | .Ic buffer-limit | 
|  | and may be deleted with | 
|  | .Ic delete-buffer | 
|  | command. | 
|  | .Pp | 
|  | Buffers may be added using | 
|  | .Ic copy-mode | 
|  | or the | 
|  | .Ic set-buffer | 
|  | and | 
|  | .Ic load-buffer | 
|  | commands, and pasted into a window using the | 
|  | .Ic paste-buffer | 
|  | command. | 
|  | If a buffer command is used and no buffer is specified, the most | 
|  | recently added automatically named buffer is assumed. | 
|  | .Pp | 
|  | A configurable history buffer is also maintained for each window. | 
|  | By default, up to 2000 lines are kept; this can be altered with the | 
|  | .Ic history-limit | 
|  | option (see the | 
|  | .Ic set-option | 
|  | command above). | 
|  | .Pp | 
|  | The buffer commands are as follows: | 
|  | .Bl -tag -width Ds | 
|  | .It Xo | 
|  | .Ic choose-buffer | 
|  | .Op Fl N | 
|  | .Op Fl F Ar format | 
|  | .Op Fl f Ar filter | 
|  | .Op Fl O Ar sort-order | 
|  | .Op Fl t Ar target-pane | 
|  | .Op Ar template | 
|  | .Xc | 
|  | Put a pane into buffer mode, where a buffer may be chosen interactively from | 
|  | a list. | 
|  | The following keys may be used in buffer mode: | 
|  | .Bl -column "Key" "Function" -offset indent | 
|  | .It Sy "Key" Ta Sy "Function" | 
|  | .It Li "Enter" Ta "Paste selected buffer" | 
|  | .It Li "Up" Ta "Select previous buffer" | 
|  | .It Li "Down" Ta "Select next buffer" | 
|  | .It Li "C-s" Ta "Search by name or content" | 
|  | .It Li "n" Ta "Repeat last search" | 
|  | .It Li "t" Ta "Toggle if buffer is tagged" | 
|  | .It Li "T" Ta "Tag no buffers" | 
|  | .It Li "C-t" Ta "Tag all buffers" | 
|  | .It Li "p" Ta "Paste selected buffer" | 
|  | .It Li "P" Ta "Paste tagged buffers" | 
|  | .It Li "d" Ta "Delete selected buffer" | 
|  | .It Li "D" Ta "Delete tagged buffers" | 
|  | .It Li "f" Ta "Enter a format to filter items" | 
|  | .It Li "O" Ta "Change sort order" | 
|  | .It Li "v" Ta "Toggle preview" | 
|  | .It Li "q" Ta "Exit mode" | 
|  | .El | 
|  | .Pp | 
|  | After a buffer is chosen, | 
|  | .Ql %% | 
|  | is replaced by the buffer name in | 
|  | .Ar template | 
|  | and the result executed as a command. | 
|  | If | 
|  | .Ar template | 
|  | is not given, "paste-buffer -b '%%'" is used. | 
|  | .Pp | 
|  | .Fl O | 
|  | specifies the initial sort order: one of | 
|  | .Ql time , | 
|  | .Ql name | 
|  | or | 
|  | .Ql size . | 
|  | .Fl f | 
|  | specifies an initial filter: the filter is a format - if it evaluates to zero, | 
|  | the item in the list is not shown, otherwise it is shown. | 
|  | If a filter would lead to an empty list, it is ignored. | 
|  | .Fl F | 
|  | specifies the format for each item in the list. | 
|  | .Fl N | 
|  | starts without the preview. | 
|  | This command works only if at least one client is attached. | 
|  | .It Ic clear-history Op Fl t Ar target-pane | 
|  | .D1 (alias: Ic clearhist ) | 
|  | Remove and free the history for the specified pane. | 
|  | .It Ic delete-buffer Op Fl b Ar buffer-name | 
|  | .D1 (alias: Ic deleteb ) | 
|  | Delete the buffer named | 
|  | .Ar buffer-name , | 
|  | or the most recently added automatically named buffer if not specified. | 
|  | .It Xo Ic list-buffers | 
|  | .Op Fl F Ar format | 
|  | .Xc | 
|  | .D1 (alias: Ic lsb ) | 
|  | List the global buffers. | 
|  | For the meaning of the | 
|  | .Fl F | 
|  | flag, see the | 
|  | .Sx FORMATS | 
|  | section. | 
|  | .It Xo Ic load-buffer | 
|  | .Op Fl b Ar buffer-name | 
|  | .Ar path | 
|  | .Xc | 
|  | .D1 (alias: Ic loadb ) | 
|  | Load the contents of the specified paste buffer from | 
|  | .Ar path . | 
|  | .It Xo Ic paste-buffer | 
|  | .Op Fl dpr | 
|  | .Op Fl b Ar buffer-name | 
|  | .Op Fl s Ar separator | 
|  | .Op Fl t Ar target-pane | 
|  | .Xc | 
|  | .D1 (alias: Ic pasteb ) | 
|  | Insert the contents of a paste buffer into the specified pane. | 
|  | If not specified, paste into the current one. | 
|  | With | 
|  | .Fl d , | 
|  | also delete the paste buffer. | 
|  | When output, any linefeed (LF) characters in the paste buffer are replaced with | 
|  | a separator, by default carriage return (CR). | 
|  | A custom separator may be specified using the | 
|  | .Fl s | 
|  | flag. | 
|  | The | 
|  | .Fl r | 
|  | flag means to do no replacement (equivalent to a separator of LF). | 
|  | If | 
|  | .Fl p | 
|  | is specified, paste bracket control codes are inserted around the | 
|  | buffer if the application has requested bracketed paste mode. | 
|  | .It Xo Ic save-buffer | 
|  | .Op Fl a | 
|  | .Op Fl b Ar buffer-name | 
|  | .Ar path | 
|  | .Xc | 
|  | .D1 (alias: Ic saveb ) | 
|  | Save the contents of the specified paste buffer to | 
|  | .Ar path . | 
|  | The | 
|  | .Fl a | 
|  | option appends to rather than overwriting the file. | 
|  | .It Xo Ic set-buffer | 
|  | .Op Fl a | 
|  | .Op Fl b Ar buffer-name | 
|  | .Op Fl n Ar new-buffer-name | 
|  | .Ar data | 
|  | .Xc | 
|  | .D1 (alias: Ic setb ) | 
|  | Set the contents of the specified buffer to | 
|  | .Ar data . | 
|  | The | 
|  | .Fl a | 
|  | option appends to rather than overwriting the buffer. | 
|  | The | 
|  | .Fl n | 
|  | option renames the buffer to | 
|  | .Ar new-buffer-name . | 
|  | .It Xo Ic show-buffer | 
|  | .Op Fl b Ar buffer-name | 
|  | .Xc | 
|  | .D1 (alias: Ic showb ) | 
|  | Display the contents of the specified buffer. | 
|  | .El | 
|  | .Sh MISCELLANEOUS | 
|  | Miscellaneous commands are as follows: | 
|  | .Bl -tag -width Ds | 
|  | .It Ic clock-mode Op Fl t Ar target-pane | 
|  | Display a large clock. | 
|  | .It Xo Ic if-shell | 
|  | .Op Fl bF | 
|  | .Op Fl t Ar target-pane | 
|  | .Ar shell-command command | 
|  | .Op Ar command | 
|  | .Xc | 
|  | .D1 (alias: Ic if ) | 
|  | Execute the first | 
|  | .Ar command | 
|  | if | 
|  | .Ar shell-command | 
|  | returns success or the second | 
|  | .Ar command | 
|  | otherwise. | 
|  | Before being executed, | 
|  | .Ar shell-command | 
|  | is expanded using the rules specified in the | 
|  | .Sx FORMATS | 
|  | section, including those relevant to | 
|  | .Ar target-pane . | 
|  | With | 
|  | .Fl b , | 
|  | .Ar shell-command | 
|  | is run in the background. | 
|  | .Pp | 
|  | If | 
|  | .Fl F | 
|  | is given, | 
|  | .Ar shell-command | 
|  | is not executed but considered success if neither empty nor zero (after formats | 
|  | are expanded). | 
|  | .It Ic lock-server | 
|  | .D1 (alias: Ic lock ) | 
|  | Lock each client individually by running the command specified by the | 
|  | .Ic lock-command | 
|  | option. | 
|  | .It Xo Ic run-shell | 
|  | .Op Fl b | 
|  | .Op Fl t Ar target-pane | 
|  | .Ar shell-command | 
|  | .Xc | 
|  | .D1 (alias: Ic run ) | 
|  | Execute | 
|  | .Ar shell-command | 
|  | in the background without creating a window. | 
|  | Before being executed, shell-command is expanded using the rules specified in | 
|  | the | 
|  | .Sx FORMATS | 
|  | section. | 
|  | With | 
|  | .Fl b , | 
|  | the command is run in the background. | 
|  | After it finishes, any output to stdout is displayed in copy mode (in the pane | 
|  | specified by | 
|  | .Fl t | 
|  | or the current pane if omitted). | 
|  | If the command doesn't return success, the exit status is also displayed. | 
|  | .It Xo Ic wait-for | 
|  | .Op Fl L | S | U | 
|  | .Ar channel | 
|  | .Xc | 
|  | .D1 (alias: Ic wait ) | 
|  | When used without options, prevents the client from exiting until woken using | 
|  | .Ic wait-for | 
|  | .Fl S | 
|  | with the same channel. | 
|  | When | 
|  | .Fl L | 
|  | is used, the channel is locked and any clients that try to lock the same | 
|  | channel are made to wait until the channel is unlocked with | 
|  | .Ic wait-for | 
|  | .Fl U . | 
|  | This command only works from outside | 
|  | .Nm . | 
|  | .El | 
|  | .Sh TERMINFO EXTENSIONS | 
|  | .Nm | 
|  | understands some unofficial extensions to | 
|  | .Xr terminfo 5 : | 
|  | .Bl -tag -width Ds | 
|  | .It Em Cs , Cr | 
|  | Set the cursor colour. | 
|  | The first takes a single string argument and is used to set the colour; | 
|  | the second takes no arguments and restores the default cursor colour. | 
|  | If set, a sequence such as this may be used | 
|  | to change the cursor colour from inside | 
|  | .Nm : | 
|  | .Bd -literal -offset indent | 
|  | $ printf '\e033]12;red\e033\e\e' | 
|  | .Ed | 
|  | .It Em \&Ss , Se | 
|  | Set or reset the cursor style. | 
|  | If set, a sequence such as this may be used | 
|  | to change the cursor to an underline: | 
|  | .Bd -literal -offset indent | 
|  | $ printf '\e033[4 q' | 
|  | .Ed | 
|  | .Pp | 
|  | If | 
|  | .Em Se | 
|  | is not set, \&Ss with argument 0 will be used to reset the cursor style instead. | 
|  | .It Em \&Tc | 
|  | Indicate that the terminal supports the | 
|  | .Ql direct colour | 
|  | RGB escape sequence (for example, \ee[38;2;255;255;255m). | 
|  | .Pp | 
|  | If supported, this is used for the OSC initialize colour escape sequence (which | 
|  | may be enabled by adding the | 
|  | .Ql initc | 
|  | and | 
|  | .Ql ccc | 
|  | capabilities to the | 
|  | .Nm | 
|  | .Xr terminfo 5 | 
|  | entry). | 
|  | .It Em \&Ms | 
|  | Store the current buffer in the host terminal's selection (clipboard). | 
|  | See the | 
|  | .Em set-clipboard | 
|  | option above and the | 
|  | .Xr xterm 1 | 
|  | man page. | 
|  | .El | 
|  | .Sh CONTROL MODE | 
|  | .Nm | 
|  | offers a textual interface called | 
|  | .Em control mode . | 
|  | This allows applications to communicate with | 
|  | .Nm | 
|  | using a simple text-only protocol. | 
|  | .Pp | 
|  | In control mode, a client sends | 
|  | .Nm | 
|  | commands or command sequences terminated by newlines on standard input. | 
|  | Each command will produce one block of output on standard output. | 
|  | An output block consists of a | 
|  | .Em %begin | 
|  | line followed by the output (which may be empty). | 
|  | The output block ends with a | 
|  | .Em %end | 
|  | or | 
|  | .Em %error . | 
|  | .Em %begin | 
|  | and matching | 
|  | .Em %end | 
|  | or | 
|  | .Em %error | 
|  | have two arguments: an integer time (as seconds from epoch) and command number. | 
|  | For example: | 
|  | .Bd -literal -offset indent | 
|  | %begin 1363006971 2 | 
|  | 0: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active) | 
|  | %end 1363006971 2 | 
|  | .Ed | 
|  | .Pp | 
|  | The | 
|  | .Ic refresh-client | 
|  | .Fl C | 
|  | command may be used to set the size of a client in control mode. | 
|  | .Pp | 
|  | In control mode, | 
|  | .Nm | 
|  | outputs notifications. | 
|  | A notification will never occur inside an output block. | 
|  | .Pp | 
|  | The following notifications are defined: | 
|  | .Bl -tag -width Ds | 
|  | .It Ic %client-session-changed Ar client Ar session-id Ar name | 
|  | The client is now attached to the session with ID | 
|  | .Ar session-id , | 
|  | which is named | 
|  | .Ar name . | 
|  | .It Ic %exit Op Ar reason | 
|  | The | 
|  | .Nm | 
|  | client is exiting immediately, either because it is not attached to any session | 
|  | or an error occurred. | 
|  | If present, | 
|  | .Ar reason | 
|  | describes why the client exited. | 
|  | .It Ic %layout-change Ar window-id Ar window-layout Ar window-visible-layout Ar window-flags | 
|  | The layout of a window with ID | 
|  | .Ar window-id | 
|  | changed. | 
|  | The new layout is | 
|  | .Ar window-layout . | 
|  | The window's visible layout is | 
|  | .Ar window-visible-layout | 
|  | and the window flags are | 
|  | .Ar window-flags . | 
|  | .It Ic %output Ar pane-id Ar value | 
|  | A window pane produced output. | 
|  | .Ar value | 
|  | escapes non-printable characters and backslash as octal \\xxx. | 
|  | .It Ic %pane-mode-changed Ar pane-id | 
|  | The pane with ID | 
|  | .Ar pane-id | 
|  | has changed mode. | 
|  | .It Ic %session-changed Ar session-id Ar name | 
|  | The client is now attached to the session with ID | 
|  | .Ar session-id , | 
|  | which is named | 
|  | .Ar name . | 
|  | .It Ic %session-renamed Ar name | 
|  | The current session was renamed to | 
|  | .Ar name . | 
|  | .It Ic %session-window-changed Ar session-id Ar window-id | 
|  | The session with ID | 
|  | .Ar session-id | 
|  | changed its active window to the window with ID | 
|  | .Ar window-id . | 
|  | .It Ic %sessions-changed | 
|  | A session was created or destroyed. | 
|  | .It Ic %unlinked-window-add Ar window-id | 
|  | The window with ID | 
|  | .Ar window-id | 
|  | was created but is not linked to the current session. | 
|  | .It Ic %window-add Ar window-id | 
|  | The window with ID | 
|  | .Ar window-id | 
|  | was linked to the current session. | 
|  | .It Ic %window-close Ar window-id | 
|  | The window with ID | 
|  | .Ar window-id | 
|  | closed. | 
|  | .It Ic %window-pane-changed Ar window-id Ar pane-id | 
|  | The active pane in the window with ID | 
|  | .Ar window-id | 
|  | changed to the pane with ID | 
|  | .Ar pane-id . | 
|  | .It Ic %window-renamed Ar window-id Ar name | 
|  | The window with ID | 
|  | .Ar window-id | 
|  | was renamed to | 
|  | .Ar name . | 
|  | .El | 
|  | .Sh FILES | 
|  | .Bl -tag -width "@SYSCONFDIR@/tmux.confXXX" -compact | 
|  | .It Pa ~/.tmux.conf | 
|  | Default | 
|  | .Nm | 
|  | configuration file. | 
|  | .It Pa @SYSCONFDIR@/tmux.conf | 
|  | System-wide configuration file. | 
|  | .El | 
|  | .Sh EXAMPLES | 
|  | To create a new | 
|  | .Nm | 
|  | session running | 
|  | .Xr vi 1 : | 
|  | .Pp | 
|  | .Dl $ tmux new-session vi | 
|  | .Pp | 
|  | Most commands have a shorter form, known as an alias. | 
|  | For new-session, this is | 
|  | .Ic new : | 
|  | .Pp | 
|  | .Dl $ tmux new vi | 
|  | .Pp | 
|  | Alternatively, the shortest unambiguous form of a command is accepted. | 
|  | If there are several options, they are listed: | 
|  | .Bd -literal -offset indent | 
|  | $ tmux n | 
|  | ambiguous command: n, could be: new-session, new-window, next-window | 
|  | .Ed | 
|  | .Pp | 
|  | Within an active session, a new window may be created by typing | 
|  | .Ql C-b c | 
|  | (Ctrl | 
|  | followed by the | 
|  | .Ql b | 
|  | key | 
|  | followed by the | 
|  | .Ql c | 
|  | key). | 
|  | .Pp | 
|  | Windows may be navigated with: | 
|  | .Ql C-b 0 | 
|  | (to select window 0), | 
|  | .Ql C-b 1 | 
|  | (to select window 1), and so on; | 
|  | .Ql C-b n | 
|  | to select the next window; and | 
|  | .Ql C-b p | 
|  | to select the previous window. | 
|  | .Pp | 
|  | A session may be detached using | 
|  | .Ql C-b d | 
|  | (or by an external event such as | 
|  | .Xr ssh 1 | 
|  | disconnection) and reattached with: | 
|  | .Pp | 
|  | .Dl $ tmux attach-session | 
|  | .Pp | 
|  | Typing | 
|  | .Ql C-b \&? | 
|  | lists the current key bindings in the current window; up and down may be used | 
|  | to navigate the list or | 
|  | .Ql q | 
|  | to exit from it. | 
|  | .Pp | 
|  | Commands to be run when the | 
|  | .Nm | 
|  | server is started may be placed in the | 
|  | .Pa ~/.tmux.conf | 
|  | configuration file. | 
|  | Common examples include: | 
|  | .Pp | 
|  | Changing the default prefix key: | 
|  | .Bd -literal -offset indent | 
|  | set-option -g prefix C-a | 
|  | unbind-key C-b | 
|  | bind-key C-a send-prefix | 
|  | .Ed | 
|  | .Pp | 
|  | Turning the status line off, or changing its colour: | 
|  | .Bd -literal -offset indent | 
|  | set-option -g status off | 
|  | set-option -g status-style bg=blue | 
|  | .Ed | 
|  | .Pp | 
|  | Setting other options, such as the default command, | 
|  | or locking after 30 minutes of inactivity: | 
|  | .Bd -literal -offset indent | 
|  | set-option -g default-command "exec /bin/ksh" | 
|  | set-option -g lock-after-time 1800 | 
|  | .Ed | 
|  | .Pp | 
|  | Creating new key bindings: | 
|  | .Bd -literal -offset indent | 
|  | bind-key b set-option status | 
|  | bind-key / command-prompt "split-window 'exec man %%'" | 
|  | bind-key S command-prompt "new-window -n %1 'ssh %1'" | 
|  | .Ed | 
|  | .Sh SEE ALSO | 
|  | .Xr pty 4 | 
|  | .Sh AUTHORS | 
|  | .An Nicholas Marriott Aq Mt nicholas.marriott@gmail.com |