mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			7789 lines
		
	
	
		
			181 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			7789 lines
		
	
	
		
			181 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" $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$
 | |
| .Dt TMUX 1
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm tmux
 | |
| .Nd terminal multiplexer
 | |
| .Sh SYNOPSIS
 | |
| .Nm tmux
 | |
| .Bk -words
 | |
| .Op Fl 2CDlNuVv
 | |
| .Op Fl c Ar shell-command
 | |
| .Op Fl f Ar file
 | |
| .Op Fl L Ar socket-name
 | |
| .Op Fl S Ar socket-path
 | |
| .Op Fl T Ar features
 | |
| .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.
 | |
| This is equivalent to
 | |
| .Fl T Ar 256 .
 | |
| .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 D
 | |
| Do not start the
 | |
| .Nm
 | |
| server as a daemon.
 | |
| This also turns the
 | |
| .Ic exit-empty
 | |
| option off.
 | |
| With
 | |
| .Fl D ,
 | |
| .Ar command
 | |
| may not be specified.
 | |
| .It Fl f Ar file
 | |
| Specify an alternative configuration file.
 | |
| By default,
 | |
| .Nm
 | |
| loads the system configuration file from
 | |
| .Pa /etc/tmux.conf ,
 | |
| if present, then looks for a user configuration file at
 | |
| .Pa \[ti]/.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 a directory
 | |
| .Pa tmux-UID
 | |
| under the directory given by
 | |
| .Ev TMUX_TMPDIR
 | |
| or in
 | |
| .Pa /tmp .
 | |
| The
 | |
| .Pa tmux-UID
 | |
| directory is created by
 | |
| .Nm
 | |
| and must not be world readable, writable or executable.
 | |
| .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 N
 | |
| Do not start the server even if the command would normally do so (for example
 | |
| .Ic new-session
 | |
| or
 | |
| .Ic start-server ) .
 | |
| .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 T Ar features
 | |
| Set terminal features for the client.
 | |
| This is a comma-separated list of features.
 | |
| See the
 | |
| .Ic terminal-features
 | |
| option.
 | |
| .It Fl u
 | |
| Write UTF-8 output to the terminal even if the first environment
 | |
| variable of
 | |
| .Ev LC_ALL ,
 | |
| .Ev LC_CTYPE ,
 | |
| or
 | |
| .Ev LANG
 | |
| that is set does not contain
 | |
| .Qq UTF-8
 | |
| or
 | |
| .Qq UTF8 .
 | |
| .It Fl V
 | |
| Report the
 | |
| .Nm
 | |
| version.
 | |
| .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 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 DEFAULT 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 \[aq]
 | |
| 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 m
 | |
| Mark the current pane (see
 | |
| .Ic select-pane
 | |
| .Fl m ) .
 | |
| .It M
 | |
| Clear the marked pane.
 | |
| .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 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 \[ti]
 | |
| 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-7
 | |
| Arrange panes in one of the seven preset layouts:
 | |
| even-horizontal, even-vertical,
 | |
| main-horizontal, main-horizontal-mirrored,
 | |
| main-vertical, main-vertical-mirrored,
 | |
| 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 COMMAND PARSING AND EXECUTION
 | |
| .Nm
 | |
| supports a large number of commands which can be used to control its
 | |
| behaviour.
 | |
| Each command is named and can accept zero or more flags and arguments.
 | |
| They may be bound to a key with the
 | |
| .Ic bind-key
 | |
| command or run from the shell prompt, a shell script, a configuration file or
 | |
| the command prompt.
 | |
| For example, the same
 | |
| .Ic set-option
 | |
| command run from the shell prompt, from
 | |
| .Pa \[ti]/.tmux.conf
 | |
| and bound to a key may look like:
 | |
| .Bd -literal -offset indent
 | |
| $ tmux set-option -g status-style bg=cyan
 | |
| 
 | |
| set-option -g status-style bg=cyan
 | |
| 
 | |
| bind-key C set-option -g status-style bg=cyan
 | |
| .Ed
 | |
| .Pp
 | |
| Here, the command name is
 | |
| .Ql set-option ,
 | |
| .Ql Fl g
 | |
| is a flag and
 | |
| .Ql status-style
 | |
| and
 | |
| .Ql bg=cyan
 | |
| are arguments.
 | |
| .Pp
 | |
| .Nm
 | |
| distinguishes between command parsing and execution.
 | |
| In order to execute a command,
 | |
| .Nm
 | |
| needs it to be split up into its name and arguments.
 | |
| This is command parsing.
 | |
| If a command is run from the shell, the shell parses it; from inside
 | |
| .Nm
 | |
| or from a configuration file,
 | |
| .Nm
 | |
| does.
 | |
| Examples of when
 | |
| .Nm
 | |
| parses commands are:
 | |
| .Bl -dash -offset indent
 | |
| .It
 | |
| in a configuration file;
 | |
| .It
 | |
| typed at the command prompt (see
 | |
| .Ic command-prompt ) ;
 | |
| .It
 | |
| given to
 | |
| .Ic bind-key ;
 | |
| .It
 | |
| passed as arguments to
 | |
| .Ic if-shell
 | |
| or
 | |
| .Ic confirm-before .
 | |
| .El
 | |
| .Pp
 | |
| To execute commands, each client has a
 | |
| .Ql command queue .
 | |
| A global command queue not attached to any client is used on startup
 | |
| for configuration files like
 | |
| .Pa \[ti]/.tmux.conf .
 | |
| Parsed commands added to the queue are executed in order.
 | |
| Some commands, like
 | |
| .Ic if-shell
 | |
| and
 | |
| .Ic confirm-before ,
 | |
| parse their argument to create a new command which is inserted immediately
 | |
| after themselves.
 | |
| This means that arguments can be parsed twice or more - once when the parent
 | |
| command (such as
 | |
| .Ic if-shell )
 | |
| is parsed and again when it parses and executes its command.
 | |
| Commands like
 | |
| .Ic if-shell ,
 | |
| .Ic run-shell
 | |
| and
 | |
| .Ic display-panes
 | |
| stop execution of subsequent commands on the queue until something happens -
 | |
| .Ic if-shell
 | |
| and
 | |
| .Ic run-shell
 | |
| until a shell command finishes and
 | |
| .Ic display-panes
 | |
| until a key is pressed.
 | |
| For example, the following commands:
 | |
| .Bd -literal -offset indent
 | |
| new-session; new-window
 | |
| if-shell "true" "split-window"
 | |
| kill-session
 | |
| .Ed
 | |
| .Pp
 | |
| Will execute
 | |
| .Ic new-session ,
 | |
| .Ic new-window ,
 | |
| .Ic if-shell ,
 | |
| the shell command
 | |
| .Xr true 1 ,
 | |
| .Ic split-window
 | |
| and
 | |
| .Ic kill-session
 | |
| in that order.
 | |
| .Pp
 | |
| The
 | |
| .Sx COMMANDS
 | |
| section lists the
 | |
| .Nm
 | |
| commands and their arguments.
 | |
| .Sh PARSING SYNTAX
 | |
| This section describes the syntax of commands parsed by
 | |
| .Nm ,
 | |
| for example in a configuration file or at the command prompt.
 | |
| Note that when commands are entered into the shell, they are parsed by the shell
 | |
| - see for example
 | |
| .Xr ksh 1
 | |
| or
 | |
| .Xr csh 1 .
 | |
| .Pp
 | |
| Each command is terminated by a newline or a semicolon (;).
 | |
| Commands separated by semicolons together form a
 | |
| .Ql command sequence
 | |
| - if a command in the sequence encounters an error, no subsequent commands are
 | |
| executed.
 | |
| .Pp
 | |
| It is recommended that a semicolon used as a command separator should be
 | |
| written as an individual token, for example from
 | |
| .Xr sh 1 :
 | |
| .Bd -literal -offset indent
 | |
| $ tmux neww \\; splitw
 | |
| .Ed
 | |
| .Pp
 | |
| Or:
 | |
| .Bd -literal -offset indent
 | |
| $ tmux neww \[aq];\[aq] splitw
 | |
| .Ed
 | |
| .Pp
 | |
| Or from the tmux command prompt:
 | |
| .Bd -literal -offset indent
 | |
| neww ; splitw
 | |
| .Ed
 | |
| .Pp
 | |
| However, a trailing semicolon is also interpreted as a command separator,
 | |
| for example in these
 | |
| .Xr sh 1
 | |
| commands:
 | |
| .Bd -literal -offset indent
 | |
| $ tmux neww\e; splitw
 | |
| .Ed
 | |
| .Pp
 | |
| Or:
 | |
| .Bd -literal -offset indent
 | |
| $ tmux \[aq]neww;\[aq] splitw
 | |
| .Ed
 | |
| .Pp
 | |
| As in these examples, when running tmux from the shell extra care must be taken
 | |
| to properly quote semicolons:
 | |
| .Bl -enum -offset Ds
 | |
| .It
 | |
| Semicolons that should be interpreted as a command separator
 | |
| should be escaped according to the shell conventions.
 | |
| For
 | |
| .Xr sh 1
 | |
| this typically means quoted (such as
 | |
| .Ql neww \[aq];\[aq] splitw )
 | |
| or escaped (such as
 | |
| .Ql neww \e\e\e\e; splitw ) .
 | |
| .It
 | |
| Individual semicolons or trailing semicolons that should be interpreted as
 | |
| arguments should be escaped twice: once according to the shell conventions and
 | |
| a second time for
 | |
| .Nm ;
 | |
| for example:
 | |
| .Bd -literal -offset indent
 | |
| $ tmux neww \[aq]foo\e\e;\[aq] bar
 | |
| $ tmux neww foo\e\e\e\e; bar
 | |
| .Ed
 | |
| .It
 | |
| Semicolons that are not individual tokens or trailing another token should only
 | |
| be escaped once according to shell conventions; for example:
 | |
| .Bd -literal -offset indent
 | |
| $ tmux neww \[aq]foo-;-bar\[aq]
 | |
| $ tmux neww foo-\e\e;-bar
 | |
| .Ed
 | |
| .El
 | |
| .Pp
 | |
| Comments are marked by the unquoted # character - any remaining text after a
 | |
| comment is ignored until the end of the line.
 | |
| .Pp
 | |
| If the last character of a line is \e, the line is joined with the following
 | |
| line (the \e and the newline are completely removed).
 | |
| This is called line continuation and applies both inside and outside quoted
 | |
| strings and in comments, but not inside braces.
 | |
| .Pp
 | |
| Command arguments may be specified as strings surrounded by single (\[aq])
 | |
| quotes, double quotes (\[dq]) or braces ({}).
 | |
| .\" "
 | |
| This is required when the argument contains any special character.
 | |
| Single and double quoted strings cannot span multiple lines except with line
 | |
| continuation.
 | |
| Braces can span multiple lines.
 | |
| .Pp
 | |
| Outside of quotes and inside double quotes, these replacements are performed:
 | |
| .Bl -dash -offset indent
 | |
| .It
 | |
| Environment variables preceded by $ are replaced with their value from the
 | |
| global environment (see the
 | |
| .Sx GLOBAL AND SESSION ENVIRONMENT
 | |
| section).
 | |
| .It
 | |
| A leading \[ti] or \[ti]user is expanded to the home directory of the current or
 | |
| specified user.
 | |
| .It
 | |
| \euXXXX or \euXXXXXXXX is replaced by the Unicode codepoint corresponding to
 | |
| the given four or eight digit hexadecimal number.
 | |
| .It
 | |
| When preceded (escaped) by a \e, the following characters are replaced: \ee by
 | |
| the escape character; \er by a carriage return; \en by a newline; and \et by a
 | |
| tab.
 | |
| .It
 | |
| \eooo is replaced by a character of the octal value ooo.
 | |
| Three octal digits are required, for example \e001.
 | |
| The largest valid character is \e377.
 | |
| .It
 | |
| Any other characters preceded by \e are replaced by themselves (that is, the \e
 | |
| is removed) and are not treated as having any special meaning - so for example
 | |
| \e; will not mark a command sequence and \e$ will not expand an environment
 | |
| variable.
 | |
| .El
 | |
| .Pp
 | |
| Braces are parsed as a configuration file (so conditions such as
 | |
| .Ql %if
 | |
| are processed) and then converted into a string.
 | |
| They are designed to avoid the need for additional escaping when passing a
 | |
| group of
 | |
| .Nm
 | |
| commands as an argument (for example to
 | |
| .Ic if-shell ) .
 | |
| These two examples produce an identical command - note that no escaping is
 | |
| needed when using {}:
 | |
| .Bd -literal -offset indent
 | |
| if-shell true {
 | |
|     display -p \[aq]brace-dollar-foo: }$foo\[aq]
 | |
| }
 | |
| 
 | |
| if-shell true "display -p \[aq]brace-dollar-foo: }\e$foo\[aq]"
 | |
| .Ed
 | |
| .Pp
 | |
| Braces may be enclosed inside braces, for example:
 | |
| .Bd -literal -offset indent
 | |
| bind x if-shell "true" {
 | |
|     if-shell "true" {
 | |
|         display "true!"
 | |
|     }
 | |
| }
 | |
| .Ed
 | |
| .Pp
 | |
| Environment variables may be set by using the syntax
 | |
| .Ql name=value ,
 | |
| for example
 | |
| .Ql HOME=/home/user .
 | |
| Variables set during parsing are added to the global environment.
 | |
| A hidden variable may be set with
 | |
| .Ql %hidden ,
 | |
| for example:
 | |
| .Bd -literal -offset indent
 | |
| %hidden MYVAR=42
 | |
| .Ed
 | |
| .Pp
 | |
| Hidden variables are not passed to the environment of processes created
 | |
| by tmux.
 | |
| See the
 | |
| .Sx GLOBAL AND SESSION ENVIRONMENT
 | |
| section.
 | |
| .Pp
 | |
| Commands may be parsed conditionally by surrounding them with
 | |
| .Ql %if ,
 | |
| .Ql %elif ,
 | |
| .Ql %else
 | |
| and
 | |
| .Ql %endif .
 | |
| The argument to
 | |
| .Ql %if
 | |
| and
 | |
| .Ql %elif
 | |
| is expanded as a format (see
 | |
| .Sx FORMATS )
 | |
| and if it evaluates to false (zero or empty), subsequent text is ignored until
 | |
| the closing
 | |
| .Ql %elif ,
 | |
| .Ql %else
 | |
| or
 | |
| .Ql %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.
 | |
| Conditionals may be given on one line, for example:
 | |
| .Bd -literal -offset indent
 | |
| %if #{==:#{host},myhost} set -g status-style bg=red %endif
 | |
| .Ed
 | |
| .Sh COMMANDS
 | |
| This section describes 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
 | |
| A
 | |
| .Xr glob 7
 | |
| 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 a
 | |
| .Xr glob 7
 | |
| 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 session, window or pane where the most recent mouse event
 | |
| occurred (see the
 | |
| .Sx MOUSE SUPPORT
 | |
| section)
 | |
| or
 | |
| .Ql {marked}
 | |
| (alternative form
 | |
| .Ql \[ti] )
 | |
| 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 \[aq]vi \[ti]/.tmux.conf\[aq]
 | |
| .Ed
 | |
| .Pp
 | |
| Will run:
 | |
| .Bd -literal -offset indent
 | |
| /bin/sh -c \[aq]vi \[ti]/.tmux.conf\[aq]
 | |
| .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 \[ti]/.tmux.conf
 | |
| .Ed
 | |
| .Pp
 | |
| Will run
 | |
| .Xr vi 1
 | |
| directly without invoking the shell.
 | |
| .Pp
 | |
| .Ar command
 | |
| .Op Ar argument ...
 | |
| refers to a
 | |
| .Nm
 | |
| command, either passed with the command and arguments separately, for example:
 | |
| .Bd -literal -offset indent
 | |
| bind-key F1 set-option status off
 | |
| .Ed
 | |
| .Pp
 | |
| Or passed as a single string argument in
 | |
| .Pa .tmux.conf ,
 | |
| for example:
 | |
| .Bd -literal -offset indent
 | |
| bind-key F1 { set-option status off }
 | |
| .Ed
 | |
| .Pp
 | |
| Example
 | |
| .Nm
 | |
| commands include:
 | |
| .Bd -literal -offset indent
 | |
| refresh-client -t/dev/ttyp2
 | |
| 
 | |
| rename-session -tfirst newname
 | |
| 
 | |
| set-option -wt:0 monitor-activity on
 | |
| 
 | |
| new-window ; split-window -d
 | |
| 
 | |
| bind-key R source-file \[ti]/.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 \[aq]vi \[ti]/.tmux.conf\[aq] \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
 | |
| .Tg attach
 | |
| .It Xo Ic attach-session
 | |
| .Op Fl dErx
 | |
| .Op Fl c Ar working-directory
 | |
| .Op Fl f Ar flags
 | |
| .Op Fl t Ar target-session
 | |
| .Xc
 | |
| .D1 Pq alias: Ic attach
 | |
| If run from outside
 | |
| .Nm ,
 | |
| attach to
 | |
| .Ar target-session
 | |
| in the current terminal.
 | |
| .Ar target-session
 | |
| must already exist - to create a new session, see the
 | |
| .Ic new-session
 | |
| command (with
 | |
| .Fl A
 | |
| to create or attach).
 | |
| If used from inside, switch the currently attached session to
 | |
| .Ar target-session .
 | |
| If
 | |
| .Fl d
 | |
| is specified, any other clients attached to the session are detached.
 | |
| If
 | |
| .Fl x
 | |
| is given, send
 | |
| .Dv SIGHUP
 | |
| to the parent process of the client as well as
 | |
| detaching the client, typically causing it to exit.
 | |
| .Fl f
 | |
| sets a comma-separated list of client flags.
 | |
| The flags are:
 | |
| .Bl -tag -width Ds
 | |
| .It active-pane
 | |
| the client has an independent active pane
 | |
| .It ignore-size
 | |
| the client does not affect the size of other clients
 | |
| .It no-detach-on-destroy
 | |
| do not detach the client when the session it is attached to is destroyed if
 | |
| there are any other sessions
 | |
| .It no-output
 | |
| the client does not receive pane output in control mode
 | |
| .It pause-after=seconds
 | |
| output is paused once the pane is
 | |
| .Ar seconds
 | |
| behind in control mode
 | |
| .It read-only
 | |
| the client is read-only
 | |
| .It wait-exit
 | |
| wait for an empty line input before exiting in control mode
 | |
| .El
 | |
| .Pp
 | |
| A leading
 | |
| .Ql \&!
 | |
| turns a flag off if the client is already attached.
 | |
| .Fl r
 | |
| is an alias for
 | |
| .Fl f
 | |
| .Ar read-only,ignore-size .
 | |
| When a client is read-only, only keys bound to the
 | |
| .Ic detach-client
 | |
| or
 | |
| .Ic switch-client
 | |
| commands have any effect.
 | |
| A client with the
 | |
| .Ar active-pane
 | |
| flag allows the active pane to be selected independently of the window's active
 | |
| pane used by clients without the flag.
 | |
| This only affects the cursor position and commands issued from the client;
 | |
| other features such as hooks and styles continue to use the window's active
 | |
| pane.
 | |
| .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.
 | |
| .Tg detach
 | |
| .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 Pq 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
 | |
| .Dv SIGHUP
 | |
| to the parent process of the client, typically causing it
 | |
| to exit.
 | |
| With
 | |
| .Fl E ,
 | |
| run
 | |
| .Ar shell-command
 | |
| to replace the client.
 | |
| .Tg has
 | |
| .It Ic has-session Op Fl t Ar target-session
 | |
| .D1 Pq 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.
 | |
| .Tg lsc
 | |
| .It Xo Ic list-clients
 | |
| .Op Fl F Ar format
 | |
| .Op Fl f Ar filter
 | |
| .Op Fl t Ar target-session
 | |
| .Xc
 | |
| .D1 Pq alias: Ic lsc
 | |
| List all clients attached to the server.
 | |
| .Fl F
 | |
| specifies the format of each line and
 | |
| .Fl f
 | |
| a filter.
 | |
| Only clients for which the filter is true are shown.
 | |
| See the
 | |
| .Sx FORMATS
 | |
| section.
 | |
| If
 | |
| .Ar target-session
 | |
| is specified, list only clients connected to that session.
 | |
| .Tg lscm
 | |
| .It Xo Ic list-commands
 | |
| .Op Fl F Ar format
 | |
| .Op Ar command
 | |
| .Xc
 | |
| .D1 Pq alias: Ic lscm
 | |
| List the syntax of
 | |
| .Ar command
 | |
| or - if omitted - of all commands supported by
 | |
| .Nm .
 | |
| .Tg ls
 | |
| .It Xo Ic list-sessions
 | |
| .Op Fl F Ar format
 | |
| .Op Fl f Ar filter
 | |
| .Xc
 | |
| .D1 Pq alias: Ic ls
 | |
| List all sessions managed by the server.
 | |
| .Fl F
 | |
| specifies the format of each line and
 | |
| .Fl f
 | |
| a filter.
 | |
| Only sessions for which the filter is true are shown.
 | |
| See the
 | |
| .Sx FORMATS
 | |
| section.
 | |
| .Tg lockc
 | |
| .It Ic lock-client Op Fl t Ar target-client
 | |
| .D1 Pq alias: Ic lockc
 | |
| Lock
 | |
| .Ar target-client ,
 | |
| see the
 | |
| .Ic lock-server
 | |
| command.
 | |
| .Tg locks
 | |
| .It Ic lock-session Op Fl t Ar target-session
 | |
| .D1 Pq alias: Ic locks
 | |
| Lock all clients attached to
 | |
| .Ar target-session .
 | |
| .Tg new
 | |
| .It Xo Ic new-session
 | |
| .Op Fl AdDEPX
 | |
| .Op Fl c Ar start-directory
 | |
| .Op Fl e Ar environment
 | |
| .Op Fl f Ar flags
 | |
| .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 Pq 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 comes from the global
 | |
| .Ic default-size
 | |
| option;
 | |
| .Fl x
 | |
| and
 | |
| .Fl y
 | |
| can be used to specify a different size.
 | |
| .Ql -
 | |
| uses the size of the current client if any.
 | |
| If
 | |
| .Fl x
 | |
| or
 | |
| .Fl y
 | |
| is given, the
 | |
| .Ic default-size
 | |
| option is set for the session.
 | |
| .Fl f
 | |
| sets a comma-separated list of client flags (see
 | |
| .Ic attach-session ) .
 | |
| .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;
 | |
| if
 | |
| .Fl A
 | |
| is given,
 | |
| .Fl D
 | |
| behaves like
 | |
| .Fl d
 | |
| to
 | |
| .Ic attach-session ,
 | |
| and
 | |
| .Fl X
 | |
| behaves like
 | |
| .Fl x
 | |
| 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.
 | |
| .Fl e
 | |
| takes the form
 | |
| .Ql VARIABLE=value
 | |
| and sets an environment variable for the newly created session; it may be
 | |
| specified multiple times.
 | |
| .Tg refresh
 | |
| .It Xo Ic refresh-client
 | |
| .Op Fl cDLRSU
 | |
| .Op Fl A Ar pane:state
 | |
| .Op Fl B Ar name:what:format
 | |
| .Op Fl C Ar size
 | |
| .Op Fl f Ar flags
 | |
| .Op Fl l Op Ar target-pane
 | |
| .Op Fl r Ar pane:report
 | |
| .Op Fl t Ar target-client
 | |
| .Op Ar adjustment
 | |
| .Xc
 | |
| .D1 Pq 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
 | |
| The
 | |
| .Fl U ,
 | |
| .Fl D ,
 | |
| .Fl L
 | |
| .Fl R ,
 | |
| and
 | |
| .Fl c
 | |
| flags allow the visible portion of a window which is larger than the client
 | |
| to be changed.
 | |
| .Fl U
 | |
| moves the visible part up by
 | |
| .Ar adjustment
 | |
| rows and
 | |
| .Fl D
 | |
| down,
 | |
| .Fl L
 | |
| left by
 | |
| .Ar adjustment
 | |
| columns and
 | |
| .Fl R
 | |
| right.
 | |
| .Fl c
 | |
| returns to tracking the cursor automatically.
 | |
| If
 | |
| .Ar adjustment
 | |
| is omitted, 1 is used.
 | |
| Note that the visible position is a property of the client not of the
 | |
| window, changing the current window in the attached session will reset
 | |
| it.
 | |
| .Pp
 | |
| .Fl C
 | |
| sets the width and height of a control mode client or of a window for a
 | |
| control mode client,
 | |
| .Ar size
 | |
| must be one of
 | |
| .Ql widthxheight
 | |
| or
 | |
| .Ql window ID:widthxheight ,
 | |
| for example
 | |
| .Ql 80x24
 | |
| or
 | |
| .Ql @0:80x24 .
 | |
| .Fl A
 | |
| allows a control mode client to trigger actions on a pane.
 | |
| The argument is a pane ID (with leading
 | |
| .Ql % ) ,
 | |
| a colon, then one of
 | |
| .Ql on ,
 | |
| .Ql off ,
 | |
| .Ql continue
 | |
| or
 | |
| .Ql pause .
 | |
| If
 | |
| .Ql off ,
 | |
| .Nm
 | |
| will not send output from the pane to the client and if all clients have turned
 | |
| the pane off, will stop reading from the pane.
 | |
| If
 | |
| .Ql continue ,
 | |
| .Nm
 | |
| will return to sending output to the pane if it was paused (manually or with the
 | |
| .Ar pause-after
 | |
| flag).
 | |
| If
 | |
| .Ql pause ,
 | |
| .Nm
 | |
| will pause the pane.
 | |
| .Fl A
 | |
| may be given multiple times for different panes.
 | |
| .Pp
 | |
| .Fl B
 | |
| sets a subscription to a format for a control mode client.
 | |
| The argument is split into three items by colons:
 | |
| .Ar name
 | |
| is a name for the subscription;
 | |
| .Ar what
 | |
| is a type of item to subscribe to;
 | |
| .Ar format
 | |
| is the format.
 | |
| After a subscription is added, changes to the format are reported with the
 | |
| .Ic %subscription-changed
 | |
| notification, at most once a second.
 | |
| If only the name is given, the subscription is removed.
 | |
| .Ar what
 | |
| may be empty to check the format only for the attached session, or one of:
 | |
| a pane ID such as
 | |
| .Ql %0 ;
 | |
| .Ql %*
 | |
| for all panes in the attached session;
 | |
| a window ID such as
 | |
| .Ql @0 ;
 | |
| or
 | |
| .Ql @*
 | |
| for all windows in the attached session.
 | |
| .Pp
 | |
| .Fl f
 | |
| sets a comma-separated list of client flags, see
 | |
| .Ic attach-session .
 | |
| .Fl r
 | |
| allows a control mode client to provide information about a pane via a report
 | |
| (such as the response to OSC 10).
 | |
| The argument is a pane ID (with a leading
 | |
| .Ql % ) ,
 | |
| a colon, then a report escape sequence.
 | |
| .Pp
 | |
| .Fl l
 | |
| requests the clipboard from the client using the
 | |
| .Xr xterm 1
 | |
| escape sequence.
 | |
| If
 | |
| .Ar target-pane
 | |
| is given, the clipboard is sent (in encoded form), otherwise it is stored in a
 | |
| new paste buffer.
 | |
| .Pp
 | |
| .Fl L ,
 | |
| .Fl R ,
 | |
| .Fl U
 | |
| and
 | |
| .Fl D
 | |
| move the visible portion of the window left, right, up or down
 | |
| by
 | |
| .Ar adjustment ,
 | |
| if the window is larger than the client.
 | |
| .Fl c
 | |
| resets so that the position follows the cursor.
 | |
| See the
 | |
| .Ic window-size
 | |
| option.
 | |
| .Tg rename
 | |
| .It Xo Ic rename-session
 | |
| .Op Fl t Ar target-session
 | |
| .Ar new-name
 | |
| .Xc
 | |
| .D1 Pq alias: Ic rename
 | |
| Rename the session to
 | |
| .Ar new-name .
 | |
| .It Xo Ic server-access
 | |
| .Op Fl adlrw
 | |
| .Op Ar user
 | |
| .Xc
 | |
| Change the access or read/write permission of
 | |
| .Ar user .
 | |
| The user running the
 | |
| .Nm
 | |
| server (its owner) and the root user cannot be changed and are always
 | |
| permitted access.
 | |
| .Pp
 | |
| .Fl a
 | |
| and
 | |
| .Fl d
 | |
| are used to give or revoke access for the specified user.
 | |
| If the user is already attached, the
 | |
| .Fl d
 | |
| flag causes their clients to be detached.
 | |
| .Pp
 | |
| .Fl r
 | |
| and
 | |
| .Fl w
 | |
| change the permissions for
 | |
| .Ar user :
 | |
| .Fl r
 | |
| makes their clients read-only and
 | |
| .Fl w
 | |
| writable.
 | |
| .Fl l
 | |
| lists current access permissions.
 | |
| .Pp
 | |
| By default, the access list is empty and
 | |
| .Nm
 | |
| creates sockets with file system permissions preventing access by any user
 | |
| other than the owner (and root).
 | |
| These permissions must be changed manually.
 | |
| Great care should be taken not to allow access to untrusted users even
 | |
| read-only.
 | |
| .Tg showmsgs
 | |
| .It Xo Ic show-messages
 | |
| .Op Fl JT
 | |
| .Op Fl t Ar target-client
 | |
| .Xc
 | |
| .D1 Pq alias: Ic showmsgs
 | |
| Show server messages or information.
 | |
| Messages are stored, up to a maximum of the limit set by the
 | |
| .Ar message-limit
 | |
| server option.
 | |
| .Fl J
 | |
| and
 | |
| .Fl T
 | |
| show debugging information about jobs and terminals.
 | |
| .Tg source
 | |
| .It Xo Ic source-file
 | |
| .Op Fl Fnqv
 | |
| .Op Fl t Ar target-pane
 | |
| .Ar path ...
 | |
| .Xc
 | |
| .D1 Pq alias: Ic source
 | |
| Execute commands from one or more files specified by
 | |
| .Ar path
 | |
| (which may be
 | |
| .Xr glob 7
 | |
| patterns).
 | |
| If
 | |
| .Fl F
 | |
| is present, then
 | |
| .Ar path
 | |
| is expanded as a format.
 | |
| If
 | |
| .Fl q
 | |
| is given, no error will be returned if
 | |
| .Ar path
 | |
| does not exist.
 | |
| With
 | |
| .Fl n ,
 | |
| the file is parsed but no commands are executed.
 | |
| .Fl v
 | |
| shows the parsed commands and line numbers if possible.
 | |
| .Tg start
 | |
| .It Ic start-server
 | |
| .D1 Pq alias: Ic start
 | |
| Start the
 | |
| .Nm
 | |
| server, if not already running, without creating any sessions.
 | |
| .Pp
 | |
| Note that as by default the
 | |
| .Nm
 | |
| server will exit with no sessions, this is only useful if a session is created
 | |
| in
 | |
| .Pa \[ti]/.tmux.conf ,
 | |
| .Ic exit-empty
 | |
| is turned off, or another command is run as part of the same command sequence.
 | |
| For example:
 | |
| .Bd -literal -offset indent
 | |
| $ tmux start \\; show -g
 | |
| .Ed
 | |
| .Tg suspendc
 | |
| .It Xo Ic suspend-client
 | |
| .Op Fl t Ar target-client
 | |
| .Xc
 | |
| .D1 Pq alias: Ic suspendc
 | |
| Suspend a client by sending
 | |
| .Dv SIGTSTP
 | |
| (tty stop).
 | |
| .Tg switchc
 | |
| .It Xo Ic switch-client
 | |
| .Op Fl ElnprZ
 | |
| .Op Fl c Ar target-client
 | |
| .Op Fl t Ar target-session
 | |
| .Op Fl T Ar key-table
 | |
| .Xc
 | |
| .D1 Pq alias: Ic switchc
 | |
| Switch the current session for client
 | |
| .Ar target-client
 | |
| to
 | |
| .Ar target-session .
 | |
| As a special case,
 | |
| .Fl t
 | |
| may refer to a pane (a target that contains
 | |
| .Ql \&: ,
 | |
| .Ql \&.
 | |
| or
 | |
| .Ql % ) ,
 | |
| to change session, window and pane.
 | |
| In that case,
 | |
| .Fl Z
 | |
| keeps the window zoomed if it was zoomed.
 | |
| 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 the client
 | |
| .Ic read-only
 | |
| and
 | |
| .Ic ignore-size
 | |
| flags (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
 | |
| 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
 | |
| By default, a
 | |
| .Nm
 | |
| pane permits direct access to the terminal contained in the pane.
 | |
| A pane may also be put into one of several modes:
 | |
| .Bl -dash -offset indent
 | |
| .It
 | |
| 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.
 | |
| Copied text can be pasted with the
 | |
| .Ic paste-buffer
 | |
| command, bound to
 | |
| .Ql \&] .
 | |
| .It
 | |
| View mode, which is like copy mode but is entered when a command that produces
 | |
| output, such as
 | |
| .Ic list-keys ,
 | |
| is executed from a key binding.
 | |
| .It
 | |
| Choose mode, which allows an item to be chosen from a list.
 | |
| This may be a client, a session or window or pane, or a buffer.
 | |
| This mode is entered with the
 | |
| .Ic choose-buffer ,
 | |
| .Ic choose-client
 | |
| and
 | |
| .Ic choose-tree
 | |
| commands.
 | |
| .El
 | |
| .Pp
 | |
| In copy mode an indicator is displayed in the top-right corner of the pane with
 | |
| the current position and the number of lines in the history.
 | |
| .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 -tag -width Ds
 | |
| .It Xo
 | |
| .Ic append-selection
 | |
| .Xc
 | |
| Append the selection to the top paste buffer.
 | |
| .It Xo
 | |
| .Ic append-selection-and-cancel
 | |
| (vi: A)
 | |
| .Xc
 | |
| Append the selection to the top paste buffer and exit copy mode.
 | |
| .It Xo
 | |
| .Ic back-to-indentation
 | |
| (vi: ^)
 | |
| (emacs: M-m)
 | |
| .Xc
 | |
| Move the cursor back to the indentation.
 | |
| .It Xo
 | |
| .Ic begin-selection
 | |
| (vi: Space)
 | |
| (emacs: C-Space)
 | |
| .Xc
 | |
| Begin selection.
 | |
| .It Xo
 | |
| .Ic bottom-line
 | |
| (vi: L)
 | |
| .Xc
 | |
| Move to the bottom line.
 | |
| .It Xo
 | |
| .Ic cancel
 | |
| (vi: q)
 | |
| (emacs: Escape)
 | |
| .Xc
 | |
| Exit copy mode.
 | |
| .It Xo
 | |
| .Ic clear-selection
 | |
| (vi: Escape)
 | |
| (emacs: C-g)
 | |
| .Xc
 | |
| Clear the current selection.
 | |
| .It Xo
 | |
| .Ic copy-end-of-line
 | |
| .Op Fl CP
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Copy from the cursor position to the end of the line.
 | |
| .Ar prefix
 | |
| is used to name the new paste buffer.
 | |
| .It Xo
 | |
| .Ic copy-end-of-line-and-cancel
 | |
| .Op Fl CP
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Copy from the cursor position and exit copy mode.
 | |
| .It Xo
 | |
| .Ic copy-pipe-end-of-line
 | |
| .Op Fl CP
 | |
| .Op Ar command
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Copy from the cursor position to the end of the line and pipe the text to
 | |
| .Ar command .
 | |
| .Ar prefix
 | |
| is used to name the new paste buffer.
 | |
| .It Xo
 | |
| .Ic copy-pipe-end-of-line-and-cancel
 | |
| .Op Fl CP
 | |
| .Op Ar command
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Same as
 | |
| .Ic copy-pipe-end-of-line
 | |
| but also exit copy mode.
 | |
| .It Xo
 | |
| .Ic copy-line
 | |
| .Op Fl CP
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Copy the entire line.
 | |
| .It Xo
 | |
| .Ic copy-line-and-cancel
 | |
| .Op Fl CP
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Copy the entire line and exit copy mode.
 | |
| .It Xo
 | |
| .Ic copy-pipe-line
 | |
| .Op Fl CP
 | |
| .Op Ar command
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Copy the entire line and pipe the text to
 | |
| .Ar command .
 | |
| .Ar prefix
 | |
| is used to name the new paste buffer.
 | |
| .It Xo
 | |
| .Ic copy-pipe-line-and-cancel
 | |
| .Op Fl CP
 | |
| .Op Ar command
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Same as
 | |
| .Ic copy-pipe-line
 | |
| but also exit copy mode.
 | |
| .It Xo
 | |
| .Ic copy-pipe
 | |
| .Op Fl CP
 | |
| .Op Ar command
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Copy the selection, clear it and pipe its text to
 | |
| .Ar command .
 | |
| .Ar prefix
 | |
| is used to name the new paste buffer.
 | |
| .It Xo
 | |
| .Ic copy-pipe-no-clear
 | |
| .Op Fl CP
 | |
| .Op Ar command
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Same as
 | |
| .Ic copy-pipe
 | |
| but do not clear the selection.
 | |
| .It Xo
 | |
| .Ic copy-pipe-and-cancel
 | |
| .Op Fl CP
 | |
| .Op Ar command
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Same as
 | |
| .Ic copy-pipe
 | |
| but also exit copy mode.
 | |
| .It Xo
 | |
| .Ic copy-selection
 | |
| .Op Fl CP
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Copies the current selection.
 | |
| .It Xo
 | |
| .Ic copy-selection-no-clear
 | |
| .Op Fl CP
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Same as
 | |
| .Ic copy-selection
 | |
| but do not clear the selection.
 | |
| .It Xo
 | |
| .Ic copy-selection-and-cancel
 | |
| .Op Fl CP
 | |
| .Op Ar prefix
 | |
| (vi: Enter)
 | |
| (emacs: M-w)
 | |
| .Xc
 | |
| Copy the current selection and exit copy mode.
 | |
| .It Xo
 | |
| .Ic cursor-down
 | |
| (vi: j)
 | |
| (emacs: Down)
 | |
| .Xc
 | |
| Move the cursor down.
 | |
| .It Xo
 | |
| .Ic cursor-down-and-cancel
 | |
| .Xc
 | |
| Same as
 | |
| .Ic cursor-down
 | |
| but also exit copy mode if reaching the bottom.
 | |
| .It Xo
 | |
| .Ic cursor-left
 | |
| (vi: h)
 | |
| (emacs: Left)
 | |
| .Xc
 | |
| Move the cursor left.
 | |
| .It Xo
 | |
| .Ic cursor-right
 | |
| (vi: l)
 | |
| (emacs: Right)
 | |
| .Xc
 | |
| Move the cursor right.
 | |
| .It Xo
 | |
| .Ic cursor-up
 | |
| (vi: k)
 | |
| (emacs: Up)
 | |
| .Xc
 | |
| Move the cursor up.
 | |
| .It Xo
 | |
| .Ic end-of-line
 | |
| (vi: $)
 | |
| (emacs: C-e)
 | |
| .Xc
 | |
| Move the cursor to the end of the line.
 | |
| .It Xo
 | |
| .Ic goto-line
 | |
| .Ar line
 | |
| (vi: :)
 | |
| (emacs: g)
 | |
| .Xc
 | |
| Move the cursor to a specific line.
 | |
| .It Xo
 | |
| .Ic halfpage-down
 | |
| (vi: C-d)
 | |
| (emacs: M-Down)
 | |
| .Xc
 | |
| Scroll down by half a page.
 | |
| .It Xo
 | |
| .Ic halfpage-down-and-cancel
 | |
| .Xc
 | |
| Same as
 | |
| .Ic halfpage-down
 | |
| but also exit copy mode if reaching the bottom.
 | |
| .It Xo
 | |
| .Ic halfpage-up
 | |
| (vi: C-u)
 | |
| (emacs: M-Up)
 | |
| .Xc
 | |
| Scroll up by half a page.
 | |
| .It Xo
 | |
| .Ic history-bottom
 | |
| (vi: G)
 | |
| (emacs: M->)
 | |
| .Xc
 | |
| Scroll to the bottom of the history.
 | |
| .It Xo
 | |
| .Ic history-top
 | |
| (vi: g)
 | |
| (emacs: M-<)
 | |
| .Xc
 | |
| Scroll to the top of the history.
 | |
| .It Xo
 | |
| .Ic jump-again
 | |
| (vi: ;)
 | |
| (emacs: ;)
 | |
| .Xc
 | |
| Repeat the last jump.
 | |
| .It Xo
 | |
| .Ic jump-backward
 | |
| .Ar to
 | |
| (vi: F)
 | |
| (emacs: F)
 | |
| .Xc
 | |
| Jump backwards to the specified text.
 | |
| .It Xo
 | |
| .Ic jump-forward
 | |
| .Ar to
 | |
| (vi: f)
 | |
| (emacs: f)
 | |
| .Xc
 | |
| Jump forward to the specified text.
 | |
| .It Xo
 | |
| .Ic jump-reverse
 | |
| (vi: ,)
 | |
| (emacs: ,)
 | |
| .Xc
 | |
| Repeat the last jump in the reverse direction (forward becomes backward and
 | |
| backward becomes forward).
 | |
| .It Xo
 | |
| .Ic jump-to-backward
 | |
| .Ar to
 | |
| (vi: T)
 | |
| .Xc
 | |
| Jump backwards, but one character less, placing the cursor on the character
 | |
| after the target.
 | |
| .It Xo
 | |
| .Ic jump-to-forward
 | |
| .Ar to
 | |
| (vi: t)
 | |
| .Xc
 | |
| Jump forward, but one character less, placing the cursor on the character
 | |
| before the target.
 | |
| .It Xo
 | |
| .Ic jump-to-mark
 | |
| (vi: M-x)
 | |
| (emacs: M-x)
 | |
| .Xc
 | |
| Jump to the last mark.
 | |
| .It Xo
 | |
| .Ic middle-line
 | |
| (vi: M)
 | |
| (emacs: M-r)
 | |
| .Xc
 | |
| Move to the middle line.
 | |
| .It Xo
 | |
| .Ic next-matching-bracket
 | |
| (vi: %)
 | |
| (emacs: M-C-f)
 | |
| .Xc
 | |
| Move to the next matching bracket.
 | |
| .It Xo
 | |
| .Ic next-paragraph
 | |
| (vi: })
 | |
| (emacs: M-})
 | |
| .Xc
 | |
| Move to the next paragraph.
 | |
| .It Xo
 | |
| .Ic next-prompt
 | |
| .Op Fl o
 | |
| .Xc
 | |
| Move to the next prompt.
 | |
| .It Xo
 | |
| .Ic next-word
 | |
| (vi: w)
 | |
| .Xc
 | |
| Move to the next word.
 | |
| .It Xo
 | |
| .Ic next-word-end
 | |
| (vi: e)
 | |
| (emacs: M-f)
 | |
| .Xc
 | |
| Move to the end of the next word.
 | |
| .It Xo
 | |
| .Ic next-space
 | |
| (vi: W)
 | |
| .Xc
 | |
| Same as
 | |
| .Ic next-word
 | |
| but use a space alone as the word separator.
 | |
| .It Xo
 | |
| .Ic next-space-end
 | |
| (vi: E)
 | |
| .Xc
 | |
| Same as
 | |
| .Ic next-word-end
 | |
| but use a space alone as the word separator.
 | |
| .It Xo
 | |
| .Ic other-end
 | |
| (vi: o)
 | |
| .Xc
 | |
| Switch at which end of the selection the cursor sits.
 | |
| .It Xo
 | |
| .Ic page-down
 | |
| (vi: C-f)
 | |
| (emacs: PageDown)
 | |
| .Xc
 | |
| Scroll down by one page.
 | |
| .It Xo
 | |
| .Ic page-down-and-cancel
 | |
| .Xc
 | |
| Same as
 | |
| .Ic page-down
 | |
| but also exit copy mode if reaching the bottom.
 | |
| .It Xo
 | |
| .Ic page-up
 | |
| (vi: C-b)
 | |
| (emacs: PageUp)
 | |
| .Xc
 | |
| Scroll up by one page.
 | |
| .It Xo
 | |
| .Ic pipe
 | |
| .Op Ar command
 | |
| .Xc
 | |
| Pipe the selected text to
 | |
| .Ar command
 | |
| and clear the selection.
 | |
| .It Xo
 | |
| .Ic pipe-no-clear
 | |
| .Op Ar command
 | |
| .Xc
 | |
| Same as
 | |
| .Ic pipe
 | |
| but do not clear the selection.
 | |
| .It Xo
 | |
| .Ic pipe-and-cancel
 | |
| .Op Ar command
 | |
| .Op Ar prefix
 | |
| .Xc
 | |
| Same as
 | |
| .Ic pipe
 | |
| but also exit copy mode.
 | |
| .It Xo
 | |
| .Ic previous-matching-bracket
 | |
| (emacs: M-C-b)
 | |
| .Xc
 | |
| Move to the previous matching bracket.
 | |
| .It Xo
 | |
| .Ic previous-paragraph
 | |
| (vi: {)
 | |
| (emacs: M-{)
 | |
| .Xc
 | |
| Move to the previous paragraph.
 | |
| .It Xo
 | |
| .Ic previous-prompt
 | |
| .Op Fl o
 | |
| .Xc
 | |
| Move to the previous prompt.
 | |
| .It Xo
 | |
| .Ic previous-word
 | |
| (vi: b)
 | |
| (emacs: M-b)
 | |
| .Xc
 | |
| Move to the previous word.
 | |
| .It Xo
 | |
| .Ic previous-space
 | |
| (vi: B)
 | |
| .Xc
 | |
| Same as
 | |
| .Ic previous-word
 | |
| but use a space alone as the word separator.
 | |
| .It Xo
 | |
| .Ic rectangle-on
 | |
| .Xc
 | |
| Turn on rectangle selection mode.
 | |
| .It Xo
 | |
| .Ic rectangle-off
 | |
| .Xc
 | |
| Turn off rectangle selection mode.
 | |
| .It Xo
 | |
| .Ic rectangle-toggle
 | |
| (vi: v)
 | |
| (emacs: R)
 | |
| .Xc
 | |
| Toggle rectangle selection mode.
 | |
| .It Xo
 | |
| .Ic refresh-from-pane
 | |
| (vi: r)
 | |
| (emacs: r)
 | |
| .Xc
 | |
| Refresh the content from the pane.
 | |
| .It Xo
 | |
| .Ic scroll-bottom
 | |
| .Xc
 | |
| Scroll up until the current line is at the bottom while keeping the cursor on
 | |
| that line.
 | |
| .It Xo
 | |
| .Ic scroll-down
 | |
| (vi: C-e)
 | |
| (emacs: C-Down)
 | |
| .Xc
 | |
| Scroll down.
 | |
| .It Xo
 | |
| .Ic scroll-down-and-cancel
 | |
| .Xc
 | |
| Same as
 | |
| .Ic scroll-down
 | |
| but also exit copy mode if the cursor reaches the bottom.
 | |
| .It Xo
 | |
| .Ic scroll-middle
 | |
| (vi: z)
 | |
| .Xc
 | |
| Scroll so that the current line becomes the middle one while keeping the
 | |
| cursor on that line.
 | |
| .It Xo
 | |
| .Ic scroll-top
 | |
| .Xc
 | |
| Scroll down until the current line is at the top while keeping the cursor on
 | |
| that line.
 | |
| .It Xo
 | |
| .Ic scroll-up
 | |
| (vi: C-y)
 | |
| (emacs: C-Up)
 | |
| .Xc
 | |
| Scroll up.
 | |
| .It Xo
 | |
| .Ic search-again
 | |
| (vi: n)
 | |
| (emacs: n)
 | |
| .Xc
 | |
| Repeat the last search.
 | |
| .It Xo
 | |
| .Ic search-backward
 | |
| .Ar text
 | |
| (vi: ?)
 | |
| .Xc
 | |
| Search backwards for the specified text.
 | |
| .It Xo
 | |
| .Ic search-backward-incremental
 | |
| .Ar text
 | |
| (emacs: C-r)
 | |
| .Xc
 | |
| Search backwards incrementally for the specified text.
 | |
| Is expected to be used with the
 | |
| .Fl i
 | |
| flag to the
 | |
| .Ic command-prompt
 | |
| command.
 | |
| .It Xo
 | |
| .Ic search-backward-text
 | |
| .Ar text
 | |
| .Xc
 | |
| Search backwards for the specified plain text.
 | |
| .It Xo
 | |
| .Ic search-forward
 | |
| .Ar text
 | |
| (vi: /)
 | |
| .Xc
 | |
| Search forward for the specified text.
 | |
| .It Xo
 | |
| .Ic search-forward-incremental
 | |
| .Ar text
 | |
| (emacs: C-s)
 | |
| .Xc
 | |
| Search forward incrementally for the specified text.
 | |
| Is expected to be used with the
 | |
| .Fl i
 | |
| flag to the
 | |
| .Ic command-prompt
 | |
| command.
 | |
| .It Xo
 | |
| .Ic search-forward-text
 | |
| .Ar text
 | |
| .Xc
 | |
| Search forward for the specified plain text.
 | |
| .It Xo
 | |
| .Ic search-reverse
 | |
| (vi: N)
 | |
| (emacs: N)
 | |
| .Xc
 | |
| Repeat the last search in the reverse direction (forward becomes backward and
 | |
| backward becomes forward).
 | |
| .It Xo
 | |
| .Ic select-line
 | |
| (vi: V)
 | |
| .Xc
 | |
| Select the current line.
 | |
| .It Xo
 | |
| .Ic select-word
 | |
| .Xc
 | |
| Select the current word.
 | |
| .It Xo
 | |
| .Ic set-mark
 | |
| (vi: X)
 | |
| (emacs: X)
 | |
| .Xc
 | |
| Mark the current line.
 | |
| .It Xo
 | |
| .Ic start-of-line
 | |
| (vi: 0)
 | |
| (emacs: C-a)
 | |
| .Xc
 | |
| Move the cursor to the start of the line.
 | |
| .It Xo
 | |
| .Ic stop-selection
 | |
| .Xc
 | |
| Stop selecting without clearing the current selection.
 | |
| .It Xo
 | |
| .Ic toggle-position
 | |
| (vi: P)
 | |
| (emacs: P)
 | |
| .Xc
 | |
| Toggle the visibility of the position indicator in the top right.
 | |
| .It Xo
 | |
| .Ic top-line
 | |
| (vi: H)
 | |
| (emacs: M-R)
 | |
| .Xc
 | |
| Move to the top line.
 | |
| .El
 | |
| .Pp
 | |
| The search commands come in several varieties:
 | |
| .Ql search-forward
 | |
| and
 | |
| .Ql search-backward
 | |
| search for a regular expression;
 | |
| the
 | |
| .Ql -text
 | |
| variants search for a plain text string rather than a regular expression;
 | |
| .Ql -incremental
 | |
| perform an incremental search and expect to be used with the
 | |
| .Fl i
 | |
| flag to the
 | |
| .Ic command-prompt
 | |
| command.
 | |
| .Ql search-again
 | |
| repeats the last search and
 | |
| .Ql search-reverse
 | |
| does the same but reverses the direction (forward becomes backward and backward
 | |
| becomes forward).
 | |
| .Pp
 | |
| The default incremental search key bindings,
 | |
| .Ql C-r
 | |
| and
 | |
| .Ql C-s ,
 | |
| are designed to emulate
 | |
| .Xr emacs 1 .
 | |
| When first pressed they allow a new search term to be entered; if pressed with
 | |
| an empty search term they repeat the previously used search term.
 | |
| .Pp
 | |
| The
 | |
| .Ql next-prompt
 | |
| and
 | |
| .Ql previous-prompt
 | |
| move between shell prompts, but require the shell to emit an escape sequence
 | |
| (\e033]133;A\e033\e\e) to tell
 | |
| .Nm
 | |
| where the prompts are located; if the shell does not do this, these commands
 | |
| will do nothing.
 | |
| The
 | |
| .Fl o
 | |
| flag jumps to the beginning of the command output instead of the shell prompt.
 | |
| Finding the beginning of command output requires the shell to emit an escape
 | |
| sequence (\e033]133;C\e033\e\e) to tell tmux where the output begins.
 | |
| If the shell does not send these escape sequences, these commands do nothing.
 | |
| .Pp
 | |
| Copy commands may take an optional buffer prefix argument which is used
 | |
| to generate the buffer name (the default is
 | |
| .Ql buffer
 | |
| so buffers are named
 | |
| .Ql buffer0 ,
 | |
| .Ql buffer1
 | |
| and so on).
 | |
| Pipe commands take a command argument which is the command to which the
 | |
| selected text is piped.
 | |
| .Ql copy-pipe
 | |
| variants also copy the selection.
 | |
| 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).
 | |
| .Ql -no-clear
 | |
| variants do not clear the selection.
 | |
| All the copy commands can take the
 | |
| .Fl C
 | |
| and
 | |
| .Fl P
 | |
| flags.
 | |
| The
 | |
| .Fl C
 | |
| flag suppresses setting the terminal clipboard when copying, while the
 | |
| .Fl P
 | |
| flag suppresses adding a paste buffer with the text.
 | |
| .Pp
 | |
| The next and previous word keys skip over whitespace and treat consecutive
 | |
| runs of either word separators or other letters as words.
 | |
| Word separators can be customized with 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.
 | |
| Setting
 | |
| .Em word-separators
 | |
| to the empty string makes next/previous word equivalent to next/previous space.
 | |
| .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 deHMqSu
 | |
| .Op Fl s Ar src-pane
 | |
| .Op Fl t Ar target-pane
 | |
| .Xc
 | |
| Enter copy mode.
 | |
| .Pp
 | |
| .Fl u
 | |
| enters copy mode and scrolls one page up and
 | |
| .Fl d
 | |
| one page down.
 | |
| .Fl H
 | |
| hides the position indicator in the top right.
 | |
| .Fl q
 | |
| cancels copy mode and any other modes.
 | |
| .Pp
 | |
| .Fl M
 | |
| begins a mouse drag (only valid if bound to a mouse key binding, see
 | |
| .Sx MOUSE SUPPORT ) .
 | |
| .Fl S
 | |
| scrolls when bound to a mouse drag event; for example,
 | |
| .Ic copy-mode -Se
 | |
| is bound to
 | |
| .Ar MouseDrag1ScrollbarSlider
 | |
| by default.
 | |
| .Pp
 | |
| .Fl s
 | |
| copies from
 | |
| .Ar src-pane
 | |
| instead of
 | |
| .Ar target-pane .
 | |
| .Pp
 | |
| .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
 | |
| bind PageDown copy-mode -ed
 | |
| .Ed
 | |
| .El
 | |
| .Pp
 | |
| A number of preset arrangements of panes are available, these are called
 | |
| layouts.
 | |
| 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-horizontal-mirrored
 | |
| The same as
 | |
| .Ic main-horizontal
 | |
| but mirrored so the main pane is at the bottom of the window.
 | |
| .It Ic main-vertical
 | |
| A large (main) pane is shown on the left of the window and the remaining panes
 | |
| are spread from top to bottom in the leftover space on the right.
 | |
| Use the
 | |
| .Em main-pane-width
 | |
| window option to specify the width of the left pane.
 | |
| .It Ic main-vertical-mirrored
 | |
| The same as
 | |
| .Ic main-vertical
 | |
| but mirrored so the main pane is on the right of the window.
 | |
| .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 \[aq]bb62,159x48,0,0{79x48,0,0,79x48,80,0}\[aq]
 | |
| .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
 | |
| .Tg breakp
 | |
| .It Xo Ic break-pane
 | |
| .Op Fl abdP
 | |
| .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 Pq alias: Ic breakp
 | |
| Break
 | |
| .Ar src-pane
 | |
| off from its containing window to make it the only pane in
 | |
| .Ar dst-window .
 | |
| With
 | |
| .Fl a
 | |
| or
 | |
| .Fl b ,
 | |
| the window is moved to the next index after or before (existing windows are
 | |
| moved if necessary).
 | |
| 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}.#{pane_index}
 | |
| but a different format may be specified with
 | |
| .Fl F .
 | |
| .Tg capturep
 | |
| .It Xo Ic capture-pane
 | |
| .Op Fl aepPqCJMN
 | |
| .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 Pq 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.
 | |
| Similarly, if the pane is in a mode,
 | |
| .Fl M
 | |
| uses the screen for the mode.
 | |
| 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 T
 | |
| ignores trailing positions that do not contain a character.
 | |
| .Fl N
 | |
| preserves trailing spaces at each line's end and
 | |
| .Fl J
 | |
| preserves trailing spaces and joins any wrapped lines;
 | |
| .Fl J
 | |
| implies
 | |
| .Fl T .
 | |
| .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 NryZ
 | |
| .Op Fl F Ar format
 | |
| .Op Fl f Ar filter
 | |
| .Op Fl K Ar key-format
 | |
| .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.
 | |
| Each client is shown on one line.
 | |
| A shortcut key is shown on the left in brackets allowing for immediate choice,
 | |
| or the list may be navigated and an item chosen or otherwise manipulated using
 | |
| the keys below.
 | |
| .Fl Z
 | |
| zooms the pane.
 | |
| .Fl y
 | |
| disables any confirmation prompts.
 | |
| 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 forwards"
 | |
| .It Li "N" Ta "Repeat last search backwards"
 | |
| .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 field"
 | |
| .It Li "r" Ta "Reverse 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 \[aq]%%\[aq]" is used.
 | |
| .Pp
 | |
| .Fl O
 | |
| specifies the initial sort field: one of
 | |
| .Ql name ,
 | |
| .Ql size ,
 | |
| .Ql creation
 | |
| (time),
 | |
| or
 | |
| .Ql activity
 | |
| (time).
 | |
| .Fl r
 | |
| reverses the sort order.
 | |
| .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 and
 | |
| .Fl K
 | |
| a format for each shortcut key; both are evaluated once for each line.
 | |
| .Fl N
 | |
| starts without the preview or if given twice with the larger preview.
 | |
| This command works only if at least one client is attached.
 | |
| .It Xo
 | |
| .Ic choose-tree
 | |
| .Op Fl GNrswyZ
 | |
| .Op Fl F Ar format
 | |
| .Op Fl f Ar filter
 | |
| .Op Fl K Ar key-format
 | |
| .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 tree.
 | |
| Each session, window or pane is shown on one line.
 | |
| A shortcut key is shown on the left in brackets allowing for immediate choice,
 | |
| or the tree may be navigated and an item chosen or otherwise manipulated using
 | |
| the keys below.
 | |
| .Fl s
 | |
| starts with sessions collapsed and
 | |
| .Fl w
 | |
| with windows collapsed.
 | |
| .Fl Z
 | |
| zooms the pane.
 | |
| .Fl y
 | |
| disables any confirmation prompts.
 | |
| 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 "Expand selected item"
 | |
| .It Li "-" Ta "Collapse selected item"
 | |
| .It Li "M-+" Ta "Expand all items"
 | |
| .It Li "M--" Ta "Collapse all items"
 | |
| .It Li "x" Ta "Kill selected item"
 | |
| .It Li "X" Ta "Kill tagged items"
 | |
| .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 "m" Ta "Set the marked pane"
 | |
| .It Li "M" Ta "Clear the marked pane"
 | |
| .It Li "n" Ta "Repeat last search forwards"
 | |
| .It Li "N" Ta "Repeat last search backwards"
 | |
| .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 "H" Ta "Jump to the starting pane"
 | |
| .It Li "O" Ta "Change sort field"
 | |
| .It Li "r" Ta "Reverse sort order"
 | |
| .It Li "v" Ta "Toggle preview"
 | |
| .It Li "q" Ta "Exit mode"
 | |
| .El
 | |
| .Pp
 | |
| After a session, window or pane is chosen, the first instance of
 | |
| .Ql %%
 | |
| and all instances of
 | |
| .Ql %1
 | |
| are replaced by the target in
 | |
| .Ar template
 | |
| and the result executed as a command.
 | |
| If
 | |
| .Ar template
 | |
| is not given, "switch-client -t \[aq]%%\[aq]" is used.
 | |
| .Pp
 | |
| .Fl O
 | |
| specifies the initial sort field: one of
 | |
| .Ql index ,
 | |
| .Ql name ,
 | |
| or
 | |
| .Ql time
 | |
| (activity).
 | |
| .Fl r
 | |
| reverses the sort order.
 | |
| .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 and
 | |
| .Fl K
 | |
| a format for each shortcut key; both are evaluated once for each line.
 | |
| .Fl N
 | |
| starts without the preview or if given twice with the larger 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 customize-mode
 | |
| .Op Fl NZ
 | |
| .Op Fl F Ar format
 | |
| .Op Fl f Ar filter
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Ar template
 | |
| .Xc
 | |
| Put a pane into customize mode, where options and key bindings may be browsed
 | |
| and modified from a list.
 | |
| Option values in the list are shown for the active pane in the current window.
 | |
| .Fl Z
 | |
| zooms the pane.
 | |
| The following keys may be used in customize mode:
 | |
| .Bl -column "Key" "Function" -offset indent
 | |
| .It Sy "Key" Ta Sy "Function"
 | |
| .It Li "Enter" Ta "Set pane, window, session or global option value"
 | |
| .It Li "Up" Ta "Select previous item"
 | |
| .It Li "Down" Ta "Select next item"
 | |
| .It Li "+" Ta "Expand selected item"
 | |
| .It Li "-" Ta "Collapse selected item"
 | |
| .It Li "M-+" Ta "Expand all items"
 | |
| .It Li "M--" Ta "Collapse all items"
 | |
| .It Li "s" Ta "Set option value or key attribute"
 | |
| .It Li "S" Ta "Set global option value"
 | |
| .It Li "w" Ta "Set window option value, if option is for pane and window"
 | |
| .It Li "d" Ta "Set an option or key to the default"
 | |
| .It Li "D" Ta "Set tagged options and tagged keys to the default"
 | |
| .It Li "u" Ta "Unset an option (set to default value if global) or unbind a key"
 | |
| .It Li "U" Ta "Unset tagged options and unbind tagged keys"
 | |
| .It Li "C-s" Ta "Search by name"
 | |
| .It Li "n" Ta "Repeat last search forwards"
 | |
| .It Li "N" Ta "Repeat last search backwards"
 | |
| .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 "f" Ta "Enter a format to filter items"
 | |
| .It Li "v" Ta "Toggle option information"
 | |
| .It Li "q" Ta "Exit mode"
 | |
| .El
 | |
| .Pp
 | |
| .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 option information.
 | |
| This command works only if at least one client is attached.
 | |
| .It Xo
 | |
| .Tg displayp
 | |
| .Ic display-panes
 | |
| .Op Fl bN
 | |
| .Op Fl d Ar duration
 | |
| .Op Fl t Ar target-client
 | |
| .Op Ar template
 | |
| .Xc
 | |
| .D1 Pq 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 (unless
 | |
| .Fl N
 | |
| is given) 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 \[aq]%%\[aq]".
 | |
| With
 | |
| .Fl b ,
 | |
| other commands are not blocked from running until the indicator is closed.
 | |
| .Tg findw
 | |
| .It Xo Ic find-window
 | |
| .Op Fl iCNrTZ
 | |
| .Op Fl t Ar target-pane
 | |
| .Ar match-string
 | |
| .Xc
 | |
| .D1 Pq alias: Ic findw
 | |
| Search for a
 | |
| .Xr glob 7
 | |
| pattern or, with
 | |
| .Fl r ,
 | |
| regular expression
 | |
| .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.
 | |
| .Fl i
 | |
| makes the search ignore case.
 | |
| The default is
 | |
| .Fl CNT .
 | |
| .Fl Z
 | |
| zooms the pane.
 | |
| .Pp
 | |
| This command works only if at least one client is attached.
 | |
| .Tg joinp
 | |
| .It Xo Ic join-pane
 | |
| .Op Fl bdfhv
 | |
| .Op Fl l Ar size
 | |
| .Op Fl s Ar src-pane
 | |
| .Op Fl t Ar dst-pane
 | |
| .Xc
 | |
| .D1 Pq 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.
 | |
| .Tg killp
 | |
| .It Xo Ic kill-pane
 | |
| .Op Fl a
 | |
| .Op Fl t Ar target-pane
 | |
| .Xc
 | |
| .D1 Pq 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 .
 | |
| .Tg killw
 | |
| .It Xo Ic kill-window
 | |
| .Op Fl a
 | |
| .Op Fl t Ar target-window
 | |
| .Xc
 | |
| .D1 Pq 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 .
 | |
| .Tg lastp
 | |
| .It Xo Ic last-pane
 | |
| .Op Fl deZ
 | |
| .Op Fl t Ar target-window
 | |
| .Xc
 | |
| .D1 Pq alias: Ic lastp
 | |
| Select the last (previously selected) pane.
 | |
| .Fl Z
 | |
| keeps the window zoomed if it was zoomed.
 | |
| .Fl e
 | |
| enables or
 | |
| .Fl d
 | |
| disables input to the pane.
 | |
| .Tg last
 | |
| .It Ic last-window Op Fl t Ar target-session
 | |
| .D1 Pq alias: Ic last
 | |
| Select the last (previously selected) window.
 | |
| If no
 | |
| .Ar target-session
 | |
| is specified, select the last window of the current session.
 | |
| .Tg link
 | |
| .It Xo Ic link-window
 | |
| .Op Fl abdk
 | |
| .Op Fl s Ar src-window
 | |
| .Op Fl t Ar dst-window
 | |
| .Xc
 | |
| .D1 Pq 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
 | |
| or
 | |
| .Fl b
 | |
| the window is moved to the next index after or before
 | |
| .Ar dst-window
 | |
| (existing 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.
 | |
| .Tg lsp
 | |
| .It Xo Ic list-panes
 | |
| .Op Fl as
 | |
| .Op Fl F Ar format
 | |
| .Op Fl f Ar filter
 | |
| .Op Fl t Ar target
 | |
| .Xc
 | |
| .D1 Pq 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).
 | |
| .Fl F
 | |
| specifies the format of each line and
 | |
| .Fl f
 | |
| a filter.
 | |
| Only panes for which the filter is true are shown.
 | |
| See the
 | |
| .Sx FORMATS
 | |
| section.
 | |
| .Tg lsw
 | |
| .It Xo Ic list-windows
 | |
| .Op Fl a
 | |
| .Op Fl F Ar format
 | |
| .Op Fl f Ar filter
 | |
| .Op Fl t Ar target-session
 | |
| .Xc
 | |
| .D1 Pq 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 .
 | |
| .Fl F
 | |
| specifies the format of each line and
 | |
| .Fl f
 | |
| a filter.
 | |
| Only windows for which the filter is true are shown.
 | |
| See the
 | |
| .Sx FORMATS
 | |
| section.
 | |
| .Tg movep
 | |
| .It Xo Ic move-pane
 | |
| .Op Fl bdfhv
 | |
| .Op Fl l Ar size
 | |
| .Op Fl s Ar src-pane
 | |
| .Op Fl t Ar dst-pane
 | |
| .Xc
 | |
| .D1 Pq alias: Ic movep
 | |
| Does the same as
 | |
| .Ic join-pane .
 | |
| .Tg movew
 | |
| .It Xo Ic move-window
 | |
| .Op Fl abrdk
 | |
| .Op Fl s Ar src-window
 | |
| .Op Fl t Ar dst-window
 | |
| .Xc
 | |
| .D1 Pq 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.
 | |
| .Tg neww
 | |
| .It Xo Ic new-window
 | |
| .Op Fl abdkPS
 | |
| .Op Fl c Ar start-directory
 | |
| .Op Fl e Ar environment
 | |
| .Op Fl F Ar format
 | |
| .Op Fl n Ar window-name
 | |
| .Op Fl t Ar target-window
 | |
| .Op Ar shell-command
 | |
| .Xc
 | |
| .D1 Pq alias: Ic neww
 | |
| Create a new window.
 | |
| With
 | |
| .Fl a
 | |
| or
 | |
| .Fl b ,
 | |
| the new window is inserted at the next index after or before 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.
 | |
| If
 | |
| .Fl S
 | |
| is given and a window named
 | |
| .Ar window-name
 | |
| already exists, it is selected (unless
 | |
| .Fl d
 | |
| is also given in which case the command does nothing).
 | |
| .Pp
 | |
| .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
 | |
| .Fl e
 | |
| takes the form
 | |
| .Ql VARIABLE=value
 | |
| and sets an environment variable for the newly created window; it may be
 | |
| specified multiple times.
 | |
| .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 or by the
 | |
| .Fl e
 | |
| option.
 | |
| .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 .
 | |
| .Tg nextl
 | |
| .It Ic next-layout Op Fl t Ar target-window
 | |
| .D1 Pq alias: Ic nextl
 | |
| Move a window to the next layout and rearrange the panes to fit.
 | |
| .Tg next
 | |
| .It Xo Ic next-window
 | |
| .Op Fl a
 | |
| .Op Fl t Ar target-session
 | |
| .Xc
 | |
| .D1 Pq alias: Ic next
 | |
| Move to the next window in the session.
 | |
| If
 | |
| .Fl a
 | |
| is used, move to the next window with an alert.
 | |
| .Tg pipep
 | |
| .It Xo Ic pipe-pane
 | |
| .Op Fl IOo
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Ar shell-command
 | |
| .Xc
 | |
| .D1 Pq alias: Ic pipep
 | |
| Pipe output sent by the program in
 | |
| .Ar target-pane
 | |
| to a shell command or vice versa.
 | |
| A pane may only be connected 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
 | |
| .Fl I
 | |
| and
 | |
| .Fl O
 | |
| specify which of the
 | |
| .Ar shell-command
 | |
| output streams are connected to the pane:
 | |
| with
 | |
| .Fl I
 | |
| stdout is connected (so anything
 | |
| .Ar shell-command
 | |
| prints is written to the pane as if it were typed);
 | |
| with
 | |
| .Fl O
 | |
| stdin is connected (so any output in the pane is piped to
 | |
| .Ar shell-command ) .
 | |
| Both may be used together and if neither are specified,
 | |
| .Fl O
 | |
| is used.
 | |
| .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 \[aq]cat >>\[ti]/output.#I-#P\[aq]
 | |
| .Ed
 | |
| .Tg prevl
 | |
| .It Xo Ic previous-layout
 | |
| .Op Fl t Ar target-window
 | |
| .Xc
 | |
| .D1 Pq alias: Ic prevl
 | |
| Move to the previous layout in the session.
 | |
| .Tg prev
 | |
| .It Xo Ic previous-window
 | |
| .Op Fl a
 | |
| .Op Fl t Ar target-session
 | |
| .Xc
 | |
| .D1 Pq alias: Ic prev
 | |
| Move to the previous window in the session.
 | |
| With
 | |
| .Fl a ,
 | |
| move to the previous window with an alert.
 | |
| .Tg renamew
 | |
| .It Xo Ic rename-window
 | |
| .Op Fl t Ar target-window
 | |
| .Ar new-name
 | |
| .Xc
 | |
| .D1 Pq alias: Ic renamew
 | |
| Rename the current window, or the window at
 | |
| .Ar target-window
 | |
| if specified, to
 | |
| .Ar new-name .
 | |
| .Tg resizep
 | |
| .It Xo Ic resize-pane
 | |
| .Op Fl DLMRTUZ
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Fl x Ar width
 | |
| .Op Fl y Ar height
 | |
| .Op Ar adjustment
 | |
| .Xc
 | |
| .D1 Pq 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 columns (the default is 1);
 | |
| .Fl x
 | |
| and
 | |
| .Fl y
 | |
| may be a given as a number of lines or columns or followed by
 | |
| .Ql %
 | |
| for a percentage of the window size (for example
 | |
| .Ql -x 10% ) .
 | |
| 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 ) .
 | |
| .Pp
 | |
| .Fl T
 | |
| trims all lines below the current cursor position and moves lines out of the
 | |
| history to replace them.
 | |
| .Tg resizew
 | |
| .It Xo Ic resize-window
 | |
| .Op Fl aADLRU
 | |
| .Op Fl t Ar target-window
 | |
| .Op Fl x Ar width
 | |
| .Op Fl y Ar height
 | |
| .Op Ar adjustment
 | |
| .Xc
 | |
| .D1 Pq alias: Ic resizew
 | |
| Resize a window, 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).
 | |
| .Fl A
 | |
| sets the size of the largest session containing the window;
 | |
| .Fl a
 | |
| the size of the smallest.
 | |
| This command will automatically set
 | |
| .Ic window-size
 | |
| to manual in the window options.
 | |
| .Tg respawnp
 | |
| .It Xo Ic respawn-pane
 | |
| .Op Fl k
 | |
| .Op Fl c Ar start-directory
 | |
| .Op Fl e Ar environment
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Ar shell-command
 | |
| .Xc
 | |
| .D1 Pq 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 or last respawned 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.
 | |
| The
 | |
| .Fl e
 | |
| option has the same meaning as for the
 | |
| .Ic new-window
 | |
| command.
 | |
| .Tg respawnw
 | |
| .It Xo Ic respawn-window
 | |
| .Op Fl k
 | |
| .Op Fl c Ar start-directory
 | |
| .Op Fl e Ar environment
 | |
| .Op Fl t Ar target-window
 | |
| .Op Ar shell-command
 | |
| .Xc
 | |
| .D1 Pq 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 or last respawned 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.
 | |
| The
 | |
| .Fl e
 | |
| option has the same meaning as for the
 | |
| .Ic new-window
 | |
| command.
 | |
| .Tg rotatew
 | |
| .It Xo Ic rotate-window
 | |
| .Op Fl DUZ
 | |
| .Op Fl t Ar target-window
 | |
| .Xc
 | |
| .D1 Pq alias: Ic rotatew
 | |
| Rotate the positions of the panes within a window, either upward (numerically
 | |
| lower) with
 | |
| .Fl U
 | |
| or downward (numerically higher).
 | |
| .Fl Z
 | |
| keeps the window zoomed if it was zoomed.
 | |
| .Tg selectl
 | |
| .It Xo Ic select-layout
 | |
| .Op Fl Enop
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Ar layout-name
 | |
| .Xc
 | |
| .D1 Pq 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.
 | |
| .Tg selectp
 | |
| .It Xo Ic select-pane
 | |
| .Op Fl DdeLlMmRUZ
 | |
| .Op Fl T Ar title
 | |
| .Op Fl t Ar target-pane
 | |
| .Xc
 | |
| .D1 Pq alias: Ic selectp
 | |
| Make pane
 | |
| .Ar target-pane
 | |
| the active pane in its window.
 | |
| 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 Z
 | |
| keeps the window zoomed if it was zoomed.
 | |
| .Fl l
 | |
| is the same as using the
 | |
| .Ic last-pane
 | |
| command.
 | |
| .Fl e
 | |
| enables or
 | |
| .Fl d
 | |
| disables input to the pane.
 | |
| .Fl T
 | |
| sets the pane title.
 | |
| .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 move-pane ,
 | |
| .Ic swap-pane
 | |
| and
 | |
| .Ic swap-window .
 | |
| .Tg selectw
 | |
| .It Xo Ic select-window
 | |
| .Op Fl lnpT
 | |
| .Op Fl t Ar target-window
 | |
| .Xc
 | |
| .D1 Pq 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 .
 | |
| .Tg splitw
 | |
| .It Xo Ic split-window
 | |
| .Op Fl bdfhIvPZ
 | |
| .Op Fl c Ar start-directory
 | |
| .Op Fl e Ar environment
 | |
| .Op Fl l Ar size
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Ar shell-command
 | |
| .Op Fl F Ar format
 | |
| .Xc
 | |
| .D1 Pq 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
 | |
| option specifies the size of the new pane in lines (for vertical split) or in
 | |
| columns (for horizontal split);
 | |
| .Ar size
 | |
| may be followed by
 | |
| .Ql %
 | |
| to specify a percentage of the available space.
 | |
| 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.
 | |
| .Fl Z
 | |
| zooms if the window is not zoomed, or keeps it zoomed if already zoomed.
 | |
| .Pp
 | |
| An empty
 | |
| .Ar shell-command
 | |
| (\[aq]\[aq]) will create a pane with no command running in it.
 | |
| Output can be sent to such a pane with the
 | |
| .Ic display-message
 | |
| command.
 | |
| The
 | |
| .Fl I
 | |
| flag (if
 | |
| .Ar shell-command
 | |
| is not specified or empty)
 | |
| will create an empty pane and forward any output from stdin to it.
 | |
| For example:
 | |
| .Bd -literal -offset indent
 | |
| $ make 2>&1|tmux splitw -dI &
 | |
| .Ed
 | |
| .Pp
 | |
| All other options have the same meaning as for the
 | |
| .Ic new-window
 | |
| command.
 | |
| .Tg swapp
 | |
| .It Xo Ic swap-pane
 | |
| .Op Fl dDUZ
 | |
| .Op Fl s Ar src-pane
 | |
| .Op Fl t Ar dst-pane
 | |
| .Xc
 | |
| .D1 Pq 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 and
 | |
| .Fl Z
 | |
| keeps the window zoomed if it was zoomed.
 | |
| .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.
 | |
| .Tg swapw
 | |
| .It Xo Ic swap-window
 | |
| .Op Fl d
 | |
| .Op Fl s Ar src-window
 | |
| .Op Fl t Ar dst-window
 | |
| .Xc
 | |
| .D1 Pq 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 .
 | |
| If
 | |
| .Fl d
 | |
| is given, the new window does not become the current window.
 | |
| .Pp
 | |
| 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.
 | |
| .Tg unlinkw
 | |
| .It Xo Ic unlink-window
 | |
| .Op Fl k
 | |
| .Op Fl t Ar target-window
 | |
| .Xc
 | |
| .D1 Pq 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 ^ ,
 | |
| Shift keys with
 | |
| .Ql S-
 | |
| 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 \[aq]
 | |
| keys, quotation marks are necessary, for example:
 | |
| .Bd -literal -offset indent
 | |
| bind-key \[aq]"\[aq] split-window
 | |
| bind-key "\[aq]" new-window
 | |
| .Ed
 | |
| .Pp
 | |
| A command bound to the
 | |
| .Em Any
 | |
| key will execute for all keys which do not have a more specific binding.
 | |
| .Pp
 | |
| Commands related to key bindings are as follows:
 | |
| .Bl -tag -width Ds
 | |
| .Tg bind
 | |
| .It Xo Ic bind-key
 | |
| .Op Fl nr
 | |
| .Op Fl N Ar note
 | |
| .Op Fl T Ar key-table
 | |
| .Ar key command Op Ar argument ...
 | |
| .Xc
 | |
| .D1 Pq 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 initial-repeat-time
 | |
| and
 | |
| .Ic repeat-time
 | |
| options.
 | |
| .Fl N
 | |
| attaches a note to the key (shown with
 | |
| .Ic list-keys
 | |
| .Fl N ) .
 | |
| .Pp
 | |
| To view the default bindings and possible commands, see the
 | |
| .Ic list-keys
 | |
| command.
 | |
| .Tg lsk
 | |
| .It Xo Ic list-keys
 | |
| .Op Fl 1aN
 | |
| .Op Fl P Ar prefix-string Fl T Ar key-table
 | |
| .Op Ar key
 | |
| .Xc
 | |
| .D1 Pq alias: Ic lsk
 | |
| List key bindings.
 | |
| There are two forms: the default lists keys as
 | |
| .Ic bind-key
 | |
| commands;
 | |
| .Fl N
 | |
| lists only keys with attached notes and shows only the key and note for each
 | |
| key.
 | |
| .Pp
 | |
| With the default form, all key tables are listed by default.
 | |
| .Fl T
 | |
| lists only keys in
 | |
| .Ar key-table .
 | |
| .Pp
 | |
| With the
 | |
| .Fl N
 | |
| form, only keys in the
 | |
| .Em root
 | |
| and
 | |
| .Em prefix
 | |
| key tables are listed by default;
 | |
| .Fl T
 | |
| also lists only keys in
 | |
| .Ar key-table .
 | |
| .Fl P
 | |
| specifies a prefix to print before each key and
 | |
| .Fl 1
 | |
| lists only the first matching key.
 | |
| .Fl a
 | |
| lists the command for keys that do not have a note rather than skipping them.
 | |
| .Tg send
 | |
| .It Xo Ic send-keys
 | |
| .Op Fl FHKlMRX
 | |
| .Op Fl c Ar target-client
 | |
| .Op Fl N Ar repeat-count
 | |
| .Op Fl t Ar target-pane
 | |
| .Ar key ...
 | |
| .Xc
 | |
| .D1 Pq alias: Ic send
 | |
| Send a key or keys to a window or client.
 | |
| 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.
 | |
| If
 | |
| .Fl K
 | |
| is given, keys are sent to
 | |
| .Ar target-client ,
 | |
| so they are looked up in the client's key table, rather than to
 | |
| .Ar target-pane .
 | |
| All arguments are sent sequentially from first to last.
 | |
| If no keys are given and the command is bound to a key, then that key is used.
 | |
| .Pp
 | |
| The
 | |
| .Fl l
 | |
| flag disables key name lookup and processes the keys as literal UTF-8
 | |
| characters.
 | |
| The
 | |
| .Fl H
 | |
| flag expects each key to be a hexadecimal number for an ASCII character.
 | |
| .Pp
 | |
| 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 and
 | |
| .Fl F
 | |
| expands formats in arguments where appropriate.
 | |
| .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.
 | |
| .Tg unbind
 | |
| .It Xo Ic unbind-key
 | |
| .Op Fl anq
 | |
| .Op Fl T Ar key-table
 | |
| .Ar key
 | |
| .Xc
 | |
| .D1 Pq 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.
 | |
| The
 | |
| .Fl q
 | |
| option prevents errors being returned.
 | |
| .El
 | |
| .Sh OPTIONS
 | |
| The appearance and behaviour of
 | |
| .Nm
 | |
| may be modified by changing the value of various options.
 | |
| There are four types of option:
 | |
| .Em server options ,
 | |
| .Em session options ,
 | |
| .Em window options ,
 | |
| and
 | |
| .Em pane options .
 | |
| .Pp
 | |
| The
 | |
| .Nm
 | |
| server has a set of global server options which do not apply to any particular
 | |
| window or session or pane.
 | |
| 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 a set of pane
 | |
| options to each pane.
 | |
| Pane options inherit from window options.
 | |
| This means any pane option may be set as a window option to apply the option to
 | |
| all panes in the window without the option set, for example these commands will
 | |
| set the background colour to red for all panes except pane 0:
 | |
| .Bd -literal -offset indent
 | |
| set -w window-style bg=red
 | |
| set -pt:.0 window-style bg=blue
 | |
| .Ed
 | |
| .Pp
 | |
| There is also a set of global window options from which any unset window or
 | |
| pane options are inherited.
 | |
| Window and pane options are altered with
 | |
| .Ic set-option
 | |
| .Fl w
 | |
| and
 | |
| .Fl p
 | |
| commands and displayed with
 | |
| .Ic show-option
 | |
| .Fl w
 | |
| and
 | |
| .Fl p .
 | |
| .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 set -wq @foo "abc123"
 | |
| $ tmux show -wv @foo
 | |
| abc123
 | |
| .Ed
 | |
| .Pp
 | |
| Commands which set options are as follows:
 | |
| .Bl -tag -width Ds
 | |
| .Tg set
 | |
| .It Xo Ic set-option
 | |
| .Op Fl aFgopqsuUw
 | |
| .Op Fl t Ar target-pane
 | |
| .Ar option Ar value
 | |
| .Xc
 | |
| .D1 Pq alias: Ic set
 | |
| Set a pane option with
 | |
| .Fl p ,
 | |
| a window option with
 | |
| .Fl w ,
 | |
| a server option with
 | |
| .Fl s ,
 | |
| otherwise a session option.
 | |
| If the option is not a user option,
 | |
| .Fl w
 | |
| or
 | |
| .Fl s
 | |
| may be unnecessary -
 | |
| .Nm
 | |
| will infer the type from the option name, assuming
 | |
| .Fl w
 | |
| for pane options.
 | |
| If
 | |
| .Fl g
 | |
| is given, the global session or window option is set.
 | |
| .Pp
 | |
| .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).
 | |
| .Fl U
 | |
| unsets an option (like
 | |
| .Fl u )
 | |
| but if the option is a pane option also unsets the option on any panes in the
 | |
| window.
 | |
| .Ar value
 | |
| depends on the option and may be a number, a string, or a flag (on, off, or
 | |
| omitted to toggle).
 | |
| .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.
 | |
| .Tg show
 | |
| .It Xo Ic show-options
 | |
| .Op Fl AgHpqsvw
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Ar option
 | |
| .Xc
 | |
| .D1 Pq alias: Ic show
 | |
| Show the pane options (or a single option if
 | |
| .Ar option
 | |
| is provided) with
 | |
| .Fl p ,
 | |
| the window options with
 | |
| .Fl w ,
 | |
| the server options with
 | |
| .Fl s ,
 | |
| otherwise the session options.
 | |
| If the option is not a user option,
 | |
| .Fl w
 | |
| or
 | |
| .Fl s
 | |
| may be unnecessary -
 | |
| .Nm
 | |
| will infer the type from the option name, assuming
 | |
| .Fl w
 | |
| for pane options.
 | |
| 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.
 | |
| .Fl H
 | |
| includes hooks (omitted by default).
 | |
| .Fl A
 | |
| includes options inherited from a parent set of options, such options are
 | |
| marked with an asterisk.
 | |
| .El
 | |
| .Pp
 | |
| Available server options are:
 | |
| .Bl -tag -width Ds
 | |
| .It Ic backspace Ar key
 | |
| Set the key sent by
 | |
| .Nm
 | |
| for backspace.
 | |
| .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=\[aq]resize-pane -Z\[aq]
 | |
| .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 codepoint-widths[] Ar string
 | |
| An array option allowing widths of Unicode codepoints to be overridden.
 | |
| Note the new width applies to all clients.
 | |
| Each entry is of the form
 | |
| .Em codepoint=width ,
 | |
| where codepoint may be a UTF-8 character or an identifier of the form
 | |
| .Ql U+number
 | |
| where the number is a hexadecimal number.
 | |
| .It Ic copy-command Ar shell-command
 | |
| Give the command to pipe to if the
 | |
| .Ic copy-pipe
 | |
| copy mode command is used without arguments.
 | |
| .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.
 | |
| .It Ic editor Ar shell-command
 | |
| Set the command used when
 | |
| .Nm
 | |
| runs an editor.
 | |
| .It Xo Ic exit-empty
 | |
| .Op Ic on | off
 | |
| .Xc
 | |
| If enabled (the default), the server will exit when there are no active
 | |
| sessions.
 | |
| .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 extended-keys
 | |
| .Op Ic on | off | always
 | |
| .Xc
 | |
| Controls how modified keys (keys pressed together with Control, Meta, or Shift)
 | |
| are reported.
 | |
| This is the equivalent of the
 | |
| .Ic modifyOtherKeys
 | |
| .Xr xterm 1
 | |
| resource.
 | |
| .Pp
 | |
| When set to
 | |
| .Ic on ,
 | |
| the program inside the pane can request one of two modes: mode 1 which changes
 | |
| the sequence for only keys which lack an existing well-known representation; or
 | |
| mode 2 which changes the sequence for all keys.
 | |
| When set to
 | |
| .Ic always ,
 | |
| modes 1 and 2 can still be requested by applications, but mode 1 will be forced
 | |
| instead of the standard mode.
 | |
| When set to
 | |
| .Ic off ,
 | |
| this feature is disabled and only standard keys are reported.
 | |
| .Pp
 | |
| .Nm
 | |
| will always request extended keys itself if the terminal supports them.
 | |
| See also the
 | |
| .Ic extkeys
 | |
| feature for the
 | |
| .Ic terminal-features
 | |
| option, the
 | |
| .Ic extended-keys-format
 | |
| option and the
 | |
| .Ic pane_key_mode
 | |
| variable.
 | |
| .It Xo Ic extended-keys-format
 | |
| .Op Ic csi-u | xterm
 | |
| .Xc
 | |
| Selects one of the two possible formats for reporting modified keys to
 | |
| applications.
 | |
| This is the equivalent of the
 | |
| .Ic formatOtherKeys
 | |
| .Xr xterm 1
 | |
| resource.
 | |
| For example, C-S-a will be reported as
 | |
| .Ql ^[[27;6;65~
 | |
| when set to
 | |
| .Ic xterm ,
 | |
| and as
 | |
| .Ql ^[[65;6u
 | |
| when set to
 | |
| .Ic csi-u .
 | |
| .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 input-buffer-size Ar bytes
 | |
| Maximum of bytes allowed to read in escape and control sequences.
 | |
| Once reached, the sequence will be discarded.
 | |
| .It Ic message-limit Ar number
 | |
| Set the number of error or information messages to save in the message log for
 | |
| each client.
 | |
| .It Ic prompt-history-limit Ar number
 | |
| Set the number of history items to save in the history file for each type of
 | |
| command prompt.
 | |
| .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-features[] Ar string
 | |
| Set terminal features for terminal types read from
 | |
| .Xr terminfo 5 .
 | |
| .Nm
 | |
| has a set of named terminal features.
 | |
| Each will apply appropriate changes to the
 | |
| .Xr terminfo 5
 | |
| entry in use.
 | |
| .Pp
 | |
| .Nm
 | |
| can detect features for a few common terminals; this option can be used to
 | |
| easily tell tmux about features supported by terminals it cannot detect.
 | |
| The
 | |
| .Ic terminal-overrides
 | |
| option allows individual
 | |
| .Xr terminfo 5
 | |
| capabilities to be set instead,
 | |
| .Ic terminal-features
 | |
| is intended for classes of functionality supported in a standard way but not
 | |
| reported by
 | |
| .Xr terminfo 5 .
 | |
| Care must be taken to configure this only with features the terminal actually
 | |
| supports.
 | |
| .Pp
 | |
| This is an array option where each entry is a colon-separated string made up
 | |
| of a terminal type pattern (matched using
 | |
| .Xr glob 7
 | |
| patterns) followed by a list of terminal features.
 | |
| The available features are:
 | |
| .Bl -tag -width Ds
 | |
| .It 256
 | |
| Supports 256 colours with the SGR escape sequences.
 | |
| .It clipboard
 | |
| Allows setting the system clipboard.
 | |
| .It ccolour
 | |
| Allows setting the cursor colour.
 | |
| .It cstyle
 | |
| Allows setting the cursor style.
 | |
| .It extkeys
 | |
| Supports extended keys.
 | |
| .It focus
 | |
| Supports focus reporting.
 | |
| .It hyperlinks
 | |
| Supports OSC 8 hyperlinks.
 | |
| .It ignorefkeys
 | |
| Ignore function keys from
 | |
| .Xr terminfo 5
 | |
| and use the
 | |
| .Nm
 | |
| internal set only.
 | |
| .It margins
 | |
| Supports DECSLRM margins.
 | |
| .It mouse
 | |
| Supports
 | |
| .Xr xterm 1
 | |
| mouse sequences.
 | |
| .It osc7
 | |
| Supports the OSC 7 working directory extension.
 | |
| .It overline
 | |
| Supports the overline SGR attribute.
 | |
| .It rectfill
 | |
| Supports the DECFRA rectangle fill escape sequence.
 | |
| .It RGB
 | |
| Supports RGB colour with the SGR escape sequences.
 | |
| .It sixel
 | |
| Supports SIXEL graphics.
 | |
| .It strikethrough
 | |
| Supports the strikethrough SGR escape sequence.
 | |
| .It sync
 | |
| Supports synchronized updates.
 | |
| .It title
 | |
| Supports
 | |
| .Xr xterm 1
 | |
| title setting.
 | |
| .It usstyle
 | |
| Allows underscore style and colour to be set.
 | |
| .El
 | |
| .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 glob 7
 | |
| patterns)
 | |
| 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.
 | |
| .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\[ti]"
 | |
| bind User0 resize-pane -L 3
 | |
| .Ed
 | |
| .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 Ic default-size Ar XxY
 | |
| Set the default size of new windows when the
 | |
| .Ic window-size
 | |
| option is set to manual or when a session is created with
 | |
| .Ic new-session
 | |
| .Fl d .
 | |
| The value is the width and height separated by an
 | |
| .Ql x
 | |
| character.
 | |
| The default is 80x24.
 | |
| .It Xo Ic destroy-unattached
 | |
| .Op Ic off | on | keep-last | keep-group
 | |
| .Xc
 | |
| If
 | |
| .Ic on ,
 | |
| destroy the session after the last client has detached.
 | |
| If
 | |
| .Ic off
 | |
| (the default), leave the session orphaned.
 | |
| If
 | |
| .Ic keep-last ,
 | |
| destroy the session only if it is in a group and has other sessions in that
 | |
| group.
 | |
| If
 | |
| .Ic keep-group ,
 | |
| destroy the session unless it is in a group and is the only session in that
 | |
| group.
 | |
| .It Xo Ic detach-on-destroy
 | |
| .Op Ic off | on | no-detached | previous | next
 | |
| .Xc
 | |
| If
 | |
| .Ic on
 | |
| (the default), the client is detached when the session it is attached to
 | |
| is destroyed.
 | |
| If
 | |
| .Ic off ,
 | |
| the client is switched to the most recently active of the remaining
 | |
| sessions.
 | |
| If
 | |
| .Ic no-detached ,
 | |
| the client is detached only if there are no detached sessions; if detached
 | |
| sessions exist, the client is switched to the most recently active.
 | |
| If
 | |
| .Ic previous
 | |
| or
 | |
| .Ic next ,
 | |
| the client is switched to the previous or next session in alphabetical order.
 | |
| .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 initial-repeat-time Ar time
 | |
| Set the time in milliseconds for the initial repeat when a key is bound with the
 | |
| .Fl r
 | |
| flag.
 | |
| This allows multiple commands to be entered without pressing the prefix key
 | |
| again.
 | |
| See also the
 | |
| .Ic repeat-time
 | |
| option.
 | |
| If
 | |
| .Ic initial-repeat-time
 | |
| is zero,
 | |
| .Ic repeat-time
 | |
| is used for the first key press.
 | |
| .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 menu-style Ar style
 | |
| Set the menu style.
 | |
| See the
 | |
| .Sx STYLES
 | |
| section on how to specify
 | |
| .Ar style .
 | |
| .It Ic menu-selected-style Ar style
 | |
| Set the selected menu item style.
 | |
| See the
 | |
| .Sx STYLES
 | |
| section on how to specify
 | |
| .Ar style .
 | |
| .It Ic menu-border-style Ar style
 | |
| Set the menu border style.
 | |
| See the
 | |
| .Sx STYLES
 | |
| section on how to specify
 | |
| .Ar style .
 | |
| .It Ic menu-border-lines Ar type
 | |
| Set the type of characters used for drawing menu borders.
 | |
| See
 | |
| .Ic popup-border-lines
 | |
| for possible values for
 | |
| .Ar border-lines .
 | |
| .It Ic message-command-style Ar style
 | |
| Set status line message command style.
 | |
| This is used for the command prompt with
 | |
| .Xr vi 1
 | |
| keys when in command mode.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .It Xo Ic message-line
 | |
| .Op Ic 0 | 1 | 2 | 3 | 4
 | |
| .Xc
 | |
| Set line on which status line messages and the command prompt are shown.
 | |
| .It Ic message-style Ar style
 | |
| Set status line message style.
 | |
| This is used for messages and for the command prompt.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .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 Ic prefix-timeout Ar time
 | |
| Set the time in milliseconds for which
 | |
| .Nm
 | |
| waits after
 | |
| .Ic prefix
 | |
| is input before dismissing it.
 | |
| Can be set to zero to disable any timeout.
 | |
| .It Ic prompt-cursor-colour Ar colour
 | |
| Set the colour of the cursor in the command prompt.
 | |
| .It Ic prompt-cursor-style Ar style
 | |
| Set the style of the cursor in the command prompt.
 | |
| See the
 | |
| .Ic cursor-style
 | |
| options for available styles.
 | |
| .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.
 | |
| See also the
 | |
| .Ic initial-repeat-time
 | |
| option.
 | |
| .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 client terminal 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 off | on | 2 | 3 | 4 | 5
 | |
| .Xc
 | |
| Show or hide the status line or specify its size.
 | |
| Using
 | |
| .Ic on
 | |
| gives a status line one row in height;
 | |
| .Ic 2 ,
 | |
| .Ic 3 ,
 | |
| .Ic 4
 | |
| or
 | |
| .Ic 5
 | |
| more rows.
 | |
| .It Ic status-format[] Ar format
 | |
| Specify the format to be used for each line of the status line.
 | |
| The default builds the top status line from the various individual status
 | |
| options below.
 | |
| .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 | absolute-centre
 | |
| .Xc
 | |
| Set the position of the window list in the status line: left, centre or right.
 | |
| centre puts the window list in the relative centre of the available free space;
 | |
| absolute-centre uses the centre of the entire horizontal space.
 | |
| .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 .
 | |
| Also see the
 | |
| .Sx FORMATS
 | |
| and
 | |
| .Sx STYLES
 | |
| sections.
 | |
| .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
 | |
| .Sx STYLES
 | |
| section.
 | |
| .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
 | |
| .Sx STYLES
 | |
| section.
 | |
| .It Ic status-style Ar style
 | |
| Set status line style.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .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 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.
 | |
| .El
 | |
| .Pp
 | |
| Available 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 or largest session
 | |
| (see the
 | |
| .Ic window-size
 | |
| option) for which it is the current window, rather than the session to
 | |
| which it is attached.
 | |
| The window may resize when the current window is changed on another
 | |
| session; this option is good for full-screen programs which support
 | |
| .Dv SIGWINCH
 | |
| and poor for interactive programs such as shells.
 | |
| .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-option -wg 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 fill-character Ar character
 | |
| Set the character used to fill areas of the terminal unused by a window.
 | |
| .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 ,
 | |
| .Ic main-horizontal-mirrored ,
 | |
| .Ic main-vertical ,
 | |
| or
 | |
| .Ic main-vertical-mirrored
 | |
| layouts.
 | |
| If suffixed by
 | |
| .Ql % ,
 | |
| this is a percentage of the window size.
 | |
| .Pp
 | |
| .It Ic copy-mode-match-style Ar style
 | |
| Set the style of search matches in copy mode.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .Pp
 | |
| .It Ic copy-mode-mark-style Ar style
 | |
| Set the style of the line containing the mark in copy mode.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .Pp
 | |
| .It Ic copy-mode-current-match-style Ar style
 | |
| Set the style of the current search match in copy mode.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .Pp
 | |
| .It Ic copy-mode-position-format Ar format
 | |
| Format of the position indicator in copy mode.
 | |
| .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 copy-mode-position-style Ar style
 | |
| Set the style of the position indicator in copy mode.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .Pp
 | |
| .It Ic copy-mode-selection-style Ar style
 | |
| Set the style of the selection in copy mode.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .Pp
 | |
| .It Ic mode-style Ar style
 | |
| Set window modes style.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .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
 | |
| and
 | |
| .Ic main-horizontal-mirrored
 | |
| layouts.
 | |
| 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.
 | |
| If suffixed by
 | |
| .Ql % ,
 | |
| this is a percentage of the window size.
 | |
| .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
 | |
| and
 | |
| .Ic main-vertical-mirrored
 | |
| layouts.
 | |
| .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
 | |
| .Sx STYLES
 | |
| section.
 | |
| 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-indicators
 | |
| .Op Ic off | colour | arrows | both
 | |
| .Xc
 | |
| Indicate active pane by colouring only half of the border in windows with
 | |
| exactly two panes, by displaying arrow markers, by drawing both or neither.
 | |
| .Pp
 | |
| .It Ic pane-border-lines Ar type
 | |
| Set the type of characters used for drawing pane borders.
 | |
| .Ar type
 | |
| may be one of:
 | |
| .Bl -tag -width Ds
 | |
| .It single
 | |
| single lines using ACS or UTF-8 characters
 | |
| .It double
 | |
| double lines using UTF-8 characters
 | |
| .It heavy
 | |
| heavy lines using UTF-8 characters
 | |
| .It simple
 | |
| simple ASCII characters
 | |
| .It number
 | |
| the pane number
 | |
| .El
 | |
| .Pp
 | |
| .Ql double
 | |
| and
 | |
| .Ql heavy
 | |
| will fall back to standard ACS line drawing when UTF-8 is not supported.
 | |
| .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
 | |
| .Sx STYLES
 | |
| section.
 | |
| Attributes are ignored.
 | |
| .Pp
 | |
| .It Ic popup-style Ar style
 | |
| Set the popup style.
 | |
| See the
 | |
| .Sx STYLES
 | |
| section on how to specify
 | |
| .Ar style .
 | |
| Attributes are ignored.
 | |
| .Pp
 | |
| .It Ic popup-border-style Ar style
 | |
| Set the popup border style.
 | |
| See the
 | |
| .Sx STYLES
 | |
| section on how to specify
 | |
| .Ar style .
 | |
| Attributes are ignored.
 | |
| .Pp
 | |
| .It Ic popup-border-lines Ar type
 | |
| Set the type of characters used for drawing popup borders.
 | |
| .Ar type
 | |
| may be one of:
 | |
| .Bl -tag -width Ds
 | |
| .It single
 | |
| single lines using ACS or UTF-8 characters (default)
 | |
| .It rounded
 | |
| variation of single with rounded corners using UTF-8 characters
 | |
| .It double
 | |
| double lines using UTF-8 characters
 | |
| .It heavy
 | |
| heavy lines using UTF-8 characters
 | |
| .It simple
 | |
| simple ASCII characters
 | |
| .It padded
 | |
| simple ASCII space character
 | |
| .It none
 | |
| no border
 | |
| .El
 | |
| .Pp
 | |
| .Ql double
 | |
| and
 | |
| .Ql heavy
 | |
| will fall back to standard ACS line drawing when UTF-8 is not supported.
 | |
| .Pp
 | |
| .It Xo Ic pane-scrollbars
 | |
| .Op Ic off | modal | on
 | |
| .Xc
 | |
| When enabled, a character based scrollbar appears on the left or right
 | |
| of each pane.
 | |
| A filled section of the scrollbar, known as the
 | |
| .Ql slider ,
 | |
| represents the position and size of the visible part of the pane content.
 | |
| .Pp
 | |
| If set to
 | |
| .Ic on
 | |
| the scrollbar is visible all the time.
 | |
| If set to
 | |
| .Ic modal
 | |
| the scrollbar only appears when the pane is in copy mode or view mode.
 | |
| When the scrollbar is visible, the pane is narrowed by the width of the
 | |
| scrollbar and the text in the pane is reflowed.
 | |
| If set to
 | |
| .Ic modal ,
 | |
| the pane is narrowed only when the scrollbar is visible.
 | |
| .Pp
 | |
| See also
 | |
| .Ic pane-scrollbars-style .
 | |
| .Pp
 | |
| .It Ic pane-scrollbars-style Ar style
 | |
| Set the scrollbars style.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| The foreground colour is used for the slider, the background for the rest of the
 | |
| scrollbar.
 | |
| The
 | |
| .Ar width
 | |
| attribute sets the width of the scrollbar and the
 | |
| .Ar pad
 | |
| attribute the padding between the scrollbar and the pane.
 | |
| Other attributes are ignored.
 | |
| .Pp
 | |
| .It Xo Ic pane-scrollbars-position
 | |
| .Op Ic left | right
 | |
| .Xc
 | |
| Sets which side of the pane to display pane scrollbars on.
 | |
| .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
 | |
| .Sx STYLES
 | |
| section.
 | |
| .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
 | |
| .Sx STYLES
 | |
| section.
 | |
| .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
 | |
| .Sx STYLES
 | |
| section.
 | |
| .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
 | |
| .Sx FORMATS
 | |
| and
 | |
| .Sx STYLES
 | |
| sections.
 | |
| .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
 | |
| .Sx STYLES
 | |
| section.
 | |
| .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
 | |
| .Sx STYLES
 | |
| section.
 | |
| .Pp
 | |
| .It Xo Ic window-size
 | |
| .Ar largest | Ar smallest | Ar manual | Ar latest
 | |
| .Xc
 | |
| Configure how
 | |
| .Nm
 | |
| determines the window size.
 | |
| If set to
 | |
| .Ar largest ,
 | |
| the size of the largest attached session is used; if
 | |
| .Ar smallest ,
 | |
| the size of the smallest.
 | |
| If
 | |
| .Ar manual ,
 | |
| the size of a new window is set from the
 | |
| .Ic default-size
 | |
| option and windows are resized automatically.
 | |
| With
 | |
| .Ar latest ,
 | |
| .Nm
 | |
| uses the size of the client that had the most recent activity.
 | |
| See also the
 | |
| .Ic resize-window
 | |
| command and the
 | |
| .Ic aggressive-resize
 | |
| 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.
 | |
| .El
 | |
| .Pp
 | |
| Available pane options are:
 | |
| .Pp
 | |
| .Bl -tag -width Ds -compact
 | |
| .It Xo Ic allow-passthrough
 | |
| .Op Ic on | off | all
 | |
| .Xc
 | |
| Allow programs in the pane to bypass
 | |
| .Nm
 | |
| using a terminal escape sequence (\eePtmux;...\ee\e\e).
 | |
| If set to
 | |
| .Ic on ,
 | |
| passthrough sequences will be allowed only if the pane is visible.
 | |
| If set to
 | |
| .Ic all ,
 | |
| they will be allowed even if the pane is invisible.
 | |
| .Pp
 | |
| .It Xo Ic allow-rename
 | |
| .Op Ic on | off
 | |
| .Xc
 | |
| Allow programs in the pane to change the window name using a terminal escape
 | |
| sequence (\eek...\ee\e\e).
 | |
| .Pp
 | |
| .It Xo Ic allow-set-title
 | |
| .Op Ic on | off
 | |
| .Xc
 | |
| Allow programs in the pane to change the title using the terminal escape
 | |
| sequences (\ee]2;...\ee\e\e or \ee]0;...\ee\e\e).
 | |
| .Pp
 | |
| .It Xo Ic alternate-screen
 | |
| .Op Ic on | off
 | |
| .Xc
 | |
| This option configures whether programs running inside the pane 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.
 | |
| .Pp
 | |
| .It Ic cursor-colour Ar colour
 | |
| Set the colour of the cursor.
 | |
| .Pp
 | |
| .It Ic cursor-style Ar style
 | |
| Set the style of the cursor.
 | |
| Available styles are:
 | |
| .Ic default ,
 | |
| .Ic blinking-block ,
 | |
| .Ic block ,
 | |
| .Ic blinking-underline ,
 | |
| .Ic underline ,
 | |
| .Ic blinking-bar ,
 | |
| .Ic bar .
 | |
| .Pp
 | |
| .It Ic pane-colours[] Ar colour
 | |
| The default colour palette.
 | |
| Each entry in the array defines the colour
 | |
| .Nm
 | |
| uses when the colour with that index is requested.
 | |
| The index may be from zero to 255.
 | |
| .Pp
 | |
| .It Xo Ic remain-on-exit
 | |
| .Op Ic on | off | failed
 | |
| .Xc
 | |
| A pane with this flag set is not destroyed when the program running in it
 | |
| exits.
 | |
| If set to
 | |
| .Ic failed ,
 | |
| then only when the program exit status is not zero.
 | |
| The pane may be reactivated with the
 | |
| .Ic respawn-pane
 | |
| command.
 | |
| .Pp
 | |
| .It Ic remain-on-exit-format Ar string
 | |
| Set the text shown at the bottom of exited panes when
 | |
| .Ic remain-on-exit
 | |
| is enabled.
 | |
| .Pp
 | |
| .It Xo Ic scroll-on-clear
 | |
| .Op Ic on | off
 | |
| .Xc
 | |
| When the entire screen is cleared and this option is on, scroll the contents of
 | |
| the screen into history before clearing it.
 | |
| .Pp
 | |
| .It Xo Ic synchronize-panes
 | |
| .Op Ic on | off
 | |
| .Xc
 | |
| Duplicate input to all other panes in the same window where this option is also
 | |
| on (only for panes that are not in any mode).
 | |
| .Pp
 | |
| .It Ic window-active-style Ar style
 | |
| Set the pane style when it is the active pane.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .Pp
 | |
| .It Ic window-style Ar style
 | |
| Set the pane style.
 | |
| For how to specify
 | |
| .Ar style ,
 | |
| see the
 | |
| .Sx STYLES
 | |
| section.
 | |
| .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
 | |
| Hooks are stored as array options, members of the array are executed in
 | |
| order when the hook is triggered.
 | |
| Like options different hooks may be global or belong to a session, window or
 | |
| pane.
 | |
| Hooks may be configured with the
 | |
| .Ic set-hook
 | |
| or
 | |
| .Ic set-option
 | |
| commands and displayed with
 | |
| .Ic show-hooks
 | |
| or
 | |
| .Ic show-options
 | |
| .Fl H .
 | |
| The following two commands are equivalent:
 | |
| .Bd -literal -offset indent.
 | |
| set-hook -g pane-mode-changed[42] \[aq]set -g status-left-style bg=red\[aq]
 | |
| set-option -g pane-mode-changed[42] \[aq]set -g status-left-style bg=red\[aq]
 | |
| .Ed
 | |
| .Pp
 | |
| Setting a hook without specifying an array index clears the hook and sets the
 | |
| first member of the array.
 | |
| .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 -g after-split-window "selectl even-vertical"
 | |
| .Ed
 | |
| .Pp
 | |
| If a command fails, the
 | |
| .Ql command-error
 | |
| hook will be fired.
 | |
| For example, this could be used to write to a log file:
 | |
| .Bd -literal -offset indent
 | |
| set-hook -g command-error "run-shell \\"echo 'a tmux command failed' >>/tmp/log\\""
 | |
| .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-active
 | |
| Run when a client becomes the latest active client of its session.
 | |
| .It client-attached
 | |
| Run when a client is attached.
 | |
| .It client-detached
 | |
| Run when a client is detached
 | |
| .It client-focus-in
 | |
| Run when focus enters a client
 | |
| .It client-focus-out
 | |
| Run when focus exits a client
 | |
| .It client-resized
 | |
| Run when a client is resized.
 | |
| .It client-session-changed
 | |
| Run when a client's attached session is changed.
 | |
| .It command-error
 | |
| Run when a command fails.
 | |
| .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-focus-in
 | |
| Run when the focus enters a pane, if the
 | |
| .Ic focus-events
 | |
| option is on.
 | |
| .It pane-focus-out
 | |
| Run when the focus exits a pane, if the
 | |
| .Ic focus-events
 | |
| option is on.
 | |
| .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-layout-changed
 | |
| Run when a window layout is changed.
 | |
| .It window-linked
 | |
| Run when a window is linked into a session.
 | |
| .It window-renamed
 | |
| Run when a window is renamed.
 | |
| .It window-resized
 | |
| Run when a window is resized.
 | |
| This may be after the
 | |
| .Ar client-resized
 | |
| hook is run.
 | |
| .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 agpRuw
 | |
| .Op Fl t Ar target-pane
 | |
| .Ar hook-name
 | |
| .Ar command
 | |
| .Xc
 | |
| Without
 | |
| .Fl R ,
 | |
| sets (or with
 | |
| .Fl u
 | |
| unsets) hook
 | |
| .Ar hook-name
 | |
| to
 | |
| .Ar command .
 | |
| The flags are the same as for
 | |
| .Ic set-option .
 | |
| .Pp
 | |
| With
 | |
| .Fl R ,
 | |
| run
 | |
| .Ar hook-name
 | |
| immediately.
 | |
| .It Xo Ic show-hooks
 | |
| .Op Fl gpw
 | |
| .Op Fl t Ar target-pane
 | |
| .Xc
 | |
| Shows hooks.
 | |
| The flags are the same as for
 | |
| .Ic show-options .
 | |
| .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 the following:
 | |
| .Bl -column "XXXXXXXXXXXXX" -offset indent
 | |
| .It Li "Pane" Ta "the contents of a pane"
 | |
| .It Li "Border" Ta "a pane border"
 | |
| .It Li "Status" Ta "the status line window list"
 | |
| .It Li "StatusLeft" Ta "the left part of the status line"
 | |
| .It Li "StatusRight" Ta "the right part of the status line"
 | |
| .It Li "StatusDefault" Ta "any other part of the status line"
 | |
| .It Li "ScrollbarSlider" Ta "the scrollbar slider"
 | |
| .It Li "ScrollbarUp" Ta "above the scrollbar slider"
 | |
| .It Li "ScrollbarDown" Ta "below the scrollbar slider"
 | |
| .El
 | |
| .Pp
 | |
| 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 "SecondClick1" Ta "SecondClick2" Ta "SecondClick3"
 | |
| .It Li "DoubleClick1" Ta "DoubleClick2" Ta "DoubleClick3"
 | |
| .It Li "TripleClick1" Ta "TripleClick2" Ta "TripleClick3"
 | |
| .El
 | |
| .Pp
 | |
| The
 | |
| .Ql SecondClick
 | |
| events are fired for the second click of a double click, even if there may be a
 | |
| third click which will fire
 | |
| .Ql TripleClick
 | |
| instead of
 | |
| .Ql DoubleClick .
 | |
| .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.
 | |
| Format 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 ;
 | |
| .Ql ##
 | |
| is replaced by a single
 | |
| .Ql # ,
 | |
| .Ql #,
 | |
| by a
 | |
| .Ql \&,
 | |
| and
 | |
| .Ql #}
 | |
| by a
 | |
| .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.
 | |
| Conditionals can be nested arbitrarily.
 | |
| Inside a conditional,
 | |
| .Ql \&,
 | |
| and
 | |
| .Ql }
 | |
| must be escaped as
 | |
| .Ql #,
 | |
| and
 | |
| .Ql #} ,
 | |
| unless they are part of a
 | |
| .Ql #{...}
 | |
| replacement.
 | |
| For example:
 | |
| .Bd -literal -offset indent
 | |
| #{?pane_in_mode,#[fg=white#,bg=red],#[fg=red#,bg=white]}#W .
 | |
| .Ed
 | |
| .Pp
 | |
| String comparisons may be expressed by prefixing two comma-separated
 | |
| alternatives by
 | |
| .Ql == ,
 | |
| .Ql != ,
 | |
| .Ql < ,
 | |
| .Ql > ,
 | |
| .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 .
 | |
| .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}} .
 | |
| .Pp
 | |
| An
 | |
| .Ql m
 | |
| specifies a
 | |
| .Xr glob 7
 | |
| pattern or regular expression comparison.
 | |
| The first argument is the pattern and the second the string to compare.
 | |
| An optional argument specifies flags:
 | |
| .Ql r
 | |
| means the pattern is a regular expression instead of the default
 | |
| .Xr glob 7
 | |
| pattern, and
 | |
| .Ql i
 | |
| means to ignore case.
 | |
| For example:
 | |
| .Ql #{m:*foo*,#{host}}
 | |
| or
 | |
| .Ql #{m/ri:^A,MYVAR} .
 | |
| A
 | |
| .Ql C
 | |
| performs a search for a
 | |
| .Xr glob 7
 | |
| pattern or regular expression in the pane content and evaluates to zero if not
 | |
| found, or a line number if found.
 | |
| Like
 | |
| .Ql m ,
 | |
| an
 | |
| .Ql r
 | |
| flag means search for a regular expression and
 | |
| .Ql i
 | |
| ignores case.
 | |
| For example:
 | |
| .Ql #{C/r:^Start}
 | |
| .Pp
 | |
| Numeric operators may be performed by prefixing two comma-separated alternatives
 | |
| with an
 | |
| .Ql e
 | |
| and an operator.
 | |
| An optional
 | |
| .Ql f
 | |
| flag may be given after the operator to use floating point numbers, otherwise
 | |
| integers are used.
 | |
| This may be followed by a number giving the number of decimal places to use for
 | |
| the result.
 | |
| The available operators are:
 | |
| addition
 | |
| .Ql + ,
 | |
| subtraction
 | |
| .Ql - ,
 | |
| multiplication
 | |
| .Ql * ,
 | |
| division
 | |
| .Ql / ,
 | |
| modulus
 | |
| .Ql m
 | |
| or
 | |
| .Ql %
 | |
| (note that
 | |
| .Ql %
 | |
| must be escaped as
 | |
| .Ql %%
 | |
| in formats which are also expanded by
 | |
| .Xr strftime 3 )
 | |
| and numeric comparison operators
 | |
| .Ql == ,
 | |
| .Ql != ,
 | |
| .Ql < ,
 | |
| .Ql <= ,
 | |
| .Ql >
 | |
| and
 | |
| .Ql >= .
 | |
| For example,
 | |
| .Ql #{e|*|f|4:5.5,3}
 | |
| multiplies 5.5 by 3 for a result with four decimal places and
 | |
| .Ql #{e|%%:7,3}
 | |
| returns the modulus of 7 and 3.
 | |
| .Ql a
 | |
| replaces a numeric argument by its ASCII equivalent, so
 | |
| .Ql #{a:98}
 | |
| results in
 | |
| .Ql b .
 | |
| .Ql c
 | |
| replaces a
 | |
| .Nm
 | |
| colour by its six-digit hexadecimal RGB value.
 | |
| .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 five characters of the pane title, or
 | |
| .Ql #{=-5:pane_title}
 | |
| the last five characters.
 | |
| A suffix or prefix may be given as a second argument - if provided then it is
 | |
| appended or prepended to the string if the length has been trimmed, for example
 | |
| .Ql #{=/5/...:pane_title}
 | |
| will append
 | |
| .Ql ...
 | |
| if the pane title is more than five characters.
 | |
| Similarly,
 | |
| .Ql p
 | |
| pads the string to a given width, for example
 | |
| .Ql #{p10:pane_title}
 | |
| will result in a width of at least 10 characters.
 | |
| A positive width pads on the left, a negative on the right.
 | |
| .Ql n
 | |
| expands to the length of the variable and
 | |
| .Ql w
 | |
| to its width when displayed, for example
 | |
| .Ql #{n:window_name} .
 | |
| .Pp
 | |
| 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 .
 | |
| Adding
 | |
| .Ql p (
 | |
| .Ql `t/p` )
 | |
| will use shorter but less accurate time format for times in the past.
 | |
| A custom format may be given using an
 | |
| .Ql f
 | |
| suffix (note that
 | |
| .Ql %
 | |
| must be escaped as
 | |
| .Ql %%
 | |
| if the format is separately being passed through
 | |
| .Xr strftime 3 ,
 | |
| for example in the
 | |
| .Ic status-left
 | |
| option):
 | |
| .Ql #{t/f/%%H#:%%M:window_activity} ,
 | |
| see
 | |
| .Xr strftime 3 .
 | |
| .Pp
 | |
| The
 | |
| .Ql b:\&
 | |
| and
 | |
| .Ql d:\&
 | |
| prefixes are
 | |
| .Xr basename 3
 | |
| and
 | |
| .Xr dirname 3
 | |
| of the variable respectively.
 | |
| .Ql q:\&
 | |
| will escape
 | |
| .Xr sh 1
 | |
| special characters or with a
 | |
| .Ql h
 | |
| suffix, escape hash characters (so
 | |
| .Ql #
 | |
| becomes
 | |
| .Ql ## ) .
 | |
| .Ql E:\&
 | |
| will expand the format twice, for example
 | |
| .Ql #{E:status-left}
 | |
| is the result of expanding the content of the
 | |
| .Ic status-left
 | |
| option rather than the option itself.
 | |
| .Ql T:\&
 | |
| is like
 | |
| .Ql E:\&
 | |
| but also expands
 | |
| .Xr strftime 3
 | |
| specifiers.
 | |
| .Ql S:\& ,
 | |
| .Ql W:\& ,
 | |
| .Ql P:\&
 | |
| or
 | |
| .Ql L:\&
 | |
| will loop over each session, window, pane or client and insert the format once
 | |
| for each.
 | |
| For windows and panes, two comma-separated formats may be given:
 | |
| the second is used for the current window or active pane.
 | |
| For example, to get a list of windows formatted like the status line:
 | |
| .Bd -literal -offset indent
 | |
| #{W:#{E:window-status-format} ,#{E:window-status-current-format} }
 | |
| .Ed
 | |
| .Pp
 | |
| .Ql N:\&
 | |
| checks if a window (without any suffix or with the
 | |
| .Ql w
 | |
| suffix) or a session (with the
 | |
| .Ql s
 | |
| suffix) name exists, for example
 | |
| .Ql `N/w:foo`
 | |
| is replaced with 1 if a window named
 | |
| .Ql foo
 | |
| exists.
 | |
| .Pp
 | |
| A prefix of the form
 | |
| .Ql s/foo/bar/:\&
 | |
| will substitute
 | |
| .Ql foo
 | |
| with
 | |
| .Ql bar
 | |
| throughout.
 | |
| The first argument may be an extended regular expression and a final argument
 | |
| may be
 | |
| .Ql i
 | |
| to ignore case, for example
 | |
| .Ql s/a(.)/\e1x/i:\&
 | |
| would change
 | |
| .Ql abABab
 | |
| into
 | |
| .Ql bxBxbx .
 | |
| A different delimiter character may also be used, to avoid collisions with
 | |
| literal slashes in the pattern.
 | |
| For example,
 | |
| .Ql s|foo/|bar/|:\&
 | |
| will substitute
 | |
| .Ql foo/
 | |
| with
 | |
| .Ql bar/
 | |
| throughout.
 | |
| .Pp
 | |
| Multiple modifiers may be separated with a semicolon (;) as in
 | |
| .Ql #{T;=10:status-left} ,
 | |
| which limits the resulting
 | |
| .Xr strftime 3 -expanded
 | |
| string to at most 10 characters.
 | |
| .Pp
 | |
| In addition, the last 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 using
 | |
| .Pa /bin/sh
 | |
| and with the
 | |
| .Nm
 | |
| global environment set (see the
 | |
| .Sx GLOBAL AND SESSION ENVIRONMENT
 | |
| section).
 | |
| .Pp
 | |
| An
 | |
| .Ql l
 | |
| specifies that a string should be interpreted literally and not expanded.
 | |
| For example
 | |
| .Ql #{l:#{?pane_in_mode,yes,no}}
 | |
| will be replaced by
 | |
| .Ql #{?pane_in_mode,yes,no} .
 | |
| .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 "active_window_index" Ta "" Ta "Index of active window in session"
 | |
| .It Li "alternate_on" Ta "" Ta "1 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_cell_height" Ta "" Ta "Height of each client cell in pixels"
 | |
| .It Li "client_cell_width" Ta "" Ta "Width of each client cell in pixels"
 | |
| .It Li "client_control_mode" Ta "" Ta "1 if client is in control mode"
 | |
| .It Li "client_created" Ta "" Ta "Time client created"
 | |
| .It Li "client_discarded" Ta "" Ta "Bytes discarded when client behind"
 | |
| .It Li "client_flags" Ta "" Ta "List of client flags"
 | |
| .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 read-only"
 | |
| .It Li "client_session" Ta "" Ta "Name of the client's session"
 | |
| .It Li "client_termfeatures" Ta "" Ta "Terminal features of client, if any"
 | |
| .It Li "client_termname" Ta "" Ta "Terminal name of client"
 | |
| .It Li "client_termtype" Ta "" Ta "Terminal type of client, if available"
 | |
| .It Li "client_tty" Ta "" Ta "Pseudo terminal of client"
 | |
| .It Li "client_uid" Ta "" Ta "UID of client process"
 | |
| .It Li "client_user" Ta "" Ta "User of client process"
 | |
| .It Li "client_utf8" Ta "" Ta "1 if client supports UTF-8"
 | |
| .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_alias" Ta "" Ta "Command alias if listing commands"
 | |
| .It Li "command_list_name" Ta "" Ta "Command name if listing commands"
 | |
| .It Li "command_list_usage" Ta "" Ta "Command usage if listing commands"
 | |
| .It Li "config_files" Ta "" Ta "List of configuration files loaded"
 | |
| .It Li "copy_cursor_hyperlink" Ta "" Ta "Hyperlink under cursor in copy mode"
 | |
| .It Li "copy_cursor_line" Ta "" Ta "Line the cursor is on in copy mode"
 | |
| .It Li "copy_cursor_word" Ta "" Ta "Word under cursor in copy mode"
 | |
| .It Li "copy_cursor_x" Ta "" Ta "Cursor X position in copy mode"
 | |
| .It Li "copy_cursor_y" Ta "" Ta "Cursor Y position in copy mode"
 | |
| .It Li "current_file" Ta "" Ta "Current configuration file"
 | |
| .It Li "cursor_character" Ta "" Ta "Character at cursor in pane"
 | |
| .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_client" Ta "" Ta "Name of client where hook was run, 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 "last_window_index" Ta "" Ta "Index of last window in session"
 | |
| .It Li "line" Ta "" Ta "Line number in the list"
 | |
| .It Li "mouse_all_flag" Ta "" Ta "Pane mouse all flag"
 | |
| .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_hyperlink" Ta "" Ta "Hyperlink under mouse, if any"
 | |
| .It Li "mouse_line" Ta "" Ta "Line under mouse, if any"
 | |
| .It Li "mouse_sgr_flag" Ta "" Ta "Pane mouse SGR flag"
 | |
| .It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag"
 | |
| .It Li "mouse_status_line" Ta "" Ta "Status line on which mouse event took place"
 | |
| .It Li "mouse_status_range" Ta "" Ta "Range type or argument of mouse event on status line"
 | |
| .It Li "mouse_utf8_flag" Ta "" Ta "Pane mouse UTF-8 flag"
 | |
| .It Li "mouse_word" Ta "" Ta "Word under mouse, if any"
 | |
| .It Li "mouse_x" Ta "" Ta "Mouse X position, if any"
 | |
| .It Li "mouse_y" Ta "" Ta "Mouse Y position, if any"
 | |
| .It Li "next_session_id" Ta "" Ta "Unique session ID for next new session"
 | |
| .It Li "origin_flag" Ta "" Ta "Pane origin 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_bg" Ta "" Ta "Pane background colour"
 | |
| .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_signal" Ta "" Ta "Exit signal of process in dead pane"
 | |
| .It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane"
 | |
| .It Li "pane_dead_time" Ta "" Ta "Exit time of process in dead pane"
 | |
| .It Li "pane_fg" Ta "" Ta "Pane foreground colour"
 | |
| .It Li "pane_format" Ta "" Ta "1 if format is for a pane"
 | |
| .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 "1 if pane is in a mode"
 | |
| .It Li "pane_index" Ta "#P" Ta "Index of pane"
 | |
| .It Li "pane_input_off" Ta "" Ta "1 if input to pane is disabled"
 | |
| .It Li "pane_key_mode" Ta "" Ta "Extended key reporting mode in this pane"
 | |
| .It Li "pane_last" Ta "" Ta "1 if last pane"
 | |
| .It Li "pane_left" Ta "" Ta "Left of pane"
 | |
| .It Li "pane_marked" Ta "" Ta "1 if this is the marked pane"
 | |
| .It Li "pane_marked_set" Ta "" Ta "1 if a marked pane is set"
 | |
| .It Li "pane_mode" Ta "" Ta "Name of pane mode, if any"
 | |
| .It Li "pane_path" Ta "" Ta "Path of pane (can be set by application)"
 | |
| .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_start_path" Ta "" Ta "Path pane started with"
 | |
| .It Li "pane_synchronized" Ta "" Ta "1 if pane is synchronized"
 | |
| .It Li "pane_tabs" Ta "" Ta "Pane tab positions"
 | |
| .It Li "pane_title" Ta "#T" Ta "Title of pane (can be set by application)"
 | |
| .It Li "pane_top" Ta "" Ta "Top of pane"
 | |
| .It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane"
 | |
| .It Li "pane_unseen_changes" Ta "" Ta "1 if there were changes in pane while in mode"
 | |
| .It Li "pane_width" Ta "" Ta "Width of pane"
 | |
| .It Li "pid" Ta "" Ta "Server PID"
 | |
| .It Li "rectangle_toggle" Ta "" Ta "1 if rectangle selection is activated"
 | |
| .It Li "scroll_position" Ta "" Ta "Scroll position in copy mode"
 | |
| .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 "search_count" Ta "" Ta "Count of search results"
 | |
| .It Li "search_count_partial" Ta "" Ta "1 if search count is partial count"
 | |
| .It Li "search_match" Ta "" Ta "Search match if any"
 | |
| .It Li "search_present" Ta "" Ta "1 if search started in copy mode"
 | |
| .It Li "selection_active" Ta "" Ta "1 if selection started and changes with the cursor in copy mode"
 | |
| .It Li "selection_end_x" Ta "" Ta "X position of the end of the selection"
 | |
| .It Li "selection_end_y" Ta "" Ta "Y position of the end of the selection"
 | |
| .It Li "selection_present" Ta "" Ta "1 if selection started in copy mode"
 | |
| .It Li "selection_start_x" Ta "" Ta "X position of the start of the selection"
 | |
| .It Li "selection_start_y" Ta "" Ta "Y position of the start of the selection"
 | |
| .It Li "server_sessions" Ta "" Ta "Number of sessions"
 | |
| .It Li "session_activity" Ta "" Ta "Time of session last activity"
 | |
| .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_attached_list" Ta "" Ta "List of clients session is attached to"
 | |
| .It Li "session_created" Ta "" Ta "Time session created"
 | |
| .It Li "session_format" Ta "" Ta "1 if format is for a session"
 | |
| .It Li "session_group" Ta "" Ta "Name of session group"
 | |
| .It Li "session_group_attached" Ta "" Ta "Number of clients sessions in group are attached to"
 | |
| .It Li "session_group_attached_list" Ta "" Ta "List of clients sessions in group are attached to"
 | |
| .It Li "session_group_list" Ta "" Ta "List of sessions in group"
 | |
| .It Li "session_group_many_attached" Ta "" Ta "1 if multiple clients attached to sessions in group"
 | |
| .It Li "session_group_size" Ta "" Ta "Size of session group"
 | |
| .It Li "session_grouped" Ta "" Ta "1 if session in a group"
 | |
| .It Li "session_id" Ta "" Ta "Unique session ID"
 | |
| .It Li "session_last_attached" Ta "" Ta "Time session last attached"
 | |
| .It Li "session_many_attached" Ta "" Ta "1 if multiple clients attached"
 | |
| .It Li "session_marked" Ta "" Ta "1 if this session contains the marked pane"
 | |
| .It Li "session_name" Ta "#S" Ta "Name of session"
 | |
| .It Li "session_path" Ta "" Ta "Working directory of session"
 | |
| .It Li "session_stack" Ta "" Ta "Window indexes in most recent order"
 | |
| .It Li "session_windows" Ta "" Ta "Number of windows in session"
 | |
| .It Li "socket_path" Ta "" Ta "Server socket path"
 | |
| .It Li "sixel_support" Ta "" Ta "1 if server has support for SIXEL"
 | |
| .It Li "start_time" Ta "" Ta "Server start time"
 | |
| .It Li "uid" Ta "" Ta "Server UID"
 | |
| .It Li "user" Ta "" Ta "Server user"
 | |
| .It Li "version" Ta "" Ta "Server version"
 | |
| .It Li "window_active" Ta "" Ta "1 if window active"
 | |
| .It Li "window_active_clients" Ta "" Ta "Number of clients viewing this window"
 | |
| .It Li "window_active_clients_list" Ta "" Ta "List of clients viewing this window"
 | |
| .It Li "window_active_sessions" Ta "" Ta "Number of sessions on which this window is active"
 | |
| .It Li "window_active_sessions_list" Ta "" Ta "List of sessions on which this window is active"
 | |
| .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_bell_flag" Ta "" Ta "1 if window has bell"
 | |
| .It Li "window_bigger" Ta "" Ta "1 if window is larger than client"
 | |
| .It Li "window_cell_height" Ta "" Ta "Height of each cell in pixels"
 | |
| .It Li "window_cell_width" Ta "" Ta "Width of each cell in pixels"
 | |
| .It Li "window_end_flag" Ta "" Ta "1 if window has the highest index"
 | |
| .It Li "window_flags" Ta "#F" Ta "Window flags with # escaped as ##"
 | |
| .It Li "window_format" Ta "" Ta "1 if format is for a window"
 | |
| .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_linked_sessions" Ta "" Ta "Number of sessions this window is linked to"
 | |
| .It Li "window_linked_sessions_list" Ta "" Ta "List of sessions this window is linked to"
 | |
| .It Li "window_marked_flag" Ta "" Ta "1 if window contains the marked pane"
 | |
| .It Li "window_name" Ta "#W" Ta "Name of window"
 | |
| .It Li "window_offset_x" Ta "" Ta "X offset into window if larger than client"
 | |
| .It Li "window_offset_y" Ta "" Ta "Y offset into window if larger than client"
 | |
| .It Li "window_panes" Ta "" Ta "Number of panes in window"
 | |
| .It Li "window_raw_flags" Ta "" Ta "Window flags with nothing escaped"
 | |
| .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_start_flag" Ta "" Ta "1 if window has the lowest index"
 | |
| .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 STYLES
 | |
| .Nm
 | |
| offers various options to specify the colour and attributes of aspects of the
 | |
| interface, for example
 | |
| .Ic status-style
 | |
| for the status line.
 | |
| In addition, embedded styles may be specified in format options, such as
 | |
| .Ic status-left ,
 | |
| by enclosing them in
 | |
| .Ql #[
 | |
| and
 | |
| .Ql \&] .
 | |
| .Pp
 | |
| A style may be the single term
 | |
| .Ql default
 | |
| to specify the default style (which may come from an option, for example
 | |
| .Ic status-style
 | |
| in the status line) or a space
 | |
| or comma separated list of the following:
 | |
| .Bl -tag -width Ds
 | |
| .It Ic fg=colour
 | |
| Set the foreground colour.
 | |
| The colour is one of:
 | |
| .Ic black ,
 | |
| .Ic red ,
 | |
| .Ic green ,
 | |
| .Ic yellow ,
 | |
| .Ic blue ,
 | |
| .Ic magenta ,
 | |
| .Ic cyan ,
 | |
| .Ic white ;
 | |
| if supported the bright variants
 | |
| .Ic brightred ,
 | |
| .Ic brightgreen ,
 | |
| .Ic brightyellow ;
 | |
| .Ic colour0
 | |
| to
 | |
| .Ic colour255
 | |
| from the 256-colour set;
 | |
| .Ic default
 | |
| for the default colour;
 | |
| .Ic terminal
 | |
| for the terminal default colour; or a hexadecimal RGB string such as
 | |
| .Ql #ffffff .
 | |
| .It Ic bg=colour
 | |
| Set the background colour.
 | |
| .It Ic us=colour
 | |
| Set the underscore colour.
 | |
| .It Ic none
 | |
| Set no attributes (turn off any active attributes).
 | |
| .It Xo Ic acs ,
 | |
| .Ic bright
 | |
| (or
 | |
| .Ic bold ) ,
 | |
| .Ic dim ,
 | |
| .Ic underscore ,
 | |
| .Ic blink ,
 | |
| .Ic reverse ,
 | |
| .Ic hidden ,
 | |
| .Ic italics ,
 | |
| .Ic overline ,
 | |
| .Ic strikethrough ,
 | |
| .Ic double-underscore ,
 | |
| .Ic curly-underscore ,
 | |
| .Ic dotted-underscore ,
 | |
| .Ic dashed-underscore
 | |
| .Xc
 | |
| Set an attribute.
 | |
| Any of the attributes may be prefixed with
 | |
| .Ql no
 | |
| to unset.
 | |
| .Ic acs
 | |
| is the terminal alternate character set.
 | |
| .It Xo Ic align=left
 | |
| (or
 | |
| .Ic noalign ) ,
 | |
| .Ic align=centre ,
 | |
| .Ic align=right
 | |
| .Xc
 | |
| Align text to the left, centre or right of the available space if appropriate.
 | |
| .It Ic fill=colour
 | |
| Fill the available space with a background colour if appropriate.
 | |
| .It Xo Ic list=on ,
 | |
| .Ic list=focus ,
 | |
| .Ic list=left-marker ,
 | |
| .Ic list=right-marker ,
 | |
| .Ic nolist
 | |
| .Xc
 | |
| Mark the position of the various window list components in the
 | |
| .Ic status-format
 | |
| option:
 | |
| .Ic list=on
 | |
| marks the start of the list;
 | |
| .Ic list=focus
 | |
| is the part of the list that should be kept in focus if the entire list won't
 | |
| fit in the available space (typically the current window);
 | |
| .Ic list=left-marker
 | |
| and
 | |
| .Ic list=right-marker
 | |
| mark the text to be used to mark that text has been trimmed from the left or
 | |
| right of the list if there is not enough space.
 | |
| .It Xo Ic push-default ,
 | |
| .Ic pop-default
 | |
| .Xc
 | |
| Store the current colours and attributes as the default or reset to the previous
 | |
| default.
 | |
| A
 | |
| .Ic push-default
 | |
| affects any subsequent use of the
 | |
| .Ic default
 | |
| term until a
 | |
| .Ic pop-default .
 | |
| Only one default may be pushed (each
 | |
| .Ic push-default
 | |
| replaces the previous saved default).
 | |
| .It Xo Ic range=left ,
 | |
| .Ic range=right ,
 | |
| .Ic range=session|X ,
 | |
| .Ic range=window|X ,
 | |
| .Ic range=pane|X ,
 | |
| .Ic range=user|X ,
 | |
| .Ic norange
 | |
| .Xc
 | |
| Mark a range for mouse events in the
 | |
| .Ic status-format
 | |
| option.
 | |
| When a mouse event occurs in the
 | |
| .Ic range=left
 | |
| or
 | |
| .Ic range=right
 | |
| range, the
 | |
| .Ql StatusLeft
 | |
| and
 | |
| .Ql StatusRight
 | |
| key bindings are triggered.
 | |
| .Pp
 | |
| .Ic range=session|X ,
 | |
| .Ic range=window|X
 | |
| and
 | |
| .Ic range=pane|X
 | |
| are ranges for a session, window or pane.
 | |
| These trigger the
 | |
| .Ql Status
 | |
| mouse key with the target session, window or pane given by the
 | |
| .Ql X
 | |
| argument.
 | |
| .Ql X
 | |
| is a session ID, window index in the current session or a pane ID.
 | |
| For these, the
 | |
| .Ic mouse_status_range
 | |
| format variable will be set to
 | |
| .Ql session ,
 | |
| .Ql window
 | |
| or
 | |
| .Ql pane .
 | |
| .Pp
 | |
| .Ic range=user|X
 | |
| is a user-defined range; it triggers the
 | |
| .Ql Status
 | |
| mouse key.
 | |
| The argument
 | |
| .Ql X
 | |
| will be available in the
 | |
| .Ic mouse_status_range
 | |
| format variable.
 | |
| .Ql X
 | |
| must be at most 15 bytes in length.
 | |
| .El
 | |
| .Pp
 | |
| Examples are:
 | |
| .Bd -literal -offset indent
 | |
| fg=yellow bold underscore blink
 | |
| bg=black,fg=default,noreverse
 | |
| .Ed
 | |
| .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 (if the
 | |
| .Ic allow-rename
 | |
| option is turned on):
 | |
| .Bd -literal -offset indent
 | |
| $ printf \[aq]\e033kWINDOW_NAME\e033\e\e\[aq]
 | |
| .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 title setting escape sequence, for example:
 | |
| .Bd -literal -offset indent
 | |
| $ printf \[aq]\e033]2;My Title\e033\e\e\[aq]
 | |
| .Ed
 | |
| .Pp
 | |
| It can also be modified with the
 | |
| .Ic select-pane
 | |
| .Fl T
 | |
| command.
 | |
| .Sh GLOBAL AND SESSION 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
 | |
| Variables in both session and global environments may be marked as hidden.
 | |
| Hidden variables are not passed into the environment of new processes and
 | |
| instead can only be used by tmux itself (for example in formats, see the
 | |
| .Sx FORMATS
 | |
| section).
 | |
| .Pp
 | |
| Commands to alter and view the environment are:
 | |
| .Bl -tag -width Ds
 | |
| .Tg setenv
 | |
| .It Xo Ic set-environment
 | |
| .Op Fl Fhgru
 | |
| .Op Fl t Ar target-session
 | |
| .Ar name Op Ar value
 | |
| .Xc
 | |
| .D1 Pq 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 .
 | |
| If
 | |
| .Fl F
 | |
| is present, then
 | |
| .Ar value
 | |
| is expanded as a format.
 | |
| The
 | |
| .Fl u
 | |
| flag unsets a variable.
 | |
| .Fl r
 | |
| indicates the variable is to be removed from the environment before starting a
 | |
| new process.
 | |
| .Fl h
 | |
| marks the variable as hidden.
 | |
| .Tg showenv
 | |
| .It Xo Ic show-environment
 | |
| .Op Fl hgs
 | |
| .Op Fl t Ar target-session
 | |
| .Op Ar variable
 | |
| .Xc
 | |
| .D1 Pq 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.
 | |
| .Fl h
 | |
| shows hidden variables (omitted by default).
 | |
| .El
 | |
| .Sh STATUS LINE
 | |
| .Nm
 | |
| includes an optional status line which is displayed in the bottom line of each
 | |
| terminal.
 | |
| .Pp
 | |
| By default, the status line is enabled and one line in height (it may be
 | |
| disabled or made multiple lines 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
 | |
| Each line of the status line is configured with the
 | |
| .Ic status-format
 | |
| option.
 | |
| The default 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 "\[ti]" 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
 | |
| .Tg clearphist
 | |
| .It Xo Ic clear-prompt-history
 | |
| .Op Fl T Ar prompt-type
 | |
| .Xc
 | |
| .D1 Pq alias: Ic clearphist
 | |
| Clear status prompt history for prompt type
 | |
| .Ar prompt-type .
 | |
| If
 | |
| .Fl T
 | |
| is omitted, then clear history for all types.
 | |
| See
 | |
| .Ic command-prompt
 | |
| for possible values for
 | |
| .Ar prompt-type .
 | |
| .It Xo Ic command-prompt
 | |
| .Op Fl 1bFikN
 | |
| .Op Fl I Ar inputs
 | |
| .Op Fl p Ar prompts
 | |
| .Op Fl t Ar target-client
 | |
| .Op Fl T Ar prompt-type
 | |
| .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.
 | |
| With
 | |
| .Fl F ,
 | |
| .Ar template
 | |
| is expanded as a format.
 | |
| .Pp
 | |
| 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 k
 | |
| is like
 | |
| .Fl 1
 | |
| but the key press is translated to a key name.
 | |
| .Fl N
 | |
| makes the prompt only accept numeric key presses.
 | |
| .Fl i
 | |
| executes the command every time the prompt input changes instead of when the
 | |
| user exits the command prompt.
 | |
| .Pp
 | |
| .Fl T
 | |
| tells
 | |
| .Nm
 | |
| the prompt type.
 | |
| This affects what completions are offered when
 | |
| .Em Tab
 | |
| is pressed.
 | |
| Available types are:
 | |
| .Ql command ,
 | |
| .Ql search ,
 | |
| .Ql target
 | |
| and
 | |
| .Ql window-target .
 | |
| .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 "q" Ta "Escape"
 | |
| .It Li "Delete from cursor to start of 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
 | |
| .Pp
 | |
| With
 | |
| .Fl b ,
 | |
| the prompt is shown in the background and the invoking client does not exit
 | |
| until it is dismissed.
 | |
| .Tg confirm
 | |
| .It Xo Ic confirm-before
 | |
| .Op Fl by
 | |
| .Op Fl c Ar confirm-key
 | |
| .Op Fl p Ar prompt
 | |
| .Op Fl t Ar target-client
 | |
| .Ar command
 | |
| .Xc
 | |
| .D1 Pq 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.
 | |
| With
 | |
| .Fl b ,
 | |
| the prompt is shown in the background and the invoking client does not exit
 | |
| until it is dismissed.
 | |
| .Fl y
 | |
| changes the default behaviour (if Enter alone is pressed) of the prompt to
 | |
| run the command.
 | |
| .Fl c
 | |
| changes the confirmation key to
 | |
| .Ar confirm-key ;
 | |
| the default is
 | |
| .Ql y .
 | |
| .Tg menu
 | |
| .It Xo Ic display-menu
 | |
| .Op Fl OM
 | |
| .Op Fl b Ar border-lines
 | |
| .Op Fl c Ar target-client
 | |
| .Op Fl C Ar starting-choice
 | |
| .Op Fl H Ar selected-style
 | |
| .Op Fl s Ar style
 | |
| .Op Fl S Ar border-style
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Fl T Ar title
 | |
| .Op Fl x Ar position
 | |
| .Op Fl y Ar position
 | |
| .Ar name
 | |
| .Ar key
 | |
| .Ar command Op Ar argument ...
 | |
| .Xc
 | |
| .D1 Pq alias: Ic menu
 | |
| Display a menu on
 | |
| .Ar target-client .
 | |
| .Ar target-pane
 | |
| gives the target for any commands run from the menu.
 | |
| .Pp
 | |
| A menu is passed as a series of arguments: first the menu item name,
 | |
| second the key shortcut (or empty for none) and third the command
 | |
| to run when the menu item is chosen.
 | |
| The name and command are formats, see the
 | |
| .Sx FORMATS
 | |
| and
 | |
| .Sx STYLES
 | |
| sections.
 | |
| If the name begins with a hyphen (-), then the item is disabled (shown dim) and
 | |
| may not be chosen.
 | |
| The name may be empty for a separator line, in which case both the key and
 | |
| command should be omitted.
 | |
| .Pp
 | |
| .Fl b
 | |
| sets the type of characters used for drawing menu borders.
 | |
| See
 | |
| .Ic popup-border-lines
 | |
| for possible values for
 | |
| .Ar border-lines .
 | |
| .Pp
 | |
| .Fl H
 | |
| sets the style for the selected menu item (see
 | |
| .Sx STYLES ) .
 | |
| .Pp
 | |
| .Fl s
 | |
| sets the style for the menu and
 | |
| .Fl S
 | |
| sets the style for the menu border (see
 | |
| .Sx STYLES ) .
 | |
| .Pp
 | |
| .Fl T
 | |
| is a format for the menu title (see
 | |
| .Sx FORMATS ) .
 | |
| .Pp
 | |
| .Fl C
 | |
| sets the menu item selected by default, if the menu is not bound to a mouse key
 | |
| binding.
 | |
| .Pp
 | |
| .Fl x
 | |
| and
 | |
| .Fl y
 | |
| give the position of the menu.
 | |
| Both may be a row or column number, or one of the following special values:
 | |
| .Bl -column "XXXXX" "XXXX" -offset indent
 | |
| .It Sy "Value" Ta Sy "Flag" Ta Sy "Meaning"
 | |
| .It Li "C" Ta "Both" Ta "The centre of the terminal"
 | |
| .It Li "R" Ta Fl x Ta "The right side of the terminal"
 | |
| .It Li "P" Ta "Both" Ta "The bottom left of the pane"
 | |
| .It Li "M" Ta "Both" Ta "The mouse position"
 | |
| .It Li "W" Ta "Both" Ta "The window position on the status line"
 | |
| .It Li "S" Ta Fl y Ta "The line above or below the status line"
 | |
| .El
 | |
| .Pp
 | |
| Or a format, which is expanded including the following additional variables:
 | |
| .Bl -column "XXXXXXXXXXXXXXXXXXXXXXXXXX" -offset indent
 | |
| .It Sy "Variable name" Ta Sy "Replaced with"
 | |
| .It Li "popup_centre_x" Ta "Centered in the client"
 | |
| .It Li "popup_centre_y" Ta "Centered in the client"
 | |
| .It Li "popup_height" Ta "Height of menu or popup"
 | |
| .It Li "popup_mouse_bottom" Ta "Bottom of at the mouse"
 | |
| .It Li "popup_mouse_centre_x" Ta "Horizontal centre at the mouse"
 | |
| .It Li "popup_mouse_centre_y" Ta "Vertical centre at the mouse"
 | |
| .It Li "popup_mouse_top" Ta "Top at the mouse"
 | |
| .It Li "popup_mouse_x" Ta "Mouse X position"
 | |
| .It Li "popup_mouse_y" Ta "Mouse Y position"
 | |
| .It Li "popup_pane_bottom" Ta "Bottom of the pane"
 | |
| .It Li "popup_pane_left" Ta "Left of the pane"
 | |
| .It Li "popup_pane_right" Ta "Right of the pane"
 | |
| .It Li "popup_pane_top" Ta "Top of the pane"
 | |
| .It Li "popup_status_line_y" Ta "Above or below the status line"
 | |
| .It Li "popup_width" Ta "Width of menu or popup"
 | |
| .It Li "popup_window_status_line_x" Ta "At the window position in status line"
 | |
| .It Li "popup_window_status_line_y" Ta "At the status line showing the window"
 | |
| .El
 | |
| .Pp
 | |
| Each menu consists of items followed by a key shortcut shown in brackets.
 | |
| If the menu is too large to fit on the terminal, it is not displayed.
 | |
| Pressing the key shortcut chooses the corresponding item.
 | |
| If the mouse is enabled and the menu is opened from a mouse key binding,
 | |
| releasing the mouse button with an item selected chooses that item and
 | |
| releasing the mouse button without an item selected closes the menu.
 | |
| .Fl O
 | |
| changes this behaviour so that the menu does not close when the mouse button is
 | |
| released without an item selected the menu is not closed and a mouse button
 | |
| must be clicked to choose an item.
 | |
| .Pp
 | |
| .Fl M
 | |
| tells
 | |
| .Nm
 | |
| the menu should handle mouse events; by default only menus opened from mouse
 | |
| key bindings do so.
 | |
| .Pp
 | |
| The following keys are available in menus:
 | |
| .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 "q" Ta "Exit menu"
 | |
| .El
 | |
| .Tg display
 | |
| .It Xo Ic display-message
 | |
| .Op Fl aCIlNpv
 | |
| .Op Fl c Ar target-client
 | |
| .Op Fl d Ar delay
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Ar message
 | |
| .Xc
 | |
| .D1 Pq 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 for up to
 | |
| .Ar delay
 | |
| milliseconds.
 | |
| If
 | |
| .Ar delay
 | |
| is not given, the
 | |
| .Ic display-time
 | |
| option is used; a delay of zero waits for a key press.
 | |
| .Ql N
 | |
| ignores key presses and closes only after the delay expires.
 | |
| If
 | |
| .Fl C
 | |
| is given, the pane will continue to be updated while the message is displayed.
 | |
| If
 | |
| .Fl l
 | |
| is given,
 | |
| .Ar message
 | |
| is printed unchanged.
 | |
| Otherwise, 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.
 | |
| .Pp
 | |
| .Fl v
 | |
| prints verbose logging as the format is parsed and
 | |
| .Fl a
 | |
| lists the format variables and their values.
 | |
| .Pp
 | |
| .Fl I
 | |
| forwards any input read from stdin to the empty pane given by
 | |
| .Ar target-pane .
 | |
| .Tg popup
 | |
| .It Xo Ic display-popup
 | |
| .Op Fl BCE
 | |
| .Op Fl b Ar border-lines
 | |
| .Op Fl c Ar target-client
 | |
| .Op Fl d Ar start-directory
 | |
| .Op Fl e Ar environment
 | |
| .Op Fl h Ar height
 | |
| .Op Fl s Ar border-style
 | |
| .Op Fl S Ar style
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Fl T Ar title
 | |
| .Op Fl w Ar width
 | |
| .Op Fl x Ar position
 | |
| .Op Fl y Ar position
 | |
| .Op Ar shell-command
 | |
| .Xc
 | |
| .D1 Pq alias: Ic popup
 | |
| Display a popup running
 | |
| .Ar shell-command
 | |
| on
 | |
| .Ar target-client .
 | |
| A popup is a rectangular box drawn over the top of any panes.
 | |
| Panes are not updated while a popup is present.
 | |
| .Pp
 | |
| .Fl E
 | |
| closes the popup automatically when
 | |
| .Ar shell-command
 | |
| exits.
 | |
| Two
 | |
| .Fl E
 | |
| closes the popup only if
 | |
| .Ar shell-command
 | |
| exited with success.
 | |
| .Pp
 | |
| .Fl x
 | |
| and
 | |
| .Fl y
 | |
| give the position of the popup, they have the same meaning as for the
 | |
| .Ic display-menu
 | |
| command.
 | |
| .Fl w
 | |
| and
 | |
| .Fl h
 | |
| give the width and height - both may be a percentage (followed by
 | |
| .Ql % ) .
 | |
| If omitted, half of the terminal size is used.
 | |
| .Pp
 | |
| .Fl B
 | |
| does not surround the popup by a border.
 | |
| .Pp
 | |
| .Fl b
 | |
| sets the type of characters used for drawing popup borders.
 | |
| When
 | |
| .Fl B
 | |
| is specified, the
 | |
| .Fl b
 | |
| option is ignored.
 | |
| See
 | |
| .Ic popup-border-lines
 | |
| for possible values for
 | |
| .Ar border-lines .
 | |
| .Pp
 | |
| .Fl s
 | |
| sets the style for the popup and
 | |
| .Fl S
 | |
| sets the style for the popup border (see
 | |
| .Sx STYLES ) .
 | |
| .Pp
 | |
| .Fl e
 | |
| takes the form
 | |
| .Ql VARIABLE=value
 | |
| and sets an environment variable for the popup; it may be specified multiple
 | |
| times.
 | |
| .Pp
 | |
| .Fl T
 | |
| is a format for the popup title (see
 | |
| .Sx FORMATS ) .
 | |
| .Pp
 | |
| The
 | |
| .Fl C
 | |
| flag closes any popup on the client.
 | |
| .Tg showphist
 | |
| .It Xo Ic show-prompt-history
 | |
| .Op Fl T Ar prompt-type
 | |
| .Xc
 | |
| .D1 Pq alias: Ic showphist
 | |
| Display status prompt history for prompt type
 | |
| .Ar prompt-type .
 | |
| If
 | |
| .Fl T
 | |
| is omitted, then show history for all types.
 | |
| See
 | |
| .Ic command-prompt
 | |
| for possible values for
 | |
| .Ar prompt-type .
 | |
| .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 the
 | |
| .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 NryZ
 | |
| .Op Fl F Ar format
 | |
| .Op Fl f Ar filter
 | |
| .Op Fl K Ar key-format
 | |
| .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.
 | |
| Each buffer is shown on one line.
 | |
| A shortcut key is shown on the left in brackets allowing for immediate choice,
 | |
| or the list may be navigated and an item chosen or otherwise manipulated using
 | |
| the keys below.
 | |
| .Fl Z
 | |
| zooms the pane.
 | |
| .Fl y
 | |
| disables any confirmation prompts.
 | |
| 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 forwards"
 | |
| .It Li "N" Ta "Repeat last search backwards"
 | |
| .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 "e" Ta "Open the buffer in an editor"
 | |
| .It Li "f" Ta "Enter a format to filter items"
 | |
| .It Li "O" Ta "Change sort field"
 | |
| .It Li "r" Ta "Reverse 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 -p -b \[aq]%%\[aq]" is used.
 | |
| .Pp
 | |
| .Fl O
 | |
| specifies the initial sort field: one of
 | |
| .Ql time
 | |
| (creation),
 | |
| .Ql name
 | |
| or
 | |
| .Ql size .
 | |
| .Fl r
 | |
| reverses the sort order.
 | |
| .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 and
 | |
| .Fl K
 | |
| a format for each shortcut key; both are evaluated once for each line.
 | |
| .Fl N
 | |
| starts without the preview.
 | |
| This command works only if at least one client is attached.
 | |
| .Tg clearhist
 | |
| .It Xo Ic clear-history
 | |
| .Op Fl H
 | |
| .Op Fl t Ar target-pane
 | |
| .Xc
 | |
| .D1 Pq alias: Ic clearhist
 | |
| Remove and free the history for the specified pane.
 | |
| .Fl H
 | |
| also removes all hyperlinks.
 | |
| .Tg deleteb
 | |
| .It Ic delete-buffer Op Fl b Ar buffer-name
 | |
| .D1 Pq alias: Ic deleteb
 | |
| Delete the buffer named
 | |
| .Ar buffer-name ,
 | |
| or the most recently added automatically named buffer if not specified.
 | |
| .Tg lsb
 | |
| .It Xo Ic list-buffers
 | |
| .Op Fl F Ar format
 | |
| .Op Fl f Ar filter
 | |
| .Xc
 | |
| .D1 Pq alias: Ic lsb
 | |
| List the global buffers.
 | |
| .Fl F
 | |
| specifies the format of each line and
 | |
| .Fl f
 | |
| a filter.
 | |
| Only buffers for which the filter is true are shown.
 | |
| See the
 | |
| .Sx FORMATS
 | |
| section.
 | |
| .It Xo Ic load-buffer
 | |
| .Op Fl w
 | |
| .Op Fl b Ar buffer-name
 | |
| .Op Fl t Ar target-client
 | |
| .Ar path
 | |
| .Xc
 | |
| .Tg loadb
 | |
| .D1 Pq alias: Ic loadb
 | |
| Load the contents of the specified paste buffer from
 | |
| .Ar path .
 | |
| If
 | |
| .Fl w
 | |
| is given, the buffer is also sent to the clipboard for
 | |
| .Ar target-client
 | |
| using the
 | |
| .Xr xterm 1
 | |
| escape sequence, if possible.
 | |
| If
 | |
| .Ar path
 | |
| is
 | |
| .Ql - ,
 | |
| the contents are read from stdin.
 | |
| .Tg pasteb
 | |
| .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 Pq 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.
 | |
| .Tg saveb
 | |
| .It Xo Ic save-buffer
 | |
| .Op Fl a
 | |
| .Op Fl b Ar buffer-name
 | |
| .Ar path
 | |
| .Xc
 | |
| .D1 Pq 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.
 | |
| If
 | |
| .Ar path
 | |
| is
 | |
| .Ql - ,
 | |
| the contents are written to stdout.
 | |
| .It Xo Ic set-buffer
 | |
| .Op Fl aw
 | |
| .Op Fl b Ar buffer-name
 | |
| .Op Fl t Ar target-client
 | |
| .Tg setb
 | |
| .Op Fl n Ar new-buffer-name
 | |
| .Ar data
 | |
| .Xc
 | |
| .D1 Pq alias: Ic setb
 | |
| Set the contents of the specified buffer to
 | |
| .Ar data .
 | |
| If
 | |
| .Fl w
 | |
| is given, the buffer is also sent to the clipboard for
 | |
| .Ar target-client
 | |
| using the
 | |
| .Xr xterm 1
 | |
| escape sequence, if possible.
 | |
| The
 | |
| .Fl a
 | |
| option appends to rather than overwriting the buffer.
 | |
| The
 | |
| .Fl n
 | |
| option renames the buffer to
 | |
| .Ar new-buffer-name .
 | |
| .Tg showb
 | |
| .It Xo Ic show-buffer
 | |
| .Op Fl b Ar buffer-name
 | |
| .Xc
 | |
| .D1 Pq 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.
 | |
| .Tg if
 | |
| .It Xo Ic if-shell
 | |
| .Op Fl bF
 | |
| .Op Fl t Ar target-pane
 | |
| .Ar shell-command command
 | |
| .Op Ar command
 | |
| .Xc
 | |
| .D1 Pq alias: Ic if
 | |
| Execute the first
 | |
| .Ar command
 | |
| if
 | |
| .Ar shell-command
 | |
| (run with
 | |
| .Pa /bin/sh )
 | |
| 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).
 | |
| .Tg lock
 | |
| .It Ic lock-server
 | |
| .D1 Pq alias: Ic lock
 | |
| Lock each client individually by running the command specified by the
 | |
| .Ic lock-command
 | |
| option.
 | |
| .Tg run
 | |
| .It Xo Ic run-shell
 | |
| .Op Fl bC
 | |
| .Op Fl c Ar start-directory
 | |
| .Op Fl d Ar delay
 | |
| .Op Fl t Ar target-pane
 | |
| .Op Ar shell-command
 | |
| .Xc
 | |
| .D1 Pq alias: Ic run
 | |
| Execute
 | |
| .Ar shell-command
 | |
| using
 | |
| .Pa /bin/sh
 | |
| or (with
 | |
| .Fl C )
 | |
| a
 | |
| .Nm
 | |
| command in the background without creating a window.
 | |
| Before being executed,
 | |
| .Ar shell-command
 | |
| is expanded using the rules specified in the
 | |
| .Sx FORMATS
 | |
| section.
 | |
| With
 | |
| .Fl b ,
 | |
| the command is run in the background.
 | |
| .Fl d
 | |
| waits for
 | |
| .Ar delay
 | |
| seconds before starting the command.
 | |
| If
 | |
| .Fl c
 | |
| is given, the current working directory is set to
 | |
| .Ar start-directory .
 | |
| If
 | |
| .Fl C
 | |
| is not given, any output to stdout is displayed in view mode (in the pane
 | |
| specified by
 | |
| .Fl t
 | |
| or the current pane if omitted) after the command finishes.
 | |
| If the command fails, the exit status is also displayed.
 | |
| .Tg wait
 | |
| .It Xo Ic wait-for
 | |
| .Op Fl L | S | U
 | |
| .Ar channel
 | |
| .Xc
 | |
| .D1 Pq 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 .
 | |
| .El
 | |
| .Sh EXIT MESSAGES
 | |
| When a
 | |
| .Nm
 | |
| client detaches, it prints a message.
 | |
| This may be one of:
 | |
| .Bl -tag -width Ds
 | |
| .It detached (from session ...)
 | |
| The client was detached normally.
 | |
| .It detached and SIGHUP
 | |
| The client was detached and its parent sent the
 | |
| .Dv SIGHUP
 | |
| signal (for example with
 | |
| .Ic detach-client
 | |
| .Fl P ) .
 | |
| .It lost tty
 | |
| The client's
 | |
| .Xr tty 4
 | |
| or
 | |
| .Xr pty 4
 | |
| was unexpectedly destroyed.
 | |
| .It terminated
 | |
| The client was killed with
 | |
| .Dv SIGTERM .
 | |
| .It too far behind
 | |
| The client is in control mode and became unable to keep up with the data from
 | |
| .Nm .
 | |
| .It exited
 | |
| The server exited when it had no sessions.
 | |
| .It server exited
 | |
| The server exited when it received
 | |
| .Dv SIGTERM .
 | |
| .It server exited unexpectedly
 | |
| The server crashed or otherwise exited without telling the client the reason.
 | |
| .El
 | |
| .Sh TERMINFO EXTENSIONS
 | |
| .Nm
 | |
| understands some unofficial extensions to
 | |
| .Xr terminfo 5 .
 | |
| It is not normally necessary to set these manually, instead the
 | |
| .Ic terminal-features
 | |
| option should be used.
 | |
| .Bl -tag -width Ds
 | |
| .It Em \&AX
 | |
| An existing extension that tells
 | |
| .Nm
 | |
| the terminal supports default colours.
 | |
| .It Em \&Bidi
 | |
| Tell
 | |
| .Nm
 | |
| that the terminal supports the VTE bidirectional text extensions.
 | |
| .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 \[aq]\e033]12;red\e033\e\e\[aq]
 | |
| .Ed
 | |
| .Pp
 | |
| The colour is an
 | |
| .Xr X 7
 | |
| colour, see
 | |
| .Xr XParseColor 3 .
 | |
| .It Em \&Cmg, \&Clmg, \&Dsmg , \&Enmg
 | |
| Set, clear, disable or enable DECSLRM margins.
 | |
| These are set automatically if the terminal reports it is
 | |
| .Em VT420
 | |
| compatible.
 | |
| .It Em \&Dsbp , \&Enbp
 | |
| Disable and enable bracketed paste.
 | |
| These are set automatically if the
 | |
| .Em XT
 | |
| capability is present.
 | |
| .It Em \&Dseks , \&Eneks
 | |
| Disable and enable extended keys.
 | |
| .It Em \&Dsfcs , \&Enfcs
 | |
| Disable and enable focus reporting.
 | |
| These are set automatically if the
 | |
| .Em XT
 | |
| capability is present.
 | |
| .It Em \&Hls
 | |
| Set or clear a hyperlink annotation.
 | |
| .It Em \&Nobr
 | |
| Tell
 | |
| .Nm
 | |
| that the terminal does not use bright colors for bold display.
 | |
| .It Em \&Rect
 | |
| Tell
 | |
| .Nm
 | |
| that the terminal supports rectangle operations.
 | |
| .It Em \&Smol
 | |
| Enable the overline attribute.
 | |
| .It Em \&Smulx
 | |
| Set a styled underscore.
 | |
| The single parameter is one of: 0 for no underscore, 1 for normal
 | |
| underscore, 2 for double underscore, 3 for curly underscore, 4 for dotted
 | |
| underscore and 5 for dashed underscore.
 | |
| .It Em \&Setulc , \&Setulc1, \&ol
 | |
| Set the underscore colour or reset to the default.
 | |
| .Em Setulc
 | |
| is for RGB colours and
 | |
| .Em Setulc1
 | |
| for ANSI or 256 colours.
 | |
| The
 | |
| .Em Setulc
 | |
| argument is (red * 65536) + (green * 256) + blue where each is between 0
 | |
| and 255.
 | |
| .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 \[aq]\e033[4 q\[aq]
 | |
| .Ed
 | |
| .Pp
 | |
| If
 | |
| .Em Se
 | |
| is not set, \&Ss with argument 0 will be used to reset the cursor style instead.
 | |
| .It Em \&Swd
 | |
| Set the opening sequence for the working directory notification.
 | |
| The sequence is terminated using the standard
 | |
| .Em fsl
 | |
| capability.
 | |
| .It Em \&Sxl
 | |
| Indicates that the terminal supports SIXEL.
 | |
| .It Em \&Sync
 | |
| Start (parameter is 1) or end (parameter is 2) a synchronized update.
 | |
| .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 initialize colour escape sequence (which
 | |
| may be enabled by adding the
 | |
| .Ql initc
 | |
| and
 | |
| .Ql ccc
 | |
| capabilities to the
 | |
| .Nm
 | |
| .Xr terminfo 5
 | |
| entry).
 | |
| .Pp
 | |
| This is equivalent to the
 | |
| .Em RGB
 | |
| .Xr terminfo 5
 | |
| capability.
 | |
| .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.
 | |
| .It Em \&XT
 | |
| This is an existing extension capability that tmux uses to mean that the
 | |
| terminal supports the
 | |
| .Xr xterm 1
 | |
| title set sequences and to automatically set some of the capabilities above.
 | |
| .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 three arguments: an integer time (as seconds from epoch), command number
 | |
| and flags (currently not used).
 | |
| For example:
 | |
| .Bd -literal -offset indent
 | |
| %begin 1363006971 2 1
 | |
| 0: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active)
 | |
| %end 1363006971 2 1
 | |
| .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-detached Ar client
 | |
| The client has detached.
 | |
| .It Ic %client-session-changed Ar client session-id name
 | |
| The client is now attached to the session with ID
 | |
| .Ar session-id ,
 | |
| which is named
 | |
| .Ar name .
 | |
| .It Ic %config-error Ar error
 | |
| An error has happened in a configuration file.
 | |
| .It Ic %continue Ar pane-id
 | |
| The pane has been continued after being paused (if the
 | |
| .Ar pause-after
 | |
| flag is set, see
 | |
| .Ic refresh-client
 | |
| .Fl A ) .
 | |
| .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 %extended-output Ar pane-id Ar age Ar ... \&  : Ar value
 | |
| New form of
 | |
| .Ic %output
 | |
| sent when the
 | |
| .Ar pause-after
 | |
| flag is set.
 | |
| .Ar age
 | |
| is the time in milliseconds for which tmux had buffered the output before it
 | |
| was sent.
 | |
| Any subsequent arguments up until a single
 | |
| .Ql \&:
 | |
| are for future use and should be ignored.
 | |
| .It Xo Ic %layout-change
 | |
| .Ar window-id
 | |
| .Ar window-layout
 | |
| .Ar window-visible-layout
 | |
| .Ar window-flags
 | |
| .Xc
 | |
| 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 %message Ar message
 | |
| A message sent with the
 | |
| .Ic display-message
 | |
| command.
 | |
| .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 %paste-buffer-changed Ar name
 | |
| Paste buffer
 | |
| .Ar name
 | |
| has been changed.
 | |
| .It Ic %paste-buffer-deleted Ar name
 | |
| Paste buffer
 | |
| .Ar name
 | |
| has been deleted.
 | |
| .It Ic %pause Ar pane-id
 | |
| The pane has been paused (if the
 | |
| .Ar pause-after
 | |
| flag is set).
 | |
| .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 Xo Ic %subscription-changed
 | |
| .Ar name
 | |
| .Ar session-id
 | |
| .Ar window-id
 | |
| .Ar window-index
 | |
| .Ar pane-id ... \&  :
 | |
| .Ar value
 | |
| .Xc
 | |
| The value of the format associated with subscription
 | |
| .Ar name
 | |
| has changed to
 | |
| .Ar value .
 | |
| See
 | |
| .Ic refresh-client
 | |
| .Fl B .
 | |
| Any arguments after
 | |
| .Ar pane-id
 | |
| up until a single
 | |
| .Ql \&:
 | |
| are for future use and should be ignored.
 | |
| .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 %unlinked-window-close Ar window-id
 | |
| The window with ID
 | |
| .Ar window-id ,
 | |
| which is not linked to the current session, was closed.
 | |
| .It Ic %unlinked-window-renamed Ar window-id
 | |
| The window with ID
 | |
| .Ar window-id ,
 | |
| which is not linked to the current session, was renamed.
 | |
| .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 ENVIRONMENT
 | |
| When
 | |
| .Nm
 | |
| is started, it inspects the following environment variables:
 | |
| .Bl -tag -width LC_CTYPE
 | |
| .It Ev EDITOR
 | |
| If the command specified in this variable contains the string
 | |
| .Ql vi
 | |
| and
 | |
| .Ev VISUAL
 | |
| is unset, use vi-style key bindings.
 | |
| Overridden by the
 | |
| .Ic mode-keys
 | |
| and
 | |
| .Ic status-keys
 | |
| options.
 | |
| .It Ev HOME
 | |
| The user's login directory.
 | |
| If unset, the
 | |
| .Xr passwd 5
 | |
| database is consulted.
 | |
| .It Ev LC_CTYPE
 | |
| The character encoding
 | |
| .Xr locale 1 .
 | |
| It is used for two separate purposes.
 | |
| For output to the terminal, UTF-8 is used if the
 | |
| .Fl u
 | |
| option is given or if
 | |
| .Ev LC_CTYPE
 | |
| contains
 | |
| .Qq UTF-8
 | |
| or
 | |
| .Qq UTF8 .
 | |
| Otherwise, only ASCII characters are written and non-ASCII characters
 | |
| are replaced with underscores
 | |
| .Pq Ql _ .
 | |
| For input,
 | |
| .Nm
 | |
| always runs with a UTF-8 locale.
 | |
| If en_US.UTF-8 is provided by the operating system, it is used and
 | |
| .Ev LC_CTYPE
 | |
| is ignored for input.
 | |
| Otherwise,
 | |
| .Ev LC_CTYPE
 | |
| tells
 | |
| .Nm
 | |
| what the UTF-8 locale is called on the current system.
 | |
| If the locale specified by
 | |
| .Ev LC_CTYPE
 | |
| is not available or is not a UTF-8 locale,
 | |
| .Nm
 | |
| exits with an error message.
 | |
| .It Ev LC_TIME
 | |
| The date and time format
 | |
| .Xr locale 1 .
 | |
| It is used for locale-dependent
 | |
| .Xr strftime 3
 | |
| format specifiers.
 | |
| .It Ev PWD
 | |
| The current working directory to be set in the global environment.
 | |
| This may be useful if it contains symbolic links.
 | |
| If the value of the variable does not match the current working
 | |
| directory, the variable is ignored and the result of
 | |
| .Xr getcwd 3
 | |
| is used instead.
 | |
| .It Ev SHELL
 | |
| The absolute path to the default shell for new windows.
 | |
| See the
 | |
| .Ic default-shell
 | |
| option for details.
 | |
| .It Ev TMUX_TMPDIR
 | |
| The parent directory of the directory containing the server sockets.
 | |
| See the
 | |
| .Fl L
 | |
| option for details.
 | |
| .It Ev VISUAL
 | |
| If the command specified in this variable contains the string
 | |
| .Ql vi ,
 | |
| use vi-style key bindings.
 | |
| Overridden by the
 | |
| .Ic mode-keys
 | |
| and
 | |
| .Ic status-keys
 | |
| options.
 | |
| .El
 | |
| .Sh FILES
 | |
| .Bl -tag -width "/etc/tmux.confXXX" -compact
 | |
| .It Pa \[ti]/.tmux.conf
 | |
| Default
 | |
| .Nm
 | |
| configuration file.
 | |
| .It Pa /etc/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 \[ti]/.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 \[aq]exec man %%\[aq]"
 | |
| bind-key S command-prompt "new-window -n %1 \[aq]ssh %1\[aq]"
 | |
| .Ed
 | |
| .Sh SEE ALSO
 | |
| .Xr pty 4
 | |
| .Sh AUTHORS
 | |
| .An Nicholas Marriott Aq Mt nicholas.marriott@gmail.com
 | 
