xref: /netbsd-src/external/bsd/tmux/dist/tmux.1 (revision d16b7486a53dcb8072b60ec6fcb4373a2d0c27b7)
1.\" $OpenBSD$
2.\"
3.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
4.\"
5.\" Permission to use, copy, modify, and distribute this software for any
6.\" purpose with or without fee is hereby granted, provided that the above
7.\" copyright notice and this permission notice appear in all copies.
8.\"
9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13.\" WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
14.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
15.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\"
17.Dd January 6, 2020
18.Dt TMUX 1
19.Os
20.Sh NAME
21.Nm tmux
22.Nd terminal multiplexer
23.Sh SYNOPSIS
24.Nm tmux
25.Bk -words
26.Op Fl 2CDluvV
27.Op Fl c Ar shell-command
28.Op Fl f Ar file
29.Op Fl L Ar socket-name
30.Op Fl S Ar socket-path
31.Op Fl T Ar features
32.Op Ar command Op Ar flags
33.Ek
34.Sh DESCRIPTION
35.Nm
36is a terminal multiplexer:
37it enables a number of terminals to be created, accessed, and
38controlled from a single screen.
39.Nm
40may be detached from a screen
41and continue running in the background,
42then later reattached.
43.Pp
44When
45.Nm
46is started, it creates a new
47.Em session
48with a single
49.Em window
50and displays it on screen.
51A status line at the bottom of the screen
52shows information on the current session
53and is used to enter interactive commands.
54.Pp
55A session is a single collection of
56.Em pseudo terminals
57under the management of
58.Nm .
59Each session has one or more
60windows linked to it.
61A window occupies the entire screen
62and may be split into rectangular panes,
63each of which is a separate pseudo terminal
64(the
65.Xr pty 4
66manual page documents the technical details of pseudo terminals).
67Any number of
68.Nm
69instances may connect to the same session,
70and any number of windows may be present in the same session.
71Once all sessions are killed,
72.Nm
73exits.
74.Pp
75Each session is persistent and will survive accidental disconnection
76(such as
77.Xr ssh 1
78connection timeout) or intentional detaching (with the
79.Ql C-b d
80key strokes).
81.Nm
82may be reattached using:
83.Pp
84.Dl $ tmux attach
85.Pp
86In
87.Nm ,
88a session is displayed on screen by a
89.Em client
90and all sessions are managed by a single
91.Em server .
92The server and each client are separate processes which communicate through a
93socket in
94.Pa /tmp .
95.Pp
96The options are as follows:
97.Bl -tag -width "XXXXXXXXXXXX"
98.It Fl 2
99Force
100.Nm
101to assume the terminal supports 256 colours.
102This is equivalent to
103.Fl T Ar 256 .
104.It Fl C
105Start in control mode (see the
106.Sx CONTROL MODE
107section).
108Given twice
109.Xo ( Fl CC ) Xc
110disables echo.
111.It Fl c Ar shell-command
112Execute
113.Ar shell-command
114using the default shell.
115If necessary, the
116.Nm
117server will be started to retrieve the
118.Ic default-shell
119option.
120This option is for compatibility with
121.Xr sh 1
122when
123.Nm
124is used as a login shell.
125.It Fl D
126Do not start the
127.Nm
128server as a daemon.
129This also turns the
130.Ic exit-empty
131option off.
132With
133.Fl D ,
134.Ar command
135may not be specified.
136.It Fl f Ar file
137Specify an alternative configuration file.
138By default,
139.Nm
140loads the system configuration file from
141.Pa @SYSCONFDIR@/tmux.conf ,
142if present, then looks for a user configuration file at
143.Pa ~/.tmux.conf,
144.Pa $XDG_CONFIG_HOME/tmux/tmux.conf
145or
146.Pa ~/.config/tmux/tmux.conf .
147.Pp
148The configuration file is a set of
149.Nm
150commands which are executed in sequence when the server is first started.
151.Nm
152loads configuration files once when the server process has started.
153The
154.Ic source-file
155command may be used to load a file later.
156.Pp
157.Nm
158shows any error messages from commands in configuration files in the first
159session created, and continues to process the rest of the configuration file.
160.It Fl L Ar socket-name
161.Nm
162stores the server socket in a directory under
163.Ev TMUX_TMPDIR
164or
165.Pa /tmp
166if it is unset.
167The default socket is named
168.Em default .
169This option allows a different socket name to be specified, allowing several
170independent
171.Nm
172servers to be run.
173Unlike
174.Fl S
175a full path is not necessary: the sockets are all created in a directory
176.Pa tmux-UID
177under the directory given by
178.Ev TMUX_TMPDIR
179or in
180.Pa /tmp .
181The
182.Pa tmux-UID
183directory is created by
184.Nm
185and must not be world readable, writable or executable.
186.Pp
187If the socket is accidentally removed, the
188.Dv SIGUSR1
189signal may be sent to the
190.Nm
191server process to recreate it (note that this will fail if any parent
192directories are missing).
193.It Fl l
194Behave as a login shell.
195This flag currently has no effect and is for compatibility with other shells
196when using tmux as a login shell.
197.It Fl N
198Do not start the server even if the command would normally do so (for example
199.Ic new-session
200or
201.Ic start-server ) .
202.It Fl S Ar socket-path
203Specify a full alternative path to the server socket.
204If
205.Fl S
206is specified, the default socket directory is not used and any
207.Fl L
208flag is ignored.
209.It Fl u
210Write UTF-8 output to the terminal even if the first environment
211variable of
212.Ev LC_ALL ,
213.Ev LC_CTYPE ,
214or
215.Ev LANG
216that is set does not contain
217.Qq UTF-8
218or
219.Qq UTF8 .
220This is equivalent to
221.Fl T Ar UTF-8 .
222.It Fl T Ar features
223Set terminal features for the client.
224This is a comma-separated list of features.
225See the
226.Ic terminal-features
227option.
228.It Fl v
229Request verbose logging.
230Log messages will be saved into
231.Pa tmux-client-PID.log
232and
233.Pa tmux-server-PID.log
234files in the current directory, where
235.Em PID
236is the PID of the server or client process.
237If
238.Fl v
239is specified twice, an additional
240.Pa tmux-out-PID.log
241file is generated with a copy of everything
242.Nm
243writes to the terminal.
244.Pp
245The
246.Dv SIGUSR2
247signal may be sent to the
248.Nm
249server process to toggle logging between on (as if
250.Fl v
251was given) and off.
252.It Fl V
253Report the
254.Nm
255version.
256.It Ar command Op Ar flags
257This specifies one of a set of commands used to control
258.Nm ,
259as described in the following sections.
260If no commands are specified, the
261.Ic new-session
262command is assumed.
263.El
264.Sh DEFAULT KEY BINDINGS
265.Nm
266may be controlled from an attached client by using a key combination of a
267prefix key,
268.Ql C-b
269(Ctrl-b) by default, followed by a command key.
270.Pp
271The default command key bindings are:
272.Pp
273.Bl -tag -width "XXXXXXXXXX" -offset indent -compact
274.It C-b
275Send the prefix key (C-b) through to the application.
276.It C-o
277Rotate the panes in the current window forwards.
278.It C-z
279Suspend the
280.Nm
281client.
282.It !
283Break the current pane out of the window.
284.It \&"
285.\" "
286Split the current pane into two, top and bottom.
287.It #
288List all paste buffers.
289.It $
290Rename the current session.
291.It %
292Split the current pane into two, left and right.
293.It &
294Kill the current window.
295.It '
296Prompt for a window index to select.
297.It \&(
298Switch the attached client to the previous session.
299.It \&)
300Switch the attached client to the next session.
301.It ,
302Rename the current window.
303.It -
304Delete the most recently copied buffer of text.
305.It .
306Prompt for an index to move the current window.
307.It 0 to 9
308Select windows 0 to 9.
309.It :
310Enter the
311.Nm
312command prompt.
313.It ;
314Move to the previously active pane.
315.It =
316Choose which buffer to paste interactively from a list.
317.It \&?
318List all key bindings.
319.It D
320Choose a client to detach.
321.It L
322Switch the attached client back to the last session.
323.It \&[
324Enter copy mode to copy text or view the history.
325.It \&]
326Paste the most recently copied buffer of text.
327.It c
328Create a new window.
329.It d
330Detach the current client.
331.It f
332Prompt to search for text in open windows.
333.It i
334Display some information about the current window.
335.It l
336Move to the previously selected window.
337.It m
338Mark the current pane (see
339.Ic select-pane
340.Fl m ) .
341.It M
342Clear the marked pane.
343.It n
344Change to the next window.
345.It o
346Select the next pane in the current window.
347.It p
348Change to the previous window.
349.It q
350Briefly display pane indexes.
351.It r
352Force redraw of the attached client.
353.It s
354Select a new session for the attached client interactively.
355.It t
356Show the time.
357.It w
358Choose the current window interactively.
359.It x
360Kill the current pane.
361.It z
362Toggle zoom state of the current pane.
363.It {
364Swap the current pane with the previous pane.
365.It }
366Swap the current pane with the next pane.
367.It ~
368Show previous messages from
369.Nm ,
370if any.
371.It Page Up
372Enter copy mode and scroll one page up.
373.It Up, Down
374.It Left, Right
375Change to the pane above, below, to the left, or to the right of the current
376pane.
377.It M-1 to M-5
378Arrange panes in one of the five preset layouts: even-horizontal,
379even-vertical, main-horizontal, main-vertical, or tiled.
380.It Space
381Arrange the current window in the next preset layout.
382.It M-n
383Move to the next window with a bell or activity marker.
384.It M-o
385Rotate the panes in the current window backwards.
386.It M-p
387Move to the previous window with a bell or activity marker.
388.It C-Up, C-Down
389.It C-Left, C-Right
390Resize the current pane in steps of one cell.
391.It M-Up, M-Down
392.It M-Left, M-Right
393Resize the current pane in steps of five cells.
394.El
395.Pp
396Key bindings may be changed with the
397.Ic bind-key
398and
399.Ic unbind-key
400commands.
401.Sh COMMAND PARSING AND EXECUTION
402.Nm
403supports a large number of commands which can be used to control its
404behaviour.
405Each command is named and can accept zero or more flags and arguments.
406They may be bound to a key with the
407.Ic bind-key
408command or run from the shell prompt, a shell script, a configuration file or
409the command prompt.
410For example, the same
411.Ic set-option
412command run from the shell prompt, from
413.Pa ~/.tmux.conf
414and bound to a key may look like:
415.Bd -literal -offset indent
416$ tmux set-option -g status-style bg=cyan
417
418set-option -g status-style bg=cyan
419
420bind-key C set-option -g status-style bg=cyan
421.Ed
422.Pp
423Here, the command name is
424.Ql set-option ,
425.Ql Fl g
426is a flag and
427.Ql status-style
428and
429.Ql bg=cyan
430are arguments.
431.Pp
432.Nm
433distinguishes between command parsing and execution.
434In order to execute a command,
435.Nm
436needs it to be split up into its name and arguments.
437This is command parsing.
438If a command is run from the shell, the shell parses it; from inside
439.Nm
440or from a configuration file,
441.Nm
442does.
443Examples of when
444.Nm
445parses commands are:
446.Bl -dash -offset indent
447.It
448in a configuration file;
449.It
450typed at the command prompt (see
451.Ic command-prompt ) ;
452.It
453given to
454.Ic bind-key ;
455.It
456passed as arguments to
457.Ic if-shell
458or
459.Ic confirm-before .
460.El
461.Pp
462To execute commands, each client has a
463.Ql command queue .
464A global command queue not attached to any client is used on startup
465for configuration files like
466.Pa ~/.tmux.conf .
467Parsed commands added to the queue are executed in order.
468Some commands, like
469.Ic if-shell
470and
471.Ic confirm-before ,
472parse their argument to create a new command which is inserted immediately
473after themselves.
474This means that arguments can be parsed twice or more - once when the parent command (such as
475.Ic if-shell )
476is parsed and again when it parses and executes its command.
477Commands like
478.Ic if-shell ,
479.Ic run-shell
480and
481.Ic display-panes
482stop execution of subsequent commands on the queue until something happens -
483.Ic if-shell
484and
485.Ic run-shell
486until a shell command finishes and
487.Ic display-panes
488until a key is pressed.
489For example, the following commands:
490.Bd -literal -offset indent
491new-session; new-window
492if-shell "true" "split-window"
493kill-session
494.Ed
495.Pp
496Will execute
497.Ic new-session ,
498.Ic new-window ,
499.Ic if-shell ,
500the shell command
501.Xr true 1 ,
502.Ic split-window
503and
504.Ic kill-session
505in that order.
506.Pp
507The
508.Sx COMMANDS
509section lists the
510.Nm
511commands and their arguments.
512.Sh PARSING SYNTAX
513This section describes the syntax of commands parsed by
514.Nm ,
515for example in a configuration file or at the command prompt.
516Note that when commands are entered into the shell, they are parsed by the shell
517- see for example
518.Xr ksh 1
519or
520.Xr csh 1 .
521.Pp
522Each command is terminated by a newline or a semicolon (;).
523Commands separated by semicolons together form a
524.Ql command sequence
525- if a command in the sequence encounters an error, no subsequent commands are
526executed.
527.Pp
528It is recommended that a semicolon used as a command separator should be
529written as an individual token, for example from
530.Xr sh 1 :
531.Bd -literal -offset indent
532$ tmux neww \\; splitw
533.Ed
534.Pp
535Or:
536.Bd -literal -offset indent
537$ tmux neww ';' splitw
538.Ed
539.Pp
540Or from the tmux command prompt:
541.Bd -literal -offset indent
542neww ; splitw
543.Ed
544.Pp
545However, a trailing semicolon is also interpreted as a command separator,
546for example in these
547.Xr sh 1
548commands:
549.Bd -literal -offset indent
550$ tmux neww\e\e; splitw
551.Ed
552.Pp
553Or:
554.Bd -literal -offset indent
555$ tmux 'neww;' splitw
556.Ed
557.Pp
558As in these examples, when running tmux from the shell extra care must be taken
559to properly quote semicolons:
560.Bl -enum -offset Ds
561.It
562Semicolons that should be interpreted as a command separator
563should be escaped according to the shell conventions.
564For
565.Xr sh 1
566this typically means quoted (such as
567.Ql neww ';' splitw )
568or escaped (such as
569.Ql neww \e\e\e\e; splitw ) .
570.It
571Individual semicolons or trailing semicolons that should be interpreted as
572arguments should be escaped twice: once according to the shell conventions and
573a second time for
574.Nm ;
575for example:
576.Bd -literal -offset indent
577$ tmux neww 'foo\e\e;' bar
578$ tmux neww foo\e\e\e\e; bar
579.Ed
580.It
581Semicolons that are not individual tokens or trailing another token should only
582be escaped once according to shell conventions; for example:
583.Bd -literal -offset indent
584$ tmux neww 'foo-;-bar'
585$ tmux neww foo-\e\e;-bar
586.Ed
587.El
588.Pp
589Comments are marked by the unquoted # character - any remaining text after a
590comment is ignored until the end of the line.
591.Pp
592If the last character of a line is \e, the line is joined with the following
593line (the \e and the newline are completely removed).
594This is called line continuation and applies both inside and outside quoted
595strings and in comments, but not inside braces.
596.Pp
597Command arguments may be specified as strings surrounded by single (') quotes,
598double quotes (") or braces ({}).
599.\" "
600This is required when the argument contains any special character.
601Single and double quoted strings cannot span multiple lines except with line
602continuation.
603Braces can span multiple lines.
604.Pp
605Outside of quotes and inside double quotes, these replacements are performed:
606.Bl -dash -offset indent
607.It
608Environment variables preceded by $ are replaced with their value from the
609global environment (see the
610.Sx GLOBAL AND SESSION ENVIRONMENT
611section).
612.It
613A leading ~ or ~user is expanded to the home directory of the current or
614specified user.
615.It
616\euXXXX or \euXXXXXXXX is replaced by the Unicode codepoint corresponding to
617the given four or eight digit hexadecimal number.
618.It
619When preceded (escaped) by a \e, the following characters are replaced: \ee by
620the escape character; \er by a carriage return; \en by a newline; and \et by a
621tab.
622.It
623\eooo is replaced by a character of the octal value ooo.
624Three octal digits are required, for example \e001.
625The largest valid character is \e377.
626.It
627Any other characters preceded by \e are replaced by themselves (that is, the \e
628is removed) and are not treated as having any special meaning - so for example
629\e; will not mark a command sequence and \e$ will not expand an environment
630variable.
631.El
632.Pp
633Braces are parsed as a configuration file (so conditions such as
634.Ql %if
635are processed) and then converted into a string.
636They are designed to avoid the need for additional escaping when passing a
637group of
638.Nm
639commands as an argument (for example to
640.Ic if-shell ) .
641These two examples produce an identical command - note that no escaping is
642needed when using {}:
643.Bd -literal -offset indent
644if-shell true {
645    display -p 'brace-dollar-foo: }$foo'
646}
647
648if-shell true "display -p 'brace-dollar-foo: }\e$foo'"
649.Ed
650.Pp
651Braces may be enclosed inside braces, for example:
652.Bd -literal -offset indent
653bind x if-shell "true" {
654    if-shell "true" {
655        display "true!"
656    }
657}
658.Ed
659.Pp
660Environment variables may be set by using the syntax
661.Ql name=value ,
662for example
663.Ql HOME=/home/user .
664Variables set during parsing are added to the global environment.
665A hidden variable may be set with
666.Ql %hidden ,
667for example:
668.Bd -literal -offset indent
669%hidden MYVAR=42
670.Ed
671.Pp
672Hidden variables are not passed to the environment of processes created
673by tmux.
674See the
675.Sx GLOBAL AND SESSION ENVIRONMENT
676section.
677.Pp
678Commands may be parsed conditionally by surrounding them with
679.Ql %if ,
680.Ql %elif ,
681.Ql %else
682and
683.Ql %endif .
684The argument to
685.Ql %if
686and
687.Ql %elif
688is expanded as a format (see
689.Sx FORMATS )
690and if it evaluates to false (zero or empty), subsequent text is ignored until
691the closing
692.Ql %elif ,
693.Ql %else
694or
695.Ql %endif .
696For example:
697.Bd -literal -offset indent
698%if "#{==:#{host},myhost}"
699set -g status-style bg=red
700%elif "#{==:#{host},myotherhost}"
701set -g status-style bg=green
702%else
703set -g status-style bg=blue
704%endif
705.Ed
706.Pp
707Will change the status line to red if running on
708.Ql myhost ,
709green if running on
710.Ql myotherhost ,
711or blue if running on another host.
712Conditionals may be given on one line, for example:
713.Bd -literal -offset indent
714%if #{==:#{host},myhost} set -g status-style bg=red %endif
715.Ed
716.Sh COMMANDS
717This section describes the commands supported by
718.Nm .
719Most commands accept the optional
720.Fl t
721(and sometimes
722.Fl s )
723argument with one of
724.Ar target-client ,
725.Ar target-session ,
726.Ar target-window ,
727or
728.Ar target-pane .
729These specify the client, session, window or pane which a command should affect.
730.Pp
731.Ar target-client
732should be the name of the client,
733typically the
734.Xr pty 4
735file to which the client is connected, for example either of
736.Pa /dev/ttyp1
737or
738.Pa ttyp1
739for the client attached to
740.Pa /dev/ttyp1 .
741If no client is specified,
742.Nm
743attempts to work out the client currently in use; if that fails, an error is
744reported.
745Clients may be listed with the
746.Ic list-clients
747command.
748.Pp
749.Ar target-session
750is tried as, in order:
751.Bl -enum -offset Ds
752.It
753A session ID prefixed with a $.
754.It
755An exact name of a session (as listed by the
756.Ic list-sessions
757command).
758.It
759The start of a session name, for example
760.Ql mysess
761would match a session named
762.Ql mysession .
763.It
764An
765.Xr fnmatch 3
766pattern which is matched against the session name.
767.El
768.Pp
769If the session name is prefixed with an
770.Ql = ,
771only an exact match is accepted (so
772.Ql =mysess
773will only match exactly
774.Ql mysess ,
775not
776.Ql mysession ) .
777.Pp
778If a single session is found, it is used as the target session; multiple matches
779produce an error.
780If a session is omitted, the current session is used if available; if no
781current session is available, the most recently used is chosen.
782.Pp
783.Ar target-window
784(or
785.Ar src-window
786or
787.Ar dst-window )
788specifies a window in the form
789.Em session Ns \&: Ns Em window .
790.Em session
791follows the same rules as for
792.Ar target-session ,
793and
794.Em window
795is looked for in order as:
796.Bl -enum -offset Ds
797.It
798A special token, listed below.
799.It
800A window index, for example
801.Ql mysession:1
802is window 1 in session
803.Ql mysession .
804.It
805A window ID, such as @1.
806.It
807An exact window name, such as
808.Ql mysession:mywindow .
809.It
810The start of a window name, such as
811.Ql mysession:mywin .
812.It
813As an
814.Xr fnmatch 3
815pattern matched against the window name.
816.El
817.Pp
818Like sessions, a
819.Ql =
820prefix will do an exact match only.
821An empty window name specifies the next unused index if appropriate (for
822example the
823.Ic new-window
824and
825.Ic link-window
826commands)
827otherwise the current window in
828.Em session
829is chosen.
830.Pp
831The following special tokens are available to indicate particular windows.
832Each has a single-character alternative form.
833.Bl -column "XXXXXXXXXX" "X"
834.It Sy "Token" Ta Sy "" Ta Sy "Meaning"
835.It Li "{start}" Ta "^" Ta "The lowest-numbered window"
836.It Li "{end}" Ta "$" Ta "The highest-numbered window"
837.It Li "{last}" Ta "!" Ta "The last (previously current) window"
838.It Li "{next}" Ta "+" Ta "The next window by number"
839.It Li "{previous}" Ta "-" Ta "The previous window by number"
840.El
841.Pp
842.Ar target-pane
843(or
844.Ar src-pane
845or
846.Ar dst-pane )
847may be a pane ID or takes a similar form to
848.Ar target-window
849but with the optional addition of a period followed by a pane index or pane ID,
850for example:
851.Ql mysession:mywindow.1 .
852If the pane index is omitted, the currently active pane in the specified
853window is used.
854The following special tokens are available for the pane index:
855.Bl -column "XXXXXXXXXXXXXX" "X"
856.It Sy "Token" Ta Sy "" Ta Sy "Meaning"
857.It Li "{last}" Ta "!" Ta "The last (previously active) pane"
858.It Li "{next}" Ta "+" Ta "The next pane by number"
859.It Li "{previous}" Ta "-" Ta "The previous pane by number"
860.It Li "{top}" Ta "" Ta "The top pane"
861.It Li "{bottom}" Ta "" Ta "The bottom pane"
862.It Li "{left}" Ta "" Ta "The leftmost pane"
863.It Li "{right}" Ta "" Ta "The rightmost pane"
864.It Li "{top-left}" Ta "" Ta "The top-left pane"
865.It Li "{top-right}" Ta "" Ta "The top-right pane"
866.It Li "{bottom-left}" Ta "" Ta "The bottom-left pane"
867.It Li "{bottom-right}" Ta "" Ta "The bottom-right pane"
868.It Li "{up-of}" Ta "" Ta "The pane above the active pane"
869.It Li "{down-of}" Ta "" Ta "The pane below the active pane"
870.It Li "{left-of}" Ta "" Ta "The pane to the left of the active pane"
871.It Li "{right-of}" Ta "" Ta "The pane to the right of the active pane"
872.El
873.Pp
874The tokens
875.Ql +
876and
877.Ql -
878may be followed by an offset, for example:
879.Bd -literal -offset indent
880select-window -t:+2
881.Ed
882.Pp
883In addition,
884.Em target-session ,
885.Em target-window
886or
887.Em target-pane
888may consist entirely of the token
889.Ql {mouse}
890(alternative form
891.Ql = )
892to specify the session, window or pane where the most recent mouse event occurred
893(see the
894.Sx MOUSE SUPPORT
895section)
896or
897.Ql {marked}
898(alternative form
899.Ql ~ )
900to specify the marked pane (see
901.Ic select-pane
902.Fl m ) .
903.Pp
904Sessions, window and panes are each numbered with a unique ID; session IDs are
905prefixed with a
906.Ql $ ,
907windows with a
908.Ql @ ,
909and panes with a
910.Ql % .
911These are unique and are unchanged for the life of the session, window or pane
912in the
913.Nm
914server.
915The pane ID is passed to the child process of the pane in the
916.Ev TMUX_PANE
917environment variable.
918IDs may be displayed using the
919.Ql session_id ,
920.Ql window_id ,
921or
922.Ql pane_id
923formats (see the
924.Sx FORMATS
925section) and the
926.Ic display-message ,
927.Ic list-sessions ,
928.Ic list-windows
929or
930.Ic list-panes
931commands.
932.Pp
933.Ar shell-command
934arguments are
935.Xr sh 1
936commands.
937This may be a single argument passed to the shell, for example:
938.Bd -literal -offset indent
939new-window 'vi ~/.tmux.conf'
940.Ed
941.Pp
942Will run:
943.Bd -literal -offset indent
944/bin/sh -c 'vi ~/.tmux.conf'
945.Ed
946.Pp
947Additionally, the
948.Ic new-window ,
949.Ic new-session ,
950.Ic split-window ,
951.Ic respawn-window
952and
953.Ic respawn-pane
954commands allow
955.Ar shell-command
956to be given as multiple arguments and executed directly (without
957.Ql sh -c ) .
958This can avoid issues with shell quoting.
959For example:
960.Bd -literal -offset indent
961$ tmux new-window vi ~/.tmux.conf
962.Ed
963.Pp
964Will run
965.Xr vi 1
966directly without invoking the shell.
967.Pp
968.Ar command
969.Op Ar arguments
970refers to a
971.Nm
972command, either passed with the command and arguments separately, for example:
973.Bd -literal -offset indent
974bind-key F1 set-option status off
975.Ed
976.Pp
977Or passed as a single string argument in
978.Pa .tmux.conf ,
979for example:
980.Bd -literal -offset indent
981bind-key F1 { set-option status off }
982.Ed
983.Pp
984Example
985.Nm
986commands include:
987.Bd -literal -offset indent
988refresh-client -t/dev/ttyp2
989
990rename-session -tfirst newname
991
992set-option -wt:0 monitor-activity on
993
994new-window ; split-window -d
995
996bind-key R source-file ~/.tmux.conf \e; \e
997	display-message "source-file done"
998.Ed
999.Pp
1000Or from
1001.Xr sh 1 :
1002.Bd -literal -offset indent
1003$ tmux kill-window -t :1
1004
1005$ tmux new-window \e; split-window -d
1006
1007$ tmux new-session -d 'vi ~/.tmux.conf' \e; split-window -d \e; attach
1008.Ed
1009.Sh CLIENTS AND SESSIONS
1010The
1011.Nm
1012server manages clients, sessions, windows and panes.
1013Clients are attached to sessions to interact with them, either
1014when they are created with the
1015.Ic new-session
1016command, or later with the
1017.Ic attach-session
1018command.
1019Each session has one or more windows
1020.Em linked
1021into it.
1022Windows may be linked to multiple sessions and are made up of one or
1023more panes,
1024each of which contains a pseudo terminal.
1025Commands for creating, linking and otherwise manipulating windows
1026are covered
1027in the
1028.Sx WINDOWS AND PANES
1029section.
1030.Pp
1031The following commands are available to manage clients and sessions:
1032.Bl -tag -width Ds
1033.Tg attach
1034.It Xo Ic attach-session
1035.Op Fl dErx
1036.Op Fl c Ar working-directory
1037.Op Fl f Ar flags
1038.Op Fl t Ar target-session
1039.Xc
1040.D1 Pq alias: Ic attach
1041If run from outside
1042.Nm ,
1043create a new client in the current terminal and attach it to
1044.Ar target-session .
1045If used from inside, switch the current client.
1046If
1047.Fl d
1048is specified, any other clients attached to the session are detached.
1049If
1050.Fl x
1051is given, send
1052.Dv SIGHUP
1053to the parent process of the client as well as
1054detaching the client, typically causing it to exit.
1055.Fl f
1056sets a comma-separated list of client flags.
1057The flags are:
1058.Bl -tag -width Ds
1059.It active-pane
1060the client has an independent active pane
1061.It ignore-size
1062the client does not affect the size of other clients
1063.It no-output
1064the client does not receive pane output in control mode
1065.It pause-after=seconds
1066output is paused once the pane is
1067.Ar seconds
1068behind in control mode
1069.It read-only
1070the client is read-only
1071.It wait-exit
1072wait for an empty line input before exiting in control mode
1073.El
1074.Pp
1075A leading
1076.Ql \&!
1077turns a flag off if the client is already attached.
1078.Fl r
1079is an alias for
1080.Fl f
1081.Ar read-only,ignore-size .
1082When a client is read-only, only keys bound to the
1083.Ic detach-client
1084or
1085.Ic switch-client
1086commands have any effect.
1087A client with the
1088.Ar active-pane
1089flag allows the active pane to be selected independently of the window's active
1090pane used by clients without the flag.
1091This only affects the cursor position and commands issued from the client;
1092other features such as hooks and styles continue to use the window's active
1093pane.
1094.Pp
1095If no server is started,
1096.Ic attach-session
1097will attempt to start it; this will fail unless sessions are created in the
1098configuration file.
1099.Pp
1100The
1101.Ar target-session
1102rules for
1103.Ic attach-session
1104are slightly adjusted: if
1105.Nm
1106needs to select the most recently used session, it will prefer the most
1107recently used
1108.Em unattached
1109session.
1110.Pp
1111.Fl c
1112will set the session working directory (used for new windows) to
1113.Ar working-directory .
1114.Pp
1115If
1116.Fl E
1117is used, the
1118.Ic update-environment
1119option will not be applied.
1120.Tg detach
1121.It Xo Ic detach-client
1122.Op Fl aP
1123.Op Fl E Ar shell-command
1124.Op Fl s Ar target-session
1125.Op Fl t Ar target-client
1126.Xc
1127.D1 Pq alias: Ic detach
1128Detach the current client if bound to a key, the client specified with
1129.Fl t ,
1130or all clients currently attached to the session specified by
1131.Fl s .
1132The
1133.Fl a
1134option kills all but the client given with
1135.Fl t .
1136If
1137.Fl P
1138is given, send
1139.Dv SIGHUP
1140to the parent process of the client, typically causing it
1141to exit.
1142With
1143.Fl E ,
1144run
1145.Ar shell-command
1146to replace the client.
1147.Tg has
1148.It Ic has-session Op Fl t Ar target-session
1149.D1 Pq alias: Ic has
1150Report an error and exit with 1 if the specified session does not exist.
1151If it does exist, exit with 0.
1152.It Ic kill-server
1153Kill the
1154.Nm
1155server and clients and destroy all sessions.
1156.It Xo Ic kill-session
1157.Op Fl aC
1158.Op Fl t Ar target-session
1159.Xc
1160Destroy the given session, closing any windows linked to it and no other
1161sessions, and detaching all clients attached to it.
1162If
1163.Fl a
1164is given, all sessions but the specified one is killed.
1165The
1166.Fl C
1167flag clears alerts (bell, activity, or silence) in all windows linked to the
1168session.
1169.Tg lsc
1170.It Xo Ic list-clients
1171.Op Fl F Ar format
1172.Op Fl t Ar target-session
1173.Xc
1174.D1 Pq alias: Ic lsc
1175List all clients attached to the server.
1176For the meaning of the
1177.Fl F
1178flag, see the
1179.Sx FORMATS
1180section.
1181If
1182.Ar target-session
1183is specified, list only clients connected to that session.
1184.Tg lscm
1185.It Xo Ic list-commands
1186.Op Fl F Ar format
1187.Op Ar command
1188.Xc
1189.D1 Pq alias: Ic lscm
1190List the syntax of
1191.Ar command
1192or - if omitted - of all commands supported by
1193.Nm .
1194.Tg ls
1195.It Xo Ic list-sessions
1196.Op Fl F Ar format
1197.Op Fl f Ar filter
1198.Xc
1199.D1 Pq alias: Ic ls
1200List all sessions managed by the server.
1201.Fl F
1202specifies the format of each line and
1203.Fl f
1204a filter.
1205Only sessions for which the filter is true are shown.
1206See the
1207.Sx FORMATS
1208section.
1209.Tg lockc
1210.It Ic lock-client Op Fl t Ar target-client
1211.D1 Pq alias: Ic lockc
1212Lock
1213.Ar target-client ,
1214see the
1215.Ic lock-server
1216command.
1217.Tg locks
1218.It Ic lock-session Op Fl t Ar target-session
1219.D1 Pq alias: Ic locks
1220Lock all clients attached to
1221.Ar target-session .
1222.Tg new
1223.It Xo Ic new-session
1224.Op Fl AdDEPX
1225.Op Fl c Ar start-directory
1226.Op Fl e Ar environment
1227.Op Fl f Ar flags
1228.Op Fl F Ar format
1229.Op Fl n Ar window-name
1230.Op Fl s Ar session-name
1231.Op Fl t Ar group-name
1232.Op Fl x Ar width
1233.Op Fl y Ar height
1234.Op Ar shell-command
1235.Xc
1236.D1 Pq alias: Ic new
1237Create a new session with name
1238.Ar session-name .
1239.Pp
1240The new session is attached to the current terminal unless
1241.Fl d
1242is given.
1243.Ar window-name
1244and
1245.Ar shell-command
1246are the name of and shell command to execute in the initial window.
1247With
1248.Fl d ,
1249the initial size comes from the global
1250.Ic default-size
1251option;
1252.Fl x
1253and
1254.Fl y
1255can be used to specify a different size.
1256.Ql -
1257uses the size of the current client if any.
1258If
1259.Fl x
1260or
1261.Fl y
1262is given, the
1263.Ic default-size
1264option is set for the session.
1265.Fl f
1266sets a comma-separated list of client flags (see
1267.Ic attach-session ) .
1268.Pp
1269If run from a terminal, any
1270.Xr termios 4
1271special characters are saved and used for new windows in the new session.
1272.Pp
1273The
1274.Fl A
1275flag makes
1276.Ic new-session
1277behave like
1278.Ic attach-session
1279if
1280.Ar session-name
1281already exists; in this case,
1282.Fl D
1283behaves like
1284.Fl d
1285to
1286.Ic attach-session ,
1287and
1288.Fl X
1289behaves like
1290.Fl x
1291to
1292.Ic attach-session .
1293.Pp
1294If
1295.Fl t
1296is given, it specifies a
1297.Ic session group .
1298Sessions in the same group share the same set of windows - new windows are
1299linked to all sessions in the group and any windows closed removed from all
1300sessions.
1301The current and previous window and any session options remain independent and
1302any session in a group may be killed without affecting the others.
1303The
1304.Ar group-name
1305argument may be:
1306.Bl -enum -width Ds
1307.It
1308the name of an existing group, in which case the new session is added to that
1309group;
1310.It
1311the name of an existing session - the new session is added to the same group
1312as that session, creating a new group if necessary;
1313.It
1314the name for a new group containing only the new session.
1315.El
1316.Pp
1317.Fl n
1318and
1319.Ar shell-command
1320are invalid if
1321.Fl t
1322is used.
1323.Pp
1324The
1325.Fl P
1326option prints information about the new session after it has been created.
1327By default, it uses the format
1328.Ql #{session_name}:\&
1329but a different format may be specified with
1330.Fl F .
1331.Pp
1332If
1333.Fl E
1334is used, the
1335.Ic update-environment
1336option will not be applied.
1337.Fl e
1338takes the form
1339.Ql VARIABLE=value
1340and sets an environment variable for the newly created session; it may be
1341specified multiple times.
1342.Tg refresh
1343.It Xo Ic refresh-client
1344.Op Fl cDLRSU
1345.Op Fl A Ar pane:state
1346.Op Fl B Ar name:what:format
1347.Op Fl C Ar size
1348.Op Fl f Ar flags
1349.Op Fl l Op Ar target-pane
1350.Op Fl t Ar target-client
1351.Op Ar adjustment
1352.Xc
1353.D1 Pq alias: Ic refresh
1354Refresh the current client if bound to a key, or a single client if one is given
1355with
1356.Fl t .
1357If
1358.Fl S
1359is specified, only update the client's status line.
1360.Pp
1361The
1362.Fl U ,
1363.Fl D ,
1364.Fl L
1365.Fl R ,
1366and
1367.Fl c
1368flags allow the visible portion of a window which is larger than the client
1369to be changed.
1370.Fl U
1371moves the visible part up by
1372.Ar adjustment
1373rows and
1374.Fl D
1375down,
1376.Fl L
1377left by
1378.Ar adjustment
1379columns and
1380.Fl R
1381right.
1382.Fl c
1383returns to tracking the cursor automatically.
1384If
1385.Ar adjustment
1386is omitted, 1 is used.
1387Note that the visible position is a property of the client not of the
1388window, changing the current window in the attached session will reset
1389it.
1390.Pp
1391.Fl C
1392sets the width and height of a control mode client or of a window for a
1393control mode client,
1394.Ar size
1395must be one of
1396.Ql widthxheight
1397or
1398.Ql window ID:widthxheight ,
1399for example
1400.Ql 80x24
1401or
1402.Ql @0:80x24 .
1403.Fl A
1404allows a control mode client to trigger actions on a pane.
1405The argument is a pane ID (with leading
1406.Ql % ) ,
1407a colon, then one of
1408.Ql on ,
1409.Ql off ,
1410.Ql continue
1411or
1412.Ql pause .
1413If
1414.Ql off ,
1415.Nm
1416will not send output from the pane to the client and if all clients have turned
1417the pane off, will stop reading from the pane.
1418If
1419.Ql continue ,
1420.Nm
1421will return to sending output to the pane if it was paused (manually or with the
1422.Ar pause-after
1423flag).
1424If
1425.Ql pause ,
1426.Nm
1427will pause the pane.
1428.Fl A
1429may be given multiple times for different panes.
1430.Pp
1431.Fl B
1432sets a subscription to a format for a control mode client.
1433The argument is split into three items by colons:
1434.Ar name
1435is a name for the subscription;
1436.Ar what
1437is a type of item to subscribe to;
1438.Ar format
1439is the format.
1440After a subscription is added, changes to the format are reported with the
1441.Ic %subscription-changed
1442notification, at most once a second.
1443If only the name is given, the subscription is removed.
1444.Ar what
1445may be empty to check the format only for the attached session, or one of:
1446a pane ID such as
1447.Ql %0 ;
1448.Ql %*
1449for all panes in the attached session;
1450a window ID such as
1451.Ql @0 ;
1452or
1453.Ql @*
1454for all windows in the attached session.
1455.Pp
1456.Fl f
1457sets a comma-separated list of client flags, see
1458.Ic attach-session .
1459.Pp
1460.Fl l
1461requests the clipboard from the client using the
1462.Xr xterm 1
1463escape sequence.
1464If
1465Ar target-pane
1466is given, the clipboard is sent (in encoded form), otherwise it is stored in a
1467new paste buffer.
1468.Pp
1469.Fl L ,
1470.Fl R ,
1471.Fl U
1472and
1473.Fl D
1474move the visible portion of the window left, right, up or down
1475by
1476.Ar adjustment ,
1477if the window is larger than the client.
1478.Fl c
1479resets so that the position follows the cursor.
1480See the
1481.Ic window-size
1482option.
1483.Tg rename
1484.It Xo Ic rename-session
1485.Op Fl t Ar target-session
1486.Ar new-name
1487.Xc
1488.D1 Pq alias: Ic rename
1489Rename the session to
1490.Ar new-name .
1491.It Xo Ic server-access
1492.Op Fl adlrw
1493.Op Ar user
1494.Xc
1495Change the access or read/write permission of
1496.Ar user .
1497The user running the
1498.Nm
1499server (its owner) and the root user cannot be changed and are always
1500permitted access.
1501.Pp
1502.Fl a
1503and
1504.Fl d
1505are used to give or revoke access for the specified user.
1506If the user is already attached, the
1507.Fl d
1508flag causes their clients to be detached.
1509.Pp
1510.Fl r
1511and
1512.Fl w
1513change the permissions for
1514.Ar user :
1515.Fl r
1516makes their clients read-only and
1517.Fl w
1518writable.
1519.Fl l
1520lists current access permissions.
1521.Pp
1522By default, the access list is empty and
1523.Nm
1524creates sockets with file system permissions preventing access by any user
1525other than the owner (and root).
1526These permissions must be changed manually.
1527Great care should be taken not to allow access to untrusted users even
1528read-only.
1529.Tg showmsgs
1530.It Xo Ic show-messages
1531.Op Fl JT
1532.Op Fl t Ar target-client
1533.Xc
1534.D1 Pq alias: Ic showmsgs
1535Show server messages or information.
1536Messages are stored, up to a maximum of the limit set by the
1537.Ar message-limit
1538server option.
1539.Fl J
1540and
1541.Fl T
1542show debugging information about jobs and terminals.
1543.Tg source
1544.It Xo Ic source-file
1545.Op Fl Fnqv
1546.Ar path
1547.Ar ...
1548.Xc
1549.D1 Pq alias: Ic source
1550Execute commands from one or more files specified by
1551.Ar path
1552(which may be
1553.Xr glob 7
1554patterns).
1555If
1556.Fl F
1557is present, then
1558.Ar path
1559is expanded as a format.
1560If
1561.Fl q
1562is given, no error will be returned if
1563.Ar path
1564does not exist.
1565With
1566.Fl n ,
1567the file is parsed but no commands are executed.
1568.Fl v
1569shows the parsed commands and line numbers if possible.
1570.Tg start
1571.It Ic start-server
1572.D1 Pq alias: Ic start
1573Start the
1574.Nm
1575server, if not already running, without creating any sessions.
1576.Pp
1577Note that as by default the
1578.Nm
1579server will exit with no sessions, this is only useful if a session is created in
1580.Pa ~/.tmux.conf ,
1581.Ic exit-empty
1582is turned off, or another command is run as part of the same command sequence.
1583For example:
1584.Bd -literal -offset indent
1585$ tmux start \\; show -g
1586.Ed
1587.Tg suspendc
1588.It Xo Ic suspend-client
1589.Op Fl t Ar target-client
1590.Xc
1591.D1 Pq alias: Ic suspendc
1592Suspend a client by sending
1593.Dv SIGTSTP
1594(tty stop).
1595.Tg switchc
1596.It Xo Ic switch-client
1597.Op Fl ElnprZ
1598.Op Fl c Ar target-client
1599.Op Fl t Ar target-session
1600.Op Fl T Ar key-table
1601.Xc
1602.D1 Pq alias: Ic switchc
1603Switch the current session for client
1604.Ar target-client
1605to
1606.Ar target-session .
1607As a special case,
1608.Fl t
1609may refer to a pane (a target that contains
1610.Ql \&: ,
1611.Ql \&.
1612or
1613.Ql % ) ,
1614to change session, window and pane.
1615In that case,
1616.Fl Z
1617keeps the window zoomed if it was zoomed.
1618If
1619.Fl l ,
1620.Fl n
1621or
1622.Fl p
1623is used, the client is moved to the last, next or previous session
1624respectively.
1625.Fl r
1626toggles the client
1627.Ic read-only
1628and
1629.Ic ignore-size
1630flags (see the
1631.Ic attach-session
1632command).
1633.Pp
1634If
1635.Fl E
1636is used,
1637.Ic update-environment
1638option will not be applied.
1639.Pp
1640.Fl T
1641sets the client's key table; the next key from the client will be interpreted
1642from
1643.Ar key-table .
1644This may be used to configure multiple prefix keys, or to bind commands to
1645sequences of keys.
1646For example, to make typing
1647.Ql abc
1648run the
1649.Ic list-keys
1650command:
1651.Bd -literal -offset indent
1652bind-key -Ttable2 c list-keys
1653bind-key -Ttable1 b switch-client -Ttable2
1654bind-key -Troot   a switch-client -Ttable1
1655.Ed
1656.El
1657.Sh WINDOWS AND PANES
1658Each window displayed by
1659.Nm
1660may be split into one or more
1661.Em panes ;
1662each pane takes up a certain area of the display and is a separate terminal.
1663A window may be split into panes using the
1664.Ic split-window
1665command.
1666Windows may be split horizontally (with the
1667.Fl h
1668flag) or vertically.
1669Panes may be resized with the
1670.Ic resize-pane
1671command (bound to
1672.Ql C-Up ,
1673.Ql C-Down
1674.Ql C-Left
1675and
1676.Ql C-Right
1677by default), the current pane may be changed with the
1678.Ic select-pane
1679command and the
1680.Ic rotate-window
1681and
1682.Ic swap-pane
1683commands may be used to swap panes without changing their position.
1684Panes are numbered beginning from zero in the order they are created.
1685.Pp
1686By default, a
1687.Nm
1688pane permits direct access to the terminal contained in the pane.
1689A pane may also be put into one of several modes:
1690.Bl -dash -offset indent
1691.It
1692Copy mode, which permits a section of a window or its
1693history to be copied to a
1694.Em paste buffer
1695for later insertion into another window.
1696This mode is entered with the
1697.Ic copy-mode
1698command, bound to
1699.Ql \&[
1700by default.
1701Copied text can be pasted with the
1702.Ic paste-buffer
1703command, bound to
1704.Ql \&] .
1705.It
1706View mode, which is like copy mode but is entered when a command that produces
1707output, such as
1708.Ic list-keys ,
1709is executed from a key binding.
1710.It
1711Choose mode, which allows an item to be chosen from a list.
1712This may be a client, a session or window or pane, or a buffer.
1713This mode is entered with the
1714.Ic choose-buffer ,
1715.Ic choose-client
1716and
1717.Ic choose-tree
1718commands.
1719.El
1720.Pp
1721In copy mode an indicator is displayed in the top-right corner of the pane with
1722the current position and the number of lines in the history.
1723.Pp
1724Commands are sent to copy mode using the
1725.Fl X
1726flag to the
1727.Ic send-keys
1728command.
1729When a key is pressed, copy mode automatically uses one of two key tables,
1730depending on the
1731.Ic mode-keys
1732option:
1733.Ic copy-mode
1734for emacs, or
1735.Ic copy-mode-vi
1736for vi.
1737Key tables may be viewed with the
1738.Ic list-keys
1739command.
1740.Pp
1741The following commands are supported in copy mode:
1742.Bl -column "CommandXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent
1743.It Sy "Command" Ta Sy "vi" Ta Sy "emacs"
1744.It Li "append-selection" Ta "" Ta ""
1745.It Li "append-selection-and-cancel" Ta "A" Ta ""
1746.It Li "back-to-indentation" Ta "^" Ta "M-m"
1747.It Li "begin-selection" Ta "Space" Ta "C-Space"
1748.It Li "bottom-line" Ta "L" Ta ""
1749.It Li "cancel" Ta "q" Ta "Escape"
1750.It Li "clear-selection" Ta "Escape" Ta "C-g"
1751.It Li "copy-end-of-line [<prefix>]" Ta "" Ta ""
1752.It Li "copy-end-of-line-and-cancel [<prefix>]" Ta "" Ta ""
1753.It Li "copy-pipe-end-of-line [<command>] [<prefix>]" Ta "" Ta ""
1754.It Li "copy-pipe-end-of-line-and-cancel [<command>] [<prefix>]" Ta "D" Ta "C-k"
1755.It Li "copy-line [<prefix>]" Ta "" Ta ""
1756.It Li "copy-line-and-cancel [<prefix>]" Ta "" Ta ""
1757.It Li "copy-pipe-line [<command>] [<prefix>]" Ta "" Ta ""
1758.It Li "copy-pipe-line-and-cancel [<command>] [<prefix>]" Ta "" Ta ""
1759.It Li "copy-pipe [<command>] [<prefix>]" Ta "" Ta ""
1760.It Li "copy-pipe-no-clear [<command>] [<prefix>]" Ta "" Ta ""
1761.It Li "copy-pipe-and-cancel [<command>] [<prefix>]" Ta "" Ta ""
1762.It Li "copy-selection [<prefix>]" Ta "" Ta ""
1763.It Li "copy-selection-no-clear [<prefix>]" Ta "" Ta ""
1764.It Li "copy-selection-and-cancel [<prefix>]" Ta "Enter" Ta "M-w"
1765.It Li "cursor-down" Ta "j" Ta "Down"
1766.It Li "cursor-down-and-cancel" Ta "" Ta ""
1767.It Li "cursor-left" Ta "h" Ta "Left"
1768.It Li "cursor-right" Ta "l" Ta "Right"
1769.It Li "cursor-up" Ta "k" Ta "Up"
1770.It Li "end-of-line" Ta "$" Ta "C-e"
1771.It Li "goto-line <line>" Ta ":" Ta "g"
1772.It Li "halfpage-down" Ta "C-d" Ta "M-Down"
1773.It Li "halfpage-down-and-cancel" Ta "" Ta ""
1774.It Li "halfpage-up" Ta "C-u" Ta "M-Up"
1775.It Li "history-bottom" Ta "G" Ta "M->"
1776.It Li "history-top" Ta "g" Ta "M-<"
1777.It Li "jump-again" Ta ";" Ta ";"
1778.It Li "jump-backward <to>" Ta "F" Ta "F"
1779.It Li "jump-forward <to>" Ta "f" Ta "f"
1780.It Li "jump-reverse" Ta "," Ta ","
1781.It Li "jump-to-backward <to>" Ta "T" Ta ""
1782.It Li "jump-to-forward <to>" Ta "t" Ta ""
1783.It Li "jump-to-mark" Ta "M-x" Ta "M-x"
1784.It Li "middle-line" Ta "M" Ta "M-r"
1785.It Li "next-matching-bracket" Ta "%" Ta "M-C-f"
1786.It Li "next-paragraph" Ta "}" Ta "M-}"
1787.It Li "next-space" Ta "W" Ta ""
1788.It Li "next-space-end" Ta "E" Ta ""
1789.It Li "next-word" Ta "w" Ta ""
1790.It Li "next-word-end" Ta "e" Ta "M-f"
1791.It Li "other-end" Ta "o" Ta ""
1792.It Li "page-down" Ta "C-f" Ta "PageDown"
1793.It Li "page-down-and-cancel" Ta "" Ta ""
1794.It Li "page-up" Ta "C-b" Ta "PageUp"
1795.It Li "pipe [<command>] [<prefix>]" Ta "" Ta ""
1796.It Li "pipe-no-clear [<command>] [<prefix>]" Ta "" Ta ""
1797.It Li "pipe-and-cancel [<command>] [<prefix>]" Ta "" Ta ""
1798.It Li "previous-matching-bracket" Ta "" Ta "M-C-b"
1799.It Li "previous-paragraph" Ta "{" Ta "M-{"
1800.It Li "previous-space" Ta "B" Ta ""
1801.It Li "previous-word" Ta "b" Ta "M-b"
1802.It Li "rectangle-on" Ta "" Ta ""
1803.It Li "rectangle-off" Ta "" Ta ""
1804.It Li "rectangle-toggle" Ta "v" Ta "R"
1805.It Li "refresh-from-pane" Ta "r" Ta "r"
1806.It Li "scroll-down" Ta "C-e" Ta "C-Down"
1807.It Li "scroll-down-and-cancel" Ta "" Ta ""
1808.It Li "scroll-up" Ta "C-y" Ta "C-Up"
1809.It Li "search-again" Ta "n" Ta "n"
1810.It Li "search-backward <for>" Ta "?" Ta ""
1811.It Li "search-backward-incremental <for>" Ta "" Ta "C-r"
1812.It Li "search-backward-text <for>" Ta "" Ta ""
1813.It Li "search-forward <for>" Ta "/" Ta ""
1814.It Li "search-forward-incremental <for>" Ta "" Ta "C-s"
1815.It Li "search-forward-text <for>" Ta "" Ta ""
1816.It Li "search-reverse" Ta "N" Ta "N"
1817.It Li "select-line" Ta "V" Ta ""
1818.It Li "select-word" Ta "" Ta ""
1819.It Li "set-mark" Ta "X" Ta "X"
1820.It Li "start-of-line" Ta "0" Ta "C-a"
1821.It Li "stop-selection" Ta "" Ta ""
1822.It Li "toggle-position" Ta "P" Ta "P"
1823.It Li "top-line" Ta "H" Ta "M-R"
1824.El
1825.Pp
1826The search commands come in several varieties:
1827.Ql search-forward
1828and
1829.Ql search-backward
1830search for a regular expression;
1831the
1832.Ql -text
1833variants search for a plain text string rather than a regular expression;
1834.Ql -incremental
1835perform an incremental search and expect to be used with the
1836.Fl i
1837flag to the
1838.Ic command-prompt
1839command.
1840.Ql search-again
1841repeats the last search and
1842.Ql search-reverse
1843does the same but reverses the direction (forward becomes backward and backward
1844becomes forward).
1845.Pp
1846Copy commands may take an optional buffer prefix argument which is used
1847to generate the buffer name (the default is
1848.Ql buffer
1849so buffers are named
1850.Ql buffer0 ,
1851.Ql buffer1
1852and so on).
1853Pipe commands take a command argument which is the command to which the
1854selected text is piped.
1855.Ql copy-pipe
1856variants also copy the selection.
1857The
1858.Ql -and-cancel
1859variants of some commands exit copy mode after they have completed (for copy
1860commands) or when the cursor reaches the bottom (for scrolling commands).
1861.Ql -no-clear
1862variants do not clear the selection.
1863.Pp
1864The next and previous word keys skip over whitespace and treat consecutive
1865runs of either word separators or other letters as words.
1866Word separators can be customized with the
1867.Em word-separators
1868session option.
1869Next word moves to the start of the next word, next word end to the end of the
1870next word and previous word to the start of the previous word.
1871The three next and previous space keys work similarly but use a space alone as
1872the word separator.
1873Setting
1874.Em word-separators
1875to the empty string makes next/previous word equivalent to next/previous space.
1876.Pp
1877The jump commands enable quick movement within a line.
1878For instance, typing
1879.Ql f
1880followed by
1881.Ql /
1882will move the cursor to the next
1883.Ql /
1884character on the current line.
1885A
1886.Ql \&;
1887will then jump to the next occurrence.
1888.Pp
1889Commands in copy mode may be prefaced by an optional repeat count.
1890With vi key bindings, a prefix is entered using the number keys; with
1891emacs, the Alt (meta) key and a number begins prefix entry.
1892.Pp
1893The synopsis for the
1894.Ic copy-mode
1895command is:
1896.Bl -tag -width Ds
1897.It Xo Ic copy-mode
1898.Op Fl eHMqu
1899.Op Fl s Ar src-pane
1900.Op Fl t Ar target-pane
1901.Xc
1902Enter copy mode.
1903The
1904.Fl u
1905option scrolls one page up.
1906.Fl M
1907begins a mouse drag (only valid if bound to a mouse key binding, see
1908.Sx MOUSE SUPPORT ) .
1909.Fl H
1910hides the position indicator in the top right.
1911.Fl q
1912cancels copy mode and any other modes.
1913.Fl s
1914copies from
1915.Ar src-pane
1916instead of
1917.Ar target-pane .
1918.Pp
1919.Fl e
1920specifies that scrolling to the bottom of the history (to the visible screen)
1921should exit copy mode.
1922While in copy mode, pressing a key other than those used for scrolling will
1923disable this behaviour.
1924This is intended to allow fast scrolling through a pane's history, for
1925example with:
1926.Bd -literal -offset indent
1927bind PageUp copy-mode -eu
1928.Ed
1929.El
1930.Pp
1931A number of preset arrangements of panes are available, these are called layouts.
1932These may be selected with the
1933.Ic select-layout
1934command or cycled with
1935.Ic next-layout
1936(bound to
1937.Ql Space
1938by default); once a layout is chosen, panes within it may be moved and resized
1939as normal.
1940.Pp
1941The following layouts are supported:
1942.Bl -tag -width Ds
1943.It Ic even-horizontal
1944Panes are spread out evenly from left to right across the window.
1945.It Ic even-vertical
1946Panes are spread evenly from top to bottom.
1947.It Ic main-horizontal
1948A large (main) pane is shown at the top of the window and the remaining panes
1949are spread from left to right in the leftover space at the bottom.
1950Use the
1951.Em main-pane-height
1952window option to specify the height of the top pane.
1953.It Ic main-vertical
1954Similar to
1955.Ic main-horizontal
1956but the large pane is placed on the left and the others spread from top to
1957bottom along the right.
1958See the
1959.Em main-pane-width
1960window option.
1961.It Ic tiled
1962Panes are spread out as evenly as possible over the window in both rows and
1963columns.
1964.El
1965.Pp
1966In addition,
1967.Ic select-layout
1968may be used to apply a previously used layout - the
1969.Ic list-windows
1970command displays the layout of each window in a form suitable for use with
1971.Ic select-layout .
1972For example:
1973.Bd -literal -offset indent
1974$ tmux list-windows
19750: ksh [159x48]
1976    layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0}
1977$ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0}
1978.Ed
1979.Pp
1980.Nm
1981automatically adjusts the size of the layout for the current window size.
1982Note that a layout cannot be applied to a window with more panes than that
1983from which the layout was originally defined.
1984.Pp
1985Commands related to windows and panes are as follows:
1986.Bl -tag -width Ds
1987.Tg breakp
1988.It Xo Ic break-pane
1989.Op Fl abdP
1990.Op Fl F Ar format
1991.Op Fl n Ar window-name
1992.Op Fl s Ar src-pane
1993.Op Fl t Ar dst-window
1994.Xc
1995.D1 Pq alias: Ic breakp
1996Break
1997.Ar src-pane
1998off from its containing window to make it the only pane in
1999.Ar dst-window .
2000With
2001.Fl a
2002or
2003.Fl b ,
2004the window is moved to the next index after or before (existing windows are
2005moved if necessary).
2006If
2007.Fl d
2008is given, the new window does not become the current window.
2009The
2010.Fl P
2011option prints information about the new window after it has been created.
2012By default, it uses the format
2013.Ql #{session_name}:#{window_index}.#{pane_index}
2014but a different format may be specified with
2015.Fl F .
2016.Tg capturep
2017.It Xo Ic capture-pane
2018.Op Fl aepPqCJN
2019.Op Fl b Ar buffer-name
2020.Op Fl E Ar end-line
2021.Op Fl S Ar start-line
2022.Op Fl t Ar target-pane
2023.Xc
2024.D1 Pq alias: Ic capturep
2025Capture the contents of a pane.
2026If
2027.Fl p
2028is given, the output goes to stdout, otherwise to the buffer specified with
2029.Fl b
2030or a new buffer if omitted.
2031If
2032.Fl a
2033is given, the alternate screen is used, and the history is not accessible.
2034If no alternate screen exists, an error will be returned unless
2035.Fl q
2036is given.
2037If
2038.Fl e
2039is given, the output includes escape sequences for text and background
2040attributes.
2041.Fl C
2042also escapes non-printable characters as octal \exxx.
2043.Fl N
2044preserves trailing spaces at each line's end and
2045.Fl J
2046preserves trailing spaces and joins any wrapped lines.
2047.Fl P
2048captures only any output that the pane has received that is the beginning of an
2049as-yet incomplete escape sequence.
2050.Pp
2051.Fl S
2052and
2053.Fl E
2054specify the starting and ending line numbers, zero is the first line of the
2055visible pane and negative numbers are lines in the history.
2056.Ql -
2057to
2058.Fl S
2059is the start of the history and to
2060.Fl E
2061the end of the visible pane.
2062The default is to capture only the visible contents of the pane.
2063.It Xo
2064.Ic choose-client
2065.Op Fl NrZ
2066.Op Fl F Ar format
2067.Op Fl f Ar filter
2068.Op Fl K Ar key-format
2069.Op Fl O Ar sort-order
2070.Op Fl t Ar target-pane
2071.Op Ar template
2072.Xc
2073Put a pane into client mode, allowing a client to be selected interactively from
2074a list.
2075Each client is shown on one line.
2076A shortcut key is shown on the left in brackets allowing for immediate choice,
2077or the list may be navigated and an item chosen or otherwise manipulated using
2078the keys below.
2079.Fl Z
2080zooms the pane.
2081The following keys may be used in client mode:
2082.Bl -column "Key" "Function" -offset indent
2083.It Sy "Key" Ta Sy "Function"
2084.It Li "Enter" Ta "Choose selected client"
2085.It Li "Up" Ta "Select previous client"
2086.It Li "Down" Ta "Select next client"
2087.It Li "C-s" Ta "Search by name"
2088.It Li "n" Ta "Repeat last search"
2089.It Li "t" Ta "Toggle if client is tagged"
2090.It Li "T" Ta "Tag no clients"
2091.It Li "C-t" Ta "Tag all clients"
2092.It Li "d" Ta "Detach selected client"
2093.It Li "D" Ta "Detach tagged clients"
2094.It Li "x" Ta "Detach and HUP selected client"
2095.It Li "X" Ta "Detach and HUP tagged clients"
2096.It Li "z" Ta "Suspend selected client"
2097.It Li "Z" Ta "Suspend tagged clients"
2098.It Li "f" Ta "Enter a format to filter items"
2099.It Li "O" Ta "Change sort field"
2100.It Li "r" Ta "Reverse sort order"
2101.It Li "v" Ta "Toggle preview"
2102.It Li "q" Ta "Exit mode"
2103.El
2104.Pp
2105After a client is chosen,
2106.Ql %%
2107is replaced by the client name in
2108.Ar template
2109and the result executed as a command.
2110If
2111.Ar template
2112is not given, "detach-client -t '%%'" is used.
2113.Pp
2114.Fl O
2115specifies the initial sort field: one of
2116.Ql name ,
2117.Ql size ,
2118.Ql creation ,
2119or
2120.Ql activity .
2121.Fl r
2122reverses the sort order.
2123.Fl f
2124specifies an initial filter: the filter is a format - if it evaluates to zero,
2125the item in the list is not shown, otherwise it is shown.
2126If a filter would lead to an empty list, it is ignored.
2127.Fl F
2128specifies the format for each item in the list and
2129.Fl K
2130a format for each shortcut key; both are evaluated once for each line.
2131.Fl N
2132starts without the preview.
2133This command works only if at least one client is attached.
2134.It Xo
2135.Ic choose-tree
2136.Op Fl GNrswZ
2137.Op Fl F Ar format
2138.Op Fl f Ar filter
2139.Op Fl K Ar key-format
2140.Op Fl O Ar sort-order
2141.Op Fl t Ar target-pane
2142.Op Ar template
2143.Xc
2144Put a pane into tree mode, where a session, window or pane may be chosen
2145interactively from a tree.
2146Each session, window or pane is shown on one line.
2147A shortcut key is shown on the left in brackets allowing for immediate choice,
2148or the tree may be navigated and an item chosen or otherwise manipulated using
2149the keys below.
2150.Fl s
2151starts with sessions collapsed and
2152.Fl w
2153with windows collapsed.
2154.Fl Z
2155zooms the pane.
2156The following keys may be used in tree mode:
2157.Bl -column "Key" "Function" -offset indent
2158.It Sy "Key" Ta Sy "Function"
2159.It Li "Enter" Ta "Choose selected item"
2160.It Li "Up" Ta "Select previous item"
2161.It Li "Down" Ta "Select next item"
2162.It Li "+" Ta "Expand selected item"
2163.It Li "-" Ta "Collapse selected item"
2164.It Li "M-+" Ta "Expand all items"
2165.It Li "M--" Ta "Collapse all items"
2166.It Li "x" Ta "Kill selected item"
2167.It Li "X" Ta "Kill tagged items"
2168.It Li "<" Ta "Scroll list of previews left"
2169.It Li ">" Ta "Scroll list of previews right"
2170.It Li "C-s" Ta "Search by name"
2171.It Li "m" Ta "Set the marked pane"
2172.It Li "M" Ta "Clear the marked pane"
2173.It Li "n" Ta "Repeat last search"
2174.It Li "t" Ta "Toggle if item is tagged"
2175.It Li "T" Ta "Tag no items"
2176.It Li "C-t" Ta "Tag all items"
2177.It Li "\&:" Ta "Run a command for each tagged item"
2178.It Li "f" Ta "Enter a format to filter items"
2179.It Li "H" Ta "Jump to the starting pane"
2180.It Li "O" Ta "Change sort field"
2181.It Li "r" Ta "Reverse sort order"
2182.It Li "v" Ta "Toggle preview"
2183.It Li "q" Ta "Exit mode"
2184.El
2185.Pp
2186After a session, window or pane is chosen, the first instance of
2187.Ql %%
2188and all instances of
2189.Ql %1
2190are replaced by the target in
2191.Ar template
2192and the result executed as a command.
2193If
2194.Ar template
2195is not given, "switch-client -t '%%'" is used.
2196.Pp
2197.Fl O
2198specifies the initial sort field: one of
2199.Ql index ,
2200.Ql name ,
2201or
2202.Ql time .
2203.Fl r
2204reverses the sort order.
2205.Fl f
2206specifies an initial filter: the filter is a format - if it evaluates to zero,
2207the item in the list is not shown, otherwise it is shown.
2208If a filter would lead to an empty list, it is ignored.
2209.Fl F
2210specifies the format for each item in the tree and
2211.Fl K
2212a format for each shortcut key; both are evaluated once for each line.
2213.Fl N
2214starts without the preview.
2215.Fl G
2216includes all sessions in any session groups in the tree rather than only the
2217first.
2218This command works only if at least one client is attached.
2219.It Xo
2220.Ic customize-mode
2221.Op Fl NZ
2222.Op Fl F Ar format
2223.Op Fl f Ar filter
2224.Op Fl t Ar target-pane
2225.Op Ar template
2226.Xc
2227Put a pane into customize mode, where options and key bindings may be browsed
2228and modified from a list.
2229Option values in the list are shown for the active pane in the current window.
2230.Fl Z
2231zooms the pane.
2232The following keys may be used in customize mode:
2233.Bl -column "Key" "Function" -offset indent
2234.It Sy "Key" Ta Sy "Function"
2235.It Li "Enter" Ta "Set pane, window, session or global option value"
2236.It Li "Up" Ta "Select previous item"
2237.It Li "Down" Ta "Select next item"
2238.It Li "+" Ta "Expand selected item"
2239.It Li "-" Ta "Collapse selected item"
2240.It Li "M-+" Ta "Expand all items"
2241.It Li "M--" Ta "Collapse all items"
2242.It Li "s" Ta "Set option value or key attribute"
2243.It Li "S" Ta "Set global option value"
2244.It Li "w" Ta "Set window option value, if option is for pane and window"
2245.It Li "d" Ta "Set an option or key to the default"
2246.It Li "D" Ta "Set tagged options and tagged keys to the default"
2247.It Li "u" Ta "Unset an option (set to default value if global) or unbind a key"
2248.It Li "U" Ta "Unset tagged options and unbind tagged keys"
2249.It Li "C-s" Ta "Search by name"
2250.It Li "n" Ta "Repeat last search"
2251.It Li "t" Ta "Toggle if item is tagged"
2252.It Li "T" Ta "Tag no items"
2253.It Li "C-t" Ta "Tag all items"
2254.It Li "f" Ta "Enter a format to filter items"
2255.It Li "v" Ta "Toggle option information"
2256.It Li "q" Ta "Exit mode"
2257.El
2258.Pp
2259.Fl f
2260specifies an initial filter: the filter is a format - if it evaluates to zero,
2261the item in the list is not shown, otherwise it is shown.
2262If a filter would lead to an empty list, it is ignored.
2263.Fl F
2264specifies the format for each item in the tree.
2265.Fl N
2266starts without the option information.
2267This command works only if at least one client is attached.
2268.It Xo
2269.Tg displayp
2270.Ic display-panes
2271.Op Fl bN
2272.Op Fl d Ar duration
2273.Op Fl t Ar target-client
2274.Op Ar template
2275.Xc
2276.D1 Pq alias: Ic displayp
2277Display a visible indicator of each pane shown by
2278.Ar target-client .
2279See the
2280.Ic display-panes-colour
2281and
2282.Ic display-panes-active-colour
2283session options.
2284The indicator is closed when a key is pressed (unless
2285.Fl N
2286is given) or
2287.Ar duration
2288milliseconds have passed.
2289If
2290.Fl d
2291is not given,
2292.Ic display-panes-time
2293is used.
2294A duration of zero means the indicator stays until a key is pressed.
2295While the indicator is on screen, a pane may be chosen with the
2296.Ql 0
2297to
2298.Ql 9
2299keys, which will cause
2300.Ar template
2301to be executed as a command with
2302.Ql %%
2303substituted by the pane ID.
2304The default
2305.Ar template
2306is "select-pane -t '%%'".
2307With
2308.Fl b ,
2309other commands are not blocked from running until the indicator is closed.
2310.Tg findw
2311.It Xo Ic find-window
2312.Op Fl iCNrTZ
2313.Op Fl t Ar target-pane
2314.Ar match-string
2315.Xc
2316.D1 Pq alias: Ic findw
2317Search for a
2318.Xr fnmatch 3
2319pattern or, with
2320.Fl r ,
2321regular expression
2322.Ar match-string
2323in window names, titles, and visible content (but not history).
2324The flags control matching behavior:
2325.Fl C
2326matches only visible window contents,
2327.Fl N
2328matches only the window name and
2329.Fl T
2330matches only the window title.
2331.Fl i
2332makes the search ignore case.
2333The default is
2334.Fl CNT .
2335.Fl Z
2336zooms the pane.
2337.Pp
2338This command works only if at least one client is attached.
2339.Tg joinp
2340.It Xo Ic join-pane
2341.Op Fl bdfhv
2342.Op Fl l Ar size
2343.Op Fl s Ar src-pane
2344.Op Fl t Ar dst-pane
2345.Xc
2346.D1 Pq alias: Ic joinp
2347Like
2348.Ic split-window ,
2349but instead of splitting
2350.Ar dst-pane
2351and creating a new pane, split it and move
2352.Ar src-pane
2353into the space.
2354This can be used to reverse
2355.Ic break-pane .
2356The
2357.Fl b
2358option causes
2359.Ar src-pane
2360to be joined to left of or above
2361.Ar dst-pane .
2362.Pp
2363If
2364.Fl s
2365is omitted and a marked pane is present (see
2366.Ic select-pane
2367.Fl m ) ,
2368the marked pane is used rather than the current pane.
2369.Tg killp
2370.It Xo Ic kill-pane
2371.Op Fl a
2372.Op Fl t Ar target-pane
2373.Xc
2374.D1 Pq alias: Ic killp
2375Destroy the given pane.
2376If no panes remain in the containing window, it is also destroyed.
2377The
2378.Fl a
2379option kills all but the pane given with
2380.Fl t .
2381.Tg killw
2382.It Xo Ic kill-window
2383.Op Fl a
2384.Op Fl t Ar target-window
2385.Xc
2386.D1 Pq alias: Ic killw
2387Kill the current window or the window at
2388.Ar target-window ,
2389removing it from any sessions to which it is linked.
2390The
2391.Fl a
2392option kills all but the window given with
2393.Fl t .
2394.Tg lastp
2395.It Xo Ic last-pane
2396.Op Fl deZ
2397.Op Fl t Ar target-window
2398.Xc
2399.D1 Pq alias: Ic lastp
2400Select the last (previously selected) pane.
2401.Fl Z
2402keeps the window zoomed if it was zoomed.
2403.Fl e
2404enables or
2405.Fl d
2406disables input to the pane.
2407.Tg last
2408.It Ic last-window Op Fl t Ar target-session
2409.D1 Pq alias: Ic last
2410Select the last (previously selected) window.
2411If no
2412.Ar target-session
2413is specified, select the last window of the current session.
2414.Tg link
2415.It Xo Ic link-window
2416.Op Fl abdk
2417.Op Fl s Ar src-window
2418.Op Fl t Ar dst-window
2419.Xc
2420.D1 Pq alias: Ic linkw
2421Link the window at
2422.Ar src-window
2423to the specified
2424.Ar dst-window .
2425If
2426.Ar dst-window
2427is specified and no such window exists, the
2428.Ar src-window
2429is linked there.
2430With
2431.Fl a
2432or
2433.Fl b
2434the window is moved to the next index after or before
2435.Ar dst-window
2436(existing windows are moved if necessary).
2437If
2438.Fl k
2439is given and
2440.Ar dst-window
2441exists, it is killed, otherwise an error is generated.
2442If
2443.Fl d
2444is given, the newly linked window is not selected.
2445.Tg lsp
2446.It Xo Ic list-panes
2447.Op Fl as
2448.Op Fl F Ar format
2449.Op Fl f Ar filter
2450.Op Fl t Ar target
2451.Xc
2452.D1 Pq alias: Ic lsp
2453If
2454.Fl a
2455is given,
2456.Ar target
2457is ignored and all panes on the server are listed.
2458If
2459.Fl s
2460is given,
2461.Ar target
2462is a session (or the current session).
2463If neither is given,
2464.Ar target
2465is a window (or the current window).
2466.Fl F
2467specifies the format of each line and
2468.Fl f
2469a filter.
2470Only panes for which the filter is true are shown.
2471See the
2472.Sx FORMATS
2473section.
2474.Tg lsw
2475.It Xo Ic list-windows
2476.Op Fl a
2477.Op Fl F Ar format
2478.Op Fl f Ar filter
2479.Op Fl t Ar target-session
2480.Xc
2481.D1 Pq alias: Ic lsw
2482If
2483.Fl a
2484is given, list all windows on the server.
2485Otherwise, list windows in the current session or in
2486.Ar target-session .
2487.Fl F
2488specifies the format of each line and
2489.Fl f
2490a filter.
2491Only windows for which the filter is true are shown.
2492See the
2493.Sx FORMATS
2494section.
2495.Tg movep
2496.It Xo Ic move-pane
2497.Op Fl bdfhv
2498.Op Fl l Ar size
2499.Op Fl s Ar src-pane
2500.Op Fl t Ar dst-pane
2501.Xc
2502.D1 Pq alias: Ic movep
2503Does the same as
2504.Ic join-pane .
2505.Tg movew
2506.It Xo Ic move-window
2507.Op Fl abrdk
2508.Op Fl s Ar src-window
2509.Op Fl t Ar dst-window
2510.Xc
2511.D1 Pq alias: Ic movew
2512This is similar to
2513.Ic link-window ,
2514except the window at
2515.Ar src-window
2516is moved to
2517.Ar dst-window .
2518With
2519.Fl r ,
2520all windows in the session are renumbered in sequential order, respecting
2521the
2522.Ic base-index
2523option.
2524.Tg neww
2525.It Xo Ic new-window
2526.Op Fl abdkPS
2527.Op Fl c Ar start-directory
2528.Op Fl e Ar environment
2529.Op Fl F Ar format
2530.Op Fl n Ar window-name
2531.Op Fl t Ar target-window
2532.Op Ar shell-command
2533.Xc
2534.D1 Pq alias: Ic neww
2535Create a new window.
2536With
2537.Fl a
2538or
2539.Fl b ,
2540the new window is inserted at the next index after or before the specified
2541.Ar target-window ,
2542moving windows up if necessary;
2543otherwise
2544.Ar target-window
2545is the new window location.
2546.Pp
2547If
2548.Fl d
2549is given, the session does not make the new window the current window.
2550.Ar target-window
2551represents the window to be created; if the target already exists an error is
2552shown, unless the
2553.Fl k
2554flag is used, in which case it is destroyed.
2555If
2556.Fl S
2557is given and a window named
2558.Ar window-name
2559already exists, it is selected (unless
2560.Fl d
2561is also given in which case the command does nothing).
2562.Pp
2563.Ar shell-command
2564is the command to execute.
2565If
2566.Ar shell-command
2567is not specified, the value of the
2568.Ic default-command
2569option is used.
2570.Fl c
2571specifies the working directory in which the new window is created.
2572.Pp
2573When the shell command completes, the window closes.
2574See the
2575.Ic remain-on-exit
2576option to change this behaviour.
2577.Pp
2578.Fl e
2579takes the form
2580.Ql VARIABLE=value
2581and sets an environment variable for the newly created window; it may be
2582specified multiple times.
2583.Pp
2584The
2585.Ev TERM
2586environment variable must be set to
2587.Ql screen
2588or
2589.Ql tmux
2590for all programs running
2591.Em inside
2592.Nm .
2593New windows will automatically have
2594.Ql TERM=screen
2595added to their environment, but care must be taken not to reset this in shell
2596start-up files or by the
2597.Fl e
2598option.
2599.Pp
2600The
2601.Fl P
2602option prints information about the new window after it has been created.
2603By default, it uses the format
2604.Ql #{session_name}:#{window_index}
2605but a different format may be specified with
2606.Fl F .
2607.Tg nextl
2608.It Ic next-layout Op Fl t Ar target-window
2609.D1 Pq alias: Ic nextl
2610Move a window to the next layout and rearrange the panes to fit.
2611.Tg next
2612.It Xo Ic next-window
2613.Op Fl a
2614.Op Fl t Ar target-session
2615.Xc
2616.D1 Pq alias: Ic next
2617Move to the next window in the session.
2618If
2619.Fl a
2620is used, move to the next window with an alert.
2621.Tg pipep
2622.It Xo Ic pipe-pane
2623.Op Fl IOo
2624.Op Fl t Ar target-pane
2625.Op Ar shell-command
2626.Xc
2627.D1 Pq alias: Ic pipep
2628Pipe output sent by the program in
2629.Ar target-pane
2630to a shell command or vice versa.
2631A pane may only be connected to one command at a time, any existing pipe is
2632closed before
2633.Ar shell-command
2634is executed.
2635The
2636.Ar shell-command
2637string may contain the special character sequences supported by the
2638.Ic status-left
2639option.
2640If no
2641.Ar shell-command
2642is given, the current pipe (if any) is closed.
2643.Pp
2644.Fl I
2645and
2646.Fl O
2647specify which of the
2648.Ar shell-command
2649output streams are connected to the pane:
2650with
2651.Fl I
2652stdout is connected (so anything
2653.Ar shell-command
2654prints is written to the pane as if it were typed);
2655with
2656.Fl O
2657stdin is connected (so any output in the pane is piped to
2658.Ar shell-command ) .
2659Both may be used together and if neither are specified,
2660.Fl O
2661is used.
2662.Pp
2663The
2664.Fl o
2665option only opens a new pipe if no previous pipe exists, allowing a pipe to
2666be toggled with a single key, for example:
2667.Bd -literal -offset indent
2668bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'
2669.Ed
2670.Tg prevl
2671.It Xo Ic previous-layout
2672.Op Fl t Ar target-window
2673.Xc
2674.D1 Pq alias: Ic prevl
2675Move to the previous layout in the session.
2676.Tg prev
2677.It Xo Ic previous-window
2678.Op Fl a
2679.Op Fl t Ar target-session
2680.Xc
2681.D1 Pq alias: Ic prev
2682Move to the previous window in the session.
2683With
2684.Fl a ,
2685move to the previous window with an alert.
2686.Tg renamew
2687.It Xo Ic rename-window
2688.Op Fl t Ar target-window
2689.Ar new-name
2690.Xc
2691.D1 Pq alias: Ic renamew
2692Rename the current window, or the window at
2693.Ar target-window
2694if specified, to
2695.Ar new-name .
2696.Tg resizep
2697.It Xo Ic resize-pane
2698.Op Fl DLMRTUZ
2699.Op Fl t Ar target-pane
2700.Op Fl x Ar width
2701.Op Fl y Ar height
2702.Op Ar adjustment
2703.Xc
2704.D1 Pq alias: Ic resizep
2705Resize a pane, up, down, left or right by
2706.Ar adjustment
2707with
2708.Fl U ,
2709.Fl D ,
2710.Fl L
2711or
2712.Fl R ,
2713or
2714to an absolute size
2715with
2716.Fl x
2717or
2718.Fl y .
2719The
2720.Ar adjustment
2721is given in lines or columns (the default is 1);
2722.Fl x
2723and
2724.Fl y
2725may be a given as a number of lines or columns or followed by
2726.Ql %
2727for a percentage of the window size (for example
2728.Ql -x 10% ) .
2729With
2730.Fl Z ,
2731the active pane is toggled between zoomed (occupying the whole of the window)
2732and unzoomed (its normal position in the layout).
2733.Pp
2734.Fl M
2735begins mouse resizing (only valid if bound to a mouse key binding, see
2736.Sx MOUSE SUPPORT ) .
2737.Pp
2738.Fl T
2739trims all lines below the current cursor position and moves lines out of the
2740history to replace them.
2741.Tg resizew
2742.It Xo Ic resize-window
2743.Op Fl aADLRU
2744.Op Fl t Ar target-window
2745.Op Fl x Ar width
2746.Op Fl y Ar height
2747.Op Ar adjustment
2748.Xc
2749.D1 Pq alias: Ic resizew
2750Resize a window, up, down, left or right by
2751.Ar adjustment
2752with
2753.Fl U ,
2754.Fl D ,
2755.Fl L
2756or
2757.Fl R ,
2758or
2759to an absolute size
2760with
2761.Fl x
2762or
2763.Fl y .
2764The
2765.Ar adjustment
2766is given in lines or cells (the default is 1).
2767.Fl A
2768sets the size of the largest session containing the window;
2769.Fl a
2770the size of the smallest.
2771This command will automatically set
2772.Ic window-size
2773to manual in the window options.
2774.Tg respawnp
2775.It Xo Ic respawn-pane
2776.Op Fl k
2777.Op Fl c Ar start-directory
2778.Op Fl e Ar environment
2779.Op Fl t Ar target-pane
2780.Op Ar shell-command
2781.Xc
2782.D1 Pq alias: Ic respawnp
2783Reactivate a pane in which the command has exited (see the
2784.Ic remain-on-exit
2785window option).
2786If
2787.Ar shell-command
2788is not given, the command used when the pane was created or last respawned is
2789executed.
2790The pane must be already inactive, unless
2791.Fl k
2792is given, in which case any existing command is killed.
2793.Fl c
2794specifies a new working directory for the pane.
2795The
2796.Fl e
2797option has the same meaning as for the
2798.Ic new-window
2799command.
2800.Tg respawnw
2801.It Xo Ic respawn-window
2802.Op Fl k
2803.Op Fl c Ar start-directory
2804.Op Fl e Ar environment
2805.Op Fl t Ar target-window
2806.Op Ar shell-command
2807.Xc
2808.D1 Pq alias: Ic respawnw
2809Reactivate a window in which the command has exited (see the
2810.Ic remain-on-exit
2811window option).
2812If
2813.Ar shell-command
2814is not given, the command used when the window was created or last respawned is
2815executed.
2816The window must be already inactive, unless
2817.Fl k
2818is given, in which case any existing command is killed.
2819.Fl c
2820specifies a new working directory for the window.
2821The
2822.Fl e
2823option has the same meaning as for the
2824.Ic new-window
2825command.
2826.Tg rotatew
2827.It Xo Ic rotate-window
2828.Op Fl DUZ
2829.Op Fl t Ar target-window
2830.Xc
2831.D1 Pq alias: Ic rotatew
2832Rotate the positions of the panes within a window, either upward (numerically
2833lower) with
2834.Fl U
2835or downward (numerically higher).
2836.Fl Z
2837keeps the window zoomed if it was zoomed.
2838.Tg selectl
2839.It Xo Ic select-layout
2840.Op Fl Enop
2841.Op Fl t Ar target-pane
2842.Op Ar layout-name
2843.Xc
2844.D1 Pq alias: Ic selectl
2845Choose a specific layout for a window.
2846If
2847.Ar layout-name
2848is not given, the last preset layout used (if any) is reapplied.
2849.Fl n
2850and
2851.Fl p
2852are equivalent to the
2853.Ic next-layout
2854and
2855.Ic previous-layout
2856commands.
2857.Fl o
2858applies the last set layout if possible (undoes the most recent layout change).
2859.Fl E
2860spreads the current pane and any panes next to it out evenly.
2861.Tg selectp
2862.It Xo Ic select-pane
2863.Op Fl DdeLlMmRUZ
2864.Op Fl T Ar title
2865.Op Fl t Ar target-pane
2866.Xc
2867.D1 Pq alias: Ic selectp
2868Make pane
2869.Ar target-pane
2870the active pane in its window.
2871If one of
2872.Fl D ,
2873.Fl L ,
2874.Fl R ,
2875or
2876.Fl U
2877is used, respectively the pane below, to the left, to the right, or above the
2878target pane is used.
2879.Fl Z
2880keeps the window zoomed if it was zoomed.
2881.Fl l
2882is the same as using the
2883.Ic last-pane
2884command.
2885.Fl e
2886enables or
2887.Fl d
2888disables input to the pane.
2889.Fl T
2890sets the pane title.
2891.Pp
2892.Fl m
2893and
2894.Fl M
2895are used to set and clear the
2896.Em marked pane .
2897There is one marked pane at a time, setting a new marked pane clears the last.
2898The marked pane is the default target for
2899.Fl s
2900to
2901.Ic join-pane ,
2902.Ic move-pane ,
2903.Ic swap-pane
2904and
2905.Ic swap-window .
2906.Tg selectw
2907.It Xo Ic select-window
2908.Op Fl lnpT
2909.Op Fl t Ar target-window
2910.Xc
2911.D1 Pq alias: Ic selectw
2912Select the window at
2913.Ar target-window .
2914.Fl l ,
2915.Fl n
2916and
2917.Fl p
2918are equivalent to the
2919.Ic last-window ,
2920.Ic next-window
2921and
2922.Ic previous-window
2923commands.
2924If
2925.Fl T
2926is given and the selected window is already the current window,
2927the command behaves like
2928.Ic last-window .
2929.Tg splitw
2930.It Xo Ic split-window
2931.Op Fl bdfhIvPZ
2932.Op Fl c Ar start-directory
2933.Op Fl e Ar environment
2934.Op Fl l Ar size
2935.Op Fl t Ar target-pane
2936.Op Ar shell-command
2937.Op Fl F Ar format
2938.Xc
2939.D1 Pq alias: Ic splitw
2940Create a new pane by splitting
2941.Ar target-pane :
2942.Fl h
2943does a horizontal split and
2944.Fl v
2945a vertical split; if neither is specified,
2946.Fl v
2947is assumed.
2948The
2949.Fl l
2950option specifies the size of the new pane in lines (for vertical split) or in
2951columns (for horizontal split);
2952.Ar size
2953may be followed by
2954.Ql %
2955to specify a percentage of the available space.
2956The
2957.Fl b
2958option causes the new pane to be created to the left of or above
2959.Ar target-pane .
2960The
2961.Fl f
2962option creates a new pane spanning the full window height (with
2963.Fl h )
2964or full window width (with
2965.Fl v ) ,
2966instead of splitting the active pane.
2967.Fl Z
2968zooms if the window is not zoomed, or keeps it zoomed if already zoomed.
2969.Pp
2970An empty
2971.Ar shell-command
2972('') will create a pane with no command running in it.
2973Output can be sent to such a pane with the
2974.Ic display-message
2975command.
2976The
2977.Fl I
2978flag (if
2979.Ar shell-command
2980is not specified or empty)
2981will create an empty pane and forward any output from stdin to it.
2982For example:
2983.Bd -literal -offset indent
2984$ make 2>&1|tmux splitw -dI &
2985.Ed
2986.Pp
2987All other options have the same meaning as for the
2988.Ic new-window
2989command.
2990.Tg swapp
2991.It Xo Ic swap-pane
2992.Op Fl dDUZ
2993.Op Fl s Ar src-pane
2994.Op Fl t Ar dst-pane
2995.Xc
2996.D1 Pq alias: Ic swapp
2997Swap two panes.
2998If
2999.Fl U
3000is used and no source pane is specified with
3001.Fl s ,
3002.Ar dst-pane
3003is swapped with the previous pane (before it numerically);
3004.Fl D
3005swaps with the next pane (after it numerically).
3006.Fl d
3007instructs
3008.Nm
3009not to change the active pane and
3010.Fl Z
3011keeps the window zoomed if it was zoomed.
3012.Pp
3013If
3014.Fl s
3015is omitted and a marked pane is present (see
3016.Ic select-pane
3017.Fl m ) ,
3018the marked pane is used rather than the current pane.
3019.Tg swapw
3020.It Xo Ic swap-window
3021.Op Fl d
3022.Op Fl s Ar src-window
3023.Op Fl t Ar dst-window
3024.Xc
3025.D1 Pq alias: Ic swapw
3026This is similar to
3027.Ic link-window ,
3028except the source and destination windows are swapped.
3029It is an error if no window exists at
3030.Ar src-window .
3031If
3032.Fl d
3033is given, the new window does not become the current window.
3034.Pp
3035If
3036.Fl s
3037is omitted and a marked pane is present (see
3038.Ic select-pane
3039.Fl m ) ,
3040the window containing the marked pane is used rather than the current window.
3041.Tg unlinkw
3042.It Xo Ic unlink-window
3043.Op Fl k
3044.Op Fl t Ar target-window
3045.Xc
3046.D1 Pq alias: Ic unlinkw
3047Unlink
3048.Ar target-window .
3049Unless
3050.Fl k
3051is given, a window may be unlinked only if it is linked to multiple sessions -
3052windows may not be linked to no sessions;
3053if
3054.Fl k
3055is specified and the window is linked to only one session, it is unlinked and
3056destroyed.
3057.El
3058.Sh KEY BINDINGS
3059.Nm
3060allows a command to be bound to most keys, with or without a prefix key.
3061When specifying keys, most represent themselves (for example
3062.Ql A
3063to
3064.Ql Z ) .
3065Ctrl keys may be prefixed with
3066.Ql C-
3067or
3068.Ql ^ ,
3069Shift keys with
3070.Ql S-
3071and Alt (meta) with
3072.Ql M- .
3073In addition, the following special key names are accepted:
3074.Em Up ,
3075.Em Down ,
3076.Em Left ,
3077.Em Right ,
3078.Em BSpace ,
3079.Em BTab ,
3080.Em DC
3081(Delete),
3082.Em End ,
3083.Em Enter ,
3084.Em Escape ,
3085.Em F1
3086to
3087.Em F12 ,
3088.Em Home ,
3089.Em IC
3090(Insert),
3091.Em NPage/PageDown/PgDn ,
3092.Em PPage/PageUp/PgUp ,
3093.Em Space ,
3094and
3095.Em Tab .
3096Note that to bind the
3097.Ql \&"
3098or
3099.Ql '
3100keys, quotation marks are necessary, for example:
3101.Bd -literal -offset indent
3102bind-key '"' split-window
3103bind-key "'" new-window
3104.Ed
3105.Pp
3106A command bound to the
3107.Em Any
3108key will execute for all keys which do not have a more specific binding.
3109.Pp
3110Commands related to key bindings are as follows:
3111.Bl -tag -width Ds
3112.Tg bind
3113.It Xo Ic bind-key
3114.Op Fl nr
3115.Op Fl N Ar note
3116.Op Fl T Ar key-table
3117.Ar key command Op Ar arguments
3118.Xc
3119.D1 Pq alias: Ic bind
3120Bind key
3121.Ar key
3122to
3123.Ar command .
3124Keys are bound in a key table.
3125By default (without -T), the key is bound in
3126the
3127.Em prefix
3128key table.
3129This table is used for keys pressed after the prefix key (for example,
3130by default
3131.Ql c
3132is bound to
3133.Ic new-window
3134in the
3135.Em prefix
3136table, so
3137.Ql C-b c
3138creates a new window).
3139The
3140.Em root
3141table is used for keys pressed without the prefix key: binding
3142.Ql c
3143to
3144.Ic new-window
3145in the
3146.Em root
3147table (not recommended) means a plain
3148.Ql c
3149will create a new window.
3150.Fl n
3151is an alias
3152for
3153.Fl T Ar root .
3154Keys may also be bound in custom key tables and the
3155.Ic switch-client
3156.Fl T
3157command used to switch to them from a key binding.
3158The
3159.Fl r
3160flag indicates this key may repeat, see the
3161.Ic repeat-time
3162option.
3163.Fl N
3164attaches a note to the key (shown with
3165.Ic list-keys
3166.Fl N ) .
3167.Pp
3168To view the default bindings and possible commands, see the
3169.Ic list-keys
3170command.
3171.Tg lsk
3172.It Xo Ic list-keys
3173.Op Fl 1aN
3174.Op Fl P Ar prefix-string Fl T Ar key-table
3175.Op Ar key
3176.Xc
3177.D1 Pq alias: Ic lsk
3178List key bindings.
3179There are two forms: the default lists keys as
3180.Ic bind-key
3181commands;
3182.Fl N
3183lists only keys with attached notes and shows only the key and note for each
3184key.
3185.Pp
3186With the default form, all key tables are listed by default.
3187.Fl T
3188lists only keys in
3189.Ar key-table .
3190.Pp
3191With the
3192.Fl N
3193form, only keys in the
3194.Em root
3195and
3196.Em prefix
3197key tables are listed by default;
3198.Fl T
3199also lists only keys in
3200.Ar key-table .
3201.Fl P
3202specifies a prefix to print before each key and
3203.Fl 1
3204lists only the first matching key.
3205.Fl a
3206lists the command for keys that do not have a note rather than skipping them.
3207.Tg send
3208.It Xo Ic send-keys
3209.Op Fl FHlMRX
3210.Op Fl N Ar repeat-count
3211.Op Fl t Ar target-pane
3212.Ar key Ar ...
3213.Xc
3214.D1 Pq alias: Ic send
3215Send a key or keys to a window.
3216Each argument
3217.Ar key
3218is the name of the key (such as
3219.Ql C-a
3220or
3221.Ql NPage )
3222to send; if the string is not recognised as a key, it is sent as a series of
3223characters.
3224All arguments are sent sequentially from first to last.
3225If no keys are given and the command is bound to a key, then that key is used.
3226.Pp
3227The
3228.Fl l
3229flag disables key name lookup and processes the keys as literal UTF-8
3230characters.
3231The
3232.Fl H
3233flag expects each key to be a hexadecimal number for an ASCII character.
3234.Pp
3235The
3236.Fl R
3237flag causes the terminal state to be reset.
3238.Pp
3239.Fl M
3240passes through a mouse event (only valid if bound to a mouse key binding, see
3241.Sx MOUSE SUPPORT ) .
3242.Pp
3243.Fl X
3244is used to send a command into copy mode - see
3245the
3246.Sx WINDOWS AND PANES
3247section.
3248.Fl N
3249specifies a repeat count and
3250.Fl F
3251expands formats in arguments where appropriate.
3252.It Xo Ic send-prefix
3253.Op Fl 2
3254.Op Fl t Ar target-pane
3255.Xc
3256Send the prefix key, or with
3257.Fl 2
3258the secondary prefix key, to a window as if it was pressed.
3259.Tg unbind
3260.It Xo Ic unbind-key
3261.Op Fl anq
3262.Op Fl T Ar key-table
3263.Ar key
3264.Xc
3265.D1 Pq alias: Ic unbind
3266Unbind the command bound to
3267.Ar key .
3268.Fl n
3269and
3270.Fl T
3271are the same as for
3272.Ic bind-key .
3273If
3274.Fl a
3275is present, all key bindings are removed.
3276The
3277.Fl q
3278option prevents errors being returned.
3279.El
3280.Sh OPTIONS
3281The appearance and behaviour of
3282.Nm
3283may be modified by changing the value of various options.
3284There are four types of option:
3285.Em server options ,
3286.Em session options ,
3287.Em window options ,
3288and
3289.Em pane options .
3290.Pp
3291The
3292.Nm
3293server has a set of global server options which do not apply to any particular
3294window or session or pane.
3295These are altered with the
3296.Ic set-option
3297.Fl s
3298command, or displayed with the
3299.Ic show-options
3300.Fl s
3301command.
3302.Pp
3303In addition, each individual session may have a set of session options, and
3304there is a separate set of global session options.
3305Sessions which do not have a particular option configured inherit the value
3306from the global session options.
3307Session options are set or unset with the
3308.Ic set-option
3309command and may be listed with the
3310.Ic show-options
3311command.
3312The available server and session options are listed under the
3313.Ic set-option
3314command.
3315.Pp
3316Similarly, a set of window options is attached to each window and a set of pane
3317options to each pane.
3318Pane options inherit from window options.
3319This means any pane option may be set as a window option to apply the option to
3320all panes in the window without the option set, for example these commands will
3321set the background colour to red for all panes except pane 0:
3322.Bd -literal -offset indent
3323set -w window-style bg=red
3324set -pt:.0 window-style bg=blue
3325.Ed
3326.Pp
3327There is also a set of global window options from which any unset window or
3328pane options are inherited.
3329Window and pane options are altered with
3330.Ic set-option
3331.Fl w
3332and
3333.Fl p
3334commands and displayed with
3335.Ic show-option
3336.Fl w
3337and
3338.Fl p .
3339.Pp
3340.Nm
3341also supports user options which are prefixed with a
3342.Ql \&@ .
3343User options may have any name, so long as they are prefixed with
3344.Ql \&@ ,
3345and be set to any string.
3346For example:
3347.Bd -literal -offset indent
3348$ tmux set -wq @foo "abc123"
3349$ tmux show -wv @foo
3350abc123
3351.Ed
3352.Pp
3353Commands which set options are as follows:
3354.Bl -tag -width Ds
3355.Tg set
3356.It Xo Ic set-option
3357.Op Fl aFgopqsuUw
3358.Op Fl t Ar target-pane
3359.Ar option Ar value
3360.Xc
3361.D1 Pq alias: Ic set
3362Set a pane option with
3363.Fl p ,
3364a window option with
3365.Fl w ,
3366a server option with
3367.Fl s ,
3368otherwise a session option.
3369If the option is not a user option,
3370.Fl w
3371or
3372.Fl s
3373may be unnecessary -
3374.Nm
3375will infer the type from the option name, assuming
3376.Fl w
3377for pane options.
3378If
3379.Fl g
3380is given, the global session or window option is set.
3381.Pp
3382.Fl F
3383expands formats in the option value.
3384The
3385.Fl u
3386flag unsets an option, so a session inherits the option from the global
3387options (or with
3388.Fl g ,
3389restores a global option to the default).
3390.Fl U
3391unsets an option (like
3392.Fl u )
3393but if the option is a pane option also unsets the option on any panes in the
3394window.
3395.Ar value
3396depends on the option and may be a number, a string, or a flag (on, off, or
3397omitted to toggle).
3398.Pp
3399The
3400.Fl o
3401flag prevents setting an option that is already set and the
3402.Fl q
3403flag suppresses errors about unknown or ambiguous options.
3404.Pp
3405With
3406.Fl a ,
3407and if the option expects a string or a style,
3408.Ar value
3409is appended to the existing setting.
3410For example:
3411.Bd -literal -offset indent
3412set -g status-left "foo"
3413set -ag status-left "bar"
3414.Ed
3415.Pp
3416Will result in
3417.Ql foobar .
3418And:
3419.Bd -literal -offset indent
3420set -g status-style "bg=red"
3421set -ag status-style "fg=blue"
3422.Ed
3423.Pp
3424Will result in a red background
3425.Em and
3426blue foreground.
3427Without
3428.Fl a ,
3429the result would be the default background and a blue foreground.
3430.Tg show
3431.It Xo Ic show-options
3432.Op Fl AgHpqsvw
3433.Op Fl t Ar target-pane
3434.Op Ar option
3435.Xc
3436.D1 Pq alias: Ic show
3437Show the pane options (or a single option if
3438.Ar option
3439is provided) with
3440.Fl p ,
3441the window options with
3442.Fl w ,
3443the server options with
3444.Fl s ,
3445otherwise the session options.
3446If the option is not a user option,
3447.Fl w
3448or
3449.Fl s
3450may be unnecessary -
3451.Nm
3452will infer the type from the option name, assuming
3453.Fl w
3454for pane options.
3455Global session or window options are listed if
3456.Fl g
3457is used.
3458.Fl v
3459shows only the option value, not the name.
3460If
3461.Fl q
3462is set, no error will be returned if
3463.Ar option
3464is unset.
3465.Fl H
3466includes hooks (omitted by default).
3467.Fl A
3468includes options inherited from a parent set of options, such options are
3469marked with an asterisk.
3470.El
3471.Pp
3472Available server options are:
3473.Bl -tag -width Ds
3474.It Ic backspace Ar key
3475Set the key sent by
3476.Nm
3477for backspace.
3478.It Ic buffer-limit Ar number
3479Set the number of buffers; as new buffers are added to the top of the stack,
3480old ones are removed from the bottom if necessary to maintain this maximum
3481length.
3482.It Xo Ic command-alias[]
3483.Ar name=value
3484.Xc
3485This is an array of custom aliases for commands.
3486If an unknown command matches
3487.Ar name ,
3488it is replaced with
3489.Ar value .
3490For example, after:
3491.Pp
3492.Dl set -s command-alias[100] zoom='resize-pane -Z'
3493.Pp
3494Using:
3495.Pp
3496.Dl zoom -t:.1
3497.Pp
3498Is equivalent to:
3499.Pp
3500.Dl resize-pane -Z -t:.1
3501.Pp
3502Note that aliases are expanded when a command is parsed rather than when it is
3503executed, so binding an alias with
3504.Ic bind-key
3505will bind the expanded form.
3506.It Ic default-terminal Ar terminal
3507Set the default terminal for new windows created in this session - the
3508default value of the
3509.Ev TERM
3510environment variable.
3511For
3512.Nm
3513to work correctly, this
3514.Em must
3515be set to
3516.Ql screen ,
3517.Ql tmux
3518or a derivative of them.
3519.It Ic copy-command Ar shell-command
3520Give the command to pipe to if the
3521.Ic copy-pipe
3522copy mode command is used without arguments.
3523.It Ic escape-time Ar time
3524Set the time in milliseconds for which
3525.Nm
3526waits after an escape is input to determine if it is part of a function or meta
3527key sequences.
3528The default is 500 milliseconds.
3529.It Ic editor Ar shell-command
3530Set the command used when
3531.Nm
3532runs an editor.
3533.It Xo Ic exit-empty
3534.Op Ic on | off
3535.Xc
3536If enabled (the default), the server will exit when there are no active
3537sessions.
3538.It Xo Ic exit-unattached
3539.Op Ic on | off
3540.Xc
3541If enabled, the server will exit when there are no attached clients.
3542.It Xo Ic extended-keys
3543.Op Ic on | off | always
3544.Xc
3545When
3546.Ic on
3547or
3548.Ic always ,
3549the escape sequence to enable extended keys is sent to the terminal, if
3550.Nm
3551knows that it is supported.
3552.Nm
3553always recognises extended keys itself.
3554If this option is
3555.Ic on ,
3556.Nm
3557will only forward extended keys to applications when they request them; if
3558.Ic always ,
3559.Nm
3560will always forward the keys.
3561.It Xo Ic focus-events
3562.Op Ic on | off
3563.Xc
3564When enabled, focus events are requested from the terminal if supported and
3565passed through to applications running in
3566.Nm .
3567Attached clients should be detached and attached again after changing this
3568option.
3569.It Ic history-file Ar path
3570If not empty, a file to which
3571.Nm
3572will write command prompt history on exit and load it from on start.
3573.It Ic message-limit Ar number
3574Set the number of error or information messages to save in the message log for
3575each client.
3576.It Ic prompt-history-limit Ar number
3577Set the number of history items to save in the history file for each type of
3578command prompt.
3579.It Xo Ic set-clipboard
3580.Op Ic on | external | off
3581.Xc
3582Attempt to set the terminal clipboard content using the
3583.Xr xterm 1
3584escape sequence, if there is an
3585.Em \&Ms
3586entry in the
3587.Xr terminfo 5
3588description (see the
3589.Sx TERMINFO EXTENSIONS
3590section).
3591.Pp
3592If set to
3593.Ic on ,
3594.Nm
3595will both accept the escape sequence to create a buffer and attempt to set
3596the terminal clipboard.
3597If set to
3598.Ic external ,
3599.Nm
3600will attempt to set the terminal clipboard but ignore attempts
3601by applications to set
3602.Nm
3603buffers.
3604If
3605.Ic off ,
3606.Nm
3607will neither accept the clipboard escape sequence nor attempt to set the
3608clipboard.
3609.Pp
3610Note that this feature needs to be enabled in
3611.Xr xterm 1
3612by setting the resource:
3613.Bd -literal -offset indent
3614disallowedWindowOps: 20,21,SetXprop
3615.Ed
3616.Pp
3617Or changing this property from the
3618.Xr xterm 1
3619interactive menu when required.
3620.It Ic terminal-features[] Ar string
3621Set terminal features for terminal types read from
3622.Xr terminfo 5 .
3623.Nm
3624has a set of named terminal features.
3625Each will apply appropriate changes to the
3626.Xr terminfo 5
3627entry in use.
3628.Pp
3629.Nm
3630can detect features for a few common terminals; this option can be used to
3631easily tell tmux about features supported by terminals it cannot detect.
3632The
3633.Ic terminal-overrides
3634option allows individual
3635.Xr terminfo 5
3636capabilities to be set instead,
3637.Ic terminal-features
3638is intended for classes of functionality supported in a standard way but not
3639reported by
3640.Xr terminfo 5 .
3641Care must be taken to configure this only with features the terminal actually
3642supports.
3643.Pp
3644This is an array option where each entry is a colon-separated string made up
3645of a terminal type pattern (matched using
3646.Xr fnmatch 3 )
3647followed by a list of terminal features.
3648The available features are:
3649.Bl -tag -width Ds
3650.It 256
3651Supports 256 colours with the SGR escape sequences.
3652.It clipboard
3653Allows setting the system clipboard.
3654.It ccolour
3655Allows setting the cursor colour.
3656.It cstyle
3657Allows setting the cursor style.
3658.It extkeys
3659Supports extended keys.
3660.It focus
3661Supports focus reporting.
3662.It margins
3663Supports DECSLRM margins.
3664.It mouse
3665Supports
3666.Xr xterm 1
3667mouse sequences.
3668.It osc7
3669Supports the OSC 7 working directory extension.
3670.It overline
3671Supports the overline SGR attribute.
3672.It rectfill
3673Supports the DECFRA rectangle fill escape sequence.
3674.It RGB
3675Supports RGB colour with the SGR escape sequences.
3676.It strikethrough
3677Supports the strikethrough SGR escape sequence.
3678.It sync
3679Supports synchronized updates.
3680.It title
3681Supports
3682.Xr xterm 1
3683title setting.
3684.It usstyle
3685Allows underscore style and colour to be set.
3686.El
3687.It Ic terminal-overrides[] Ar string
3688Allow terminal descriptions read using
3689.Xr terminfo 5
3690to be overridden.
3691Each entry is a colon-separated string made up of a terminal type pattern
3692(matched using
3693.Xr fnmatch 3 )
3694and a set of
3695.Em name=value
3696entries.
3697.Pp
3698For example, to set the
3699.Ql clear
3700.Xr terminfo 5
3701entry to
3702.Ql \ee[H\ee[2J
3703for all terminal types matching
3704.Ql rxvt* :
3705.Pp
3706.Dl "rxvt*:clear=\ee[H\ee[2J"
3707.Pp
3708The terminal entry value is passed through
3709.Xr strunvis 3
3710before interpretation.
3711.It Ic user-keys[] Ar key
3712Set list of user-defined key escape sequences.
3713Each item is associated with a key named
3714.Ql User0 ,
3715.Ql User1 ,
3716and so on.
3717.Pp
3718For example:
3719.Bd -literal -offset indent
3720set -s user-keys[0] "\ee[5;30012~"
3721bind User0 resize-pane -L 3
3722.Ed
3723.El
3724.Pp
3725Available session options are:
3726.Bl -tag -width Ds
3727.It Xo Ic activity-action
3728.Op Ic any | none | current | other
3729.Xc
3730Set action on window activity when
3731.Ic monitor-activity
3732is on.
3733.Ic any
3734means activity in any window linked to a session causes a bell or message
3735(depending on
3736.Ic visual-activity )
3737in the current window of that session,
3738.Ic none
3739means all activity is ignored (equivalent to
3740.Ic monitor-activity
3741being off),
3742.Ic current
3743means only activity in windows other than the current window are ignored and
3744.Ic other
3745means activity in the current window is ignored but not those in other windows.
3746.It Ic assume-paste-time Ar milliseconds
3747If keys are entered faster than one in
3748.Ar milliseconds ,
3749they are assumed to have been pasted rather than typed and
3750.Nm
3751key bindings are not processed.
3752The default is one millisecond and zero disables.
3753.It Ic base-index Ar index
3754Set the base index from which an unused index should be searched when a new
3755window is created.
3756The default is zero.
3757.It Xo Ic bell-action
3758.Op Ic any | none | current | other
3759.Xc
3760Set action on a bell in a window when
3761.Ic monitor-bell
3762is on.
3763The values are the same as those for
3764.Ic activity-action .
3765.It Ic default-command Ar shell-command
3766Set the command used for new windows (if not specified when the window is
3767created) to
3768.Ar shell-command ,
3769which may be any
3770.Xr sh 1
3771command.
3772The default is an empty string, which instructs
3773.Nm
3774to create a login shell using the value of the
3775.Ic default-shell
3776option.
3777.It Ic default-shell Ar path
3778Specify the default shell.
3779This is used as the login shell for new windows when the
3780.Ic default-command
3781option is set to empty, and must be the full path of the executable.
3782When started
3783.Nm
3784tries to set a default value from the first suitable of the
3785.Ev SHELL
3786environment variable, the shell returned by
3787.Xr getpwuid 3 ,
3788or
3789.Pa /bin/sh .
3790This option should be configured when
3791.Nm
3792is used as a login shell.
3793.It Ic default-size Ar XxY
3794Set the default size of new windows when the
3795.Ic window-size
3796option is set to manual or when a session is created with
3797.Ic new-session
3798.Fl d .
3799The value is the width and height separated by an
3800.Ql x
3801character.
3802The default is 80x24.
3803.It Xo Ic destroy-unattached
3804.Op Ic on | off
3805.Xc
3806If enabled and the session is no longer attached to any clients, it is
3807destroyed.
3808.It Xo Ic detach-on-destroy
3809.Op Ic off | on | no-detached
3810.Xc
3811If on (the default), the client is detached when the session it is attached to
3812is destroyed.
3813If off, the client is switched to the most recently active of the remaining
3814sessions.
3815If
3816.Ic no-detached ,
3817the client is detached only if there are no detached sessions; if detached
3818sessions exist, the client is switched to the most recently active.
3819.It Ic display-panes-active-colour Ar colour
3820Set the colour used by the
3821.Ic display-panes
3822command to show the indicator for the active pane.
3823.It Ic display-panes-colour Ar colour
3824Set the colour used by the
3825.Ic display-panes
3826command to show the indicators for inactive panes.
3827.It Ic display-panes-time Ar time
3828Set the time in milliseconds for which the indicators shown by the
3829.Ic display-panes
3830command appear.
3831.It Ic display-time Ar time
3832Set the amount of time for which status line messages and other on-screen
3833indicators are displayed.
3834If set to 0, messages and indicators are displayed until a key is pressed.
3835.Ar time
3836is in milliseconds.
3837.It Ic history-limit Ar lines
3838Set the maximum number of lines held in window history.
3839This setting applies only to new windows - existing window histories are not
3840resized and retain the limit at the point they were created.
3841.It Ic key-table Ar key-table
3842Set the default key table to
3843.Ar key-table
3844instead of
3845.Em root .
3846.It Ic lock-after-time Ar number
3847Lock the session (like the
3848.Ic lock-session
3849command) after
3850.Ar number
3851seconds of inactivity.
3852The default is not to lock (set to 0).
3853.It Ic lock-command Ar shell-command
3854Command to run when locking each client.
3855The default is to run
3856.Xr lock 1
3857with
3858.Fl np .
3859.It Ic message-command-style Ar style
3860Set status line message command style.
3861This is used for the command prompt with
3862.Xr vi 1
3863keys when in command mode.
3864For how to specify
3865.Ar style ,
3866see the
3867.Sx STYLES
3868section.
3869.It Ic message-style Ar style
3870Set status line message style.
3871This is used for messages and for the command prompt.
3872For how to specify
3873.Ar style ,
3874see the
3875.Sx STYLES
3876section.
3877.It Xo Ic mouse
3878.Op Ic on | off
3879.Xc
3880If on,
3881.Nm
3882captures the mouse and allows mouse events to be bound as key bindings.
3883See the
3884.Sx MOUSE SUPPORT
3885section for details.
3886.It Ic prefix Ar key
3887Set the key accepted as a prefix key.
3888In addition to the standard keys described under
3889.Sx KEY BINDINGS ,
3890.Ic prefix
3891can be set to the special key
3892.Ql None
3893to set no prefix.
3894.It Ic prefix2 Ar key
3895Set a secondary key accepted as a prefix key.
3896Like
3897.Ic prefix ,
3898.Ic prefix2
3899can be set to
3900.Ql None .
3901.It Xo Ic renumber-windows
3902.Op Ic on | off
3903.Xc
3904If on, when a window is closed in a session, automatically renumber the other
3905windows in numerical order.
3906This respects the
3907.Ic base-index
3908option if it has been set.
3909If off, do not renumber the windows.
3910.It Ic repeat-time Ar time
3911Allow multiple commands to be entered without pressing the prefix-key again
3912in the specified
3913.Ar time
3914milliseconds (the default is 500).
3915Whether a key repeats may be set when it is bound using the
3916.Fl r
3917flag to
3918.Ic bind-key .
3919Repeat is enabled for the default keys bound to the
3920.Ic resize-pane
3921command.
3922.It Xo Ic set-titles
3923.Op Ic on | off
3924.Xc
3925Attempt to set the client terminal title using the
3926.Em tsl
3927and
3928.Em fsl
3929.Xr terminfo 5
3930entries if they exist.
3931.Nm
3932automatically sets these to the \ee]0;...\e007 sequence if
3933the terminal appears to be
3934.Xr xterm 1 .
3935This option is off by default.
3936.It Ic set-titles-string Ar string
3937String used to set the client terminal title if
3938.Ic set-titles
3939is on.
3940Formats are expanded, see the
3941.Sx FORMATS
3942section.
3943.It Xo Ic silence-action
3944.Op Ic any | none | current | other
3945.Xc
3946Set action on window silence when
3947.Ic monitor-silence
3948is on.
3949The values are the same as those for
3950.Ic activity-action .
3951.It Xo Ic status
3952.Op Ic off | on | 2 | 3 | 4 | 5
3953.Xc
3954Show or hide the status line or specify its size.
3955Using
3956.Ic on
3957gives a status line one row in height;
3958.Ic 2 ,
3959.Ic 3 ,
3960.Ic 4
3961or
3962.Ic 5
3963more rows.
3964.It Ic status-format[] Ar format
3965Specify the format to be used for each line of the status line.
3966The default builds the top status line from the various individual status
3967options below.
3968.It Ic status-interval Ar interval
3969Update the status line every
3970.Ar interval
3971seconds.
3972By default, updates will occur every 15 seconds.
3973A setting of zero disables redrawing at interval.
3974.It Xo Ic status-justify
3975.Op Ic left | centre | right | absolute-centre
3976.Xc
3977Set the position of the window list in the status line: left, centre or right.
3978centre puts the window list in the relative centre of the available free space;
3979absolute-centre uses the centre of the entire horizontal space.
3980.It Xo Ic status-keys
3981.Op Ic vi | emacs
3982.Xc
3983Use vi or emacs-style
3984key bindings in the status line, for example at the command prompt.
3985The default is emacs, unless the
3986.Ev VISUAL
3987or
3988.Ev EDITOR
3989environment variables are set and contain the string
3990.Ql vi .
3991.It Ic status-left Ar string
3992Display
3993.Ar string
3994(by default the session name) to the left of the status line.
3995.Ar string
3996will be passed through
3997.Xr strftime 3 .
3998Also see the
3999.Sx FORMATS
4000and
4001.Sx STYLES
4002sections.
4003.Pp
4004For details on how the names and titles can be set see the
4005.Sx "NAMES AND TITLES"
4006section.
4007.Pp
4008Examples are:
4009.Bd -literal -offset indent
4010#(sysctl vm.loadavg)
4011#[fg=yellow,bold]#(apm -l)%%#[default] [#S]
4012.Ed
4013.Pp
4014The default is
4015.Ql "[#S] " .
4016.It Ic status-left-length Ar length
4017Set the maximum
4018.Ar length
4019of the left component of the status line.
4020The default is 10.
4021.It Ic status-left-style Ar style
4022Set the style of the left part of the status line.
4023For how to specify
4024.Ar style ,
4025see the
4026.Sx STYLES
4027section.
4028.It Xo Ic status-position
4029.Op Ic top | bottom
4030.Xc
4031Set the position of the status line.
4032.It Ic status-right Ar string
4033Display
4034.Ar string
4035to the right of the status line.
4036By default, the current pane title in double quotes, the date and the time
4037are shown.
4038As with
4039.Ic status-left ,
4040.Ar string
4041will be passed to
4042.Xr strftime 3
4043and character pairs are replaced.
4044.It Ic status-right-length Ar length
4045Set the maximum
4046.Ar length
4047of the right component of the status line.
4048The default is 40.
4049.It Ic status-right-style Ar style
4050Set the style of the right part of the status line.
4051For how to specify
4052.Ar style ,
4053see the
4054.Sx STYLES
4055section.
4056.It Ic status-style Ar style
4057Set status line style.
4058For how to specify
4059.Ar style ,
4060see the
4061.Sx STYLES
4062section.
4063.It Ic update-environment[] Ar variable
4064Set list of environment variables to be copied into the session environment
4065when a new session is created or an existing session is attached.
4066Any variables that do not exist in the source environment are set to be
4067removed from the session environment (as if
4068.Fl r
4069was given to the
4070.Ic set-environment
4071command).
4072.It Xo Ic visual-activity
4073.Op Ic on | off | both
4074.Xc
4075If on, display a message instead of sending a bell when activity occurs in a
4076window for which the
4077.Ic monitor-activity
4078window option is enabled.
4079If set to both, a bell and a message are produced.
4080.It Xo Ic visual-bell
4081.Op Ic on | off | both
4082.Xc
4083If on, a message is shown on a bell in a window for which the
4084.Ic monitor-bell
4085window option is enabled instead of it being passed through to the
4086terminal (which normally makes a sound).
4087If set to both, a bell and a message are produced.
4088Also see the
4089.Ic bell-action
4090option.
4091.It Xo Ic visual-silence
4092.Op Ic on | off | both
4093.Xc
4094If
4095.Ic monitor-silence
4096is enabled, prints a message after the interval has expired on a given window
4097instead of sending a bell.
4098If set to both, a bell and a message are produced.
4099.It Ic word-separators Ar string
4100Sets the session's conception of what characters are considered word
4101separators, for the purposes of the next and previous word commands in
4102copy mode.
4103.El
4104.Pp
4105Available window options are:
4106.Pp
4107.Bl -tag -width Ds -compact
4108.It Xo Ic aggressive-resize
4109.Op Ic on | off
4110.Xc
4111Aggressively resize the chosen window.
4112This means that
4113.Nm
4114will resize the window to the size of the smallest or largest session
4115(see the
4116.Ic window-size
4117option) for which it is the current window, rather than the session to
4118which it is attached.
4119The window may resize when the current window is changed on another
4120session; this option is good for full-screen programs which support
4121.Dv SIGWINCH
4122and poor for interactive programs such as shells.
4123.Pp
4124.It Xo Ic automatic-rename
4125.Op Ic on | off
4126.Xc
4127Control automatic window renaming.
4128When this setting is enabled,
4129.Nm
4130will rename the window automatically using the format specified by
4131.Ic automatic-rename-format .
4132This flag is automatically disabled for an individual window when a name
4133is specified at creation with
4134.Ic new-window
4135or
4136.Ic new-session ,
4137or later with
4138.Ic rename-window ,
4139or with a terminal escape sequence.
4140It may be switched off globally with:
4141.Bd -literal -offset indent
4142set-option -wg automatic-rename off
4143.Ed
4144.Pp
4145.It Ic automatic-rename-format Ar format
4146The format (see
4147.Sx FORMATS )
4148used when the
4149.Ic automatic-rename
4150option is enabled.
4151.Pp
4152.It Ic clock-mode-colour Ar colour
4153Set clock colour.
4154.Pp
4155.It Xo Ic clock-mode-style
4156.Op Ic 12 | 24
4157.Xc
4158Set clock hour format.
4159.Pp
4160.It Ic fill-character Ar character
4161Set the character used to fill areas of the terminal unused by a window.
4162.Pp
4163.It Ic main-pane-height Ar height
4164.It Ic main-pane-width Ar width
4165Set the width or height of the main (left or top) pane in the
4166.Ic main-horizontal
4167or
4168.Ic main-vertical
4169layouts.
4170If suffixed by
4171.Ql % ,
4172this is a percentage of the window size.
4173.Pp
4174.It Ic copy-mode-match-style Ar style
4175Set the style of search matches in copy mode.
4176For how to specify
4177.Ar style ,
4178see the
4179.Sx STYLES
4180section.
4181.Pp
4182.It Ic copy-mode-mark-style Ar style
4183Set the style of the line containing the mark in copy mode.
4184For how to specify
4185.Ar style ,
4186see the
4187.Sx STYLES
4188section.
4189.Pp
4190.It Ic copy-mode-current-match-style Ar style
4191Set the style of the current search match in copy mode.
4192For how to specify
4193.Ar style ,
4194see the
4195.Sx STYLES
4196section.
4197.Pp
4198.It Xo Ic mode-keys
4199.Op Ic vi | emacs
4200.Xc
4201Use vi or emacs-style key bindings in copy mode.
4202The default is emacs, unless
4203.Ev VISUAL
4204or
4205.Ev EDITOR
4206contains
4207.Ql vi .
4208.Pp
4209.It Ic mode-style Ar style
4210Set window modes style.
4211For how to specify
4212.Ar style ,
4213see the
4214.Sx STYLES
4215section.
4216.Pp
4217.It Xo Ic monitor-activity
4218.Op Ic on | off
4219.Xc
4220Monitor for activity in the window.
4221Windows with activity are highlighted in the status line.
4222.Pp
4223.It Xo Ic monitor-bell
4224.Op Ic on | off
4225.Xc
4226Monitor for a bell in the window.
4227Windows with a bell are highlighted in the status line.
4228.Pp
4229.It Xo Ic monitor-silence
4230.Op Ic interval
4231.Xc
4232Monitor for silence (no activity) in the window within
4233.Ic interval
4234seconds.
4235Windows that have been silent for the interval are highlighted in the
4236status line.
4237An interval of zero disables the monitoring.
4238.Pp
4239.It Ic other-pane-height Ar height
4240Set the height of the other panes (not the main pane) in the
4241.Ic main-horizontal
4242layout.
4243If this option is set to 0 (the default), it will have no effect.
4244If both the
4245.Ic main-pane-height
4246and
4247.Ic other-pane-height
4248options are set, the main pane will grow taller to make the other panes the
4249specified height, but will never shrink to do so.
4250If suffixed by
4251.Ql % ,
4252this is a percentage of the window size.
4253.Pp
4254.It Ic other-pane-width Ar width
4255Like
4256.Ic other-pane-height ,
4257but set the width of other panes in the
4258.Ic main-vertical
4259layout.
4260.Pp
4261.It Ic pane-active-border-style Ar style
4262Set the pane border style for the currently active pane.
4263For how to specify
4264.Ar style ,
4265see the
4266.Sx STYLES
4267section.
4268Attributes are ignored.
4269.Pp
4270.It Ic pane-base-index Ar index
4271Like
4272.Ic base-index ,
4273but set the starting index for pane numbers.
4274.Pp
4275.It Ic pane-border-format Ar format
4276Set the text shown in pane border status lines.
4277.Pp
4278.It Xo Ic pane-border-indicators
4279.Op Ic off | colour | arrows | both
4280.Xc
4281Indicate active pane by colouring only half of the border in windows with
4282exactly two panes, by displaying arrow markers, by drawing both or neither.
4283.Pp
4284.It Ic pane-border-lines Ar type
4285Set the type of characters used for drawing pane borders.
4286.Ar type
4287may be one of:
4288.Bl -tag -width Ds
4289.It single
4290single lines using ACS or UTF-8 characters
4291.It double
4292double lines using UTF-8 characters
4293.It heavy
4294heavy lines using UTF-8 characters
4295.It simple
4296simple ASCII characters
4297.It number
4298the pane number
4299.El
4300.Pp
4301.Ql double
4302and
4303.Ql heavy
4304will fall back to standard ACS line drawing when UTF-8 is not supported.
4305.Pp
4306.It Xo Ic pane-border-status
4307.Op Ic off | top | bottom
4308.Xc
4309Turn pane border status lines off or set their position.
4310.Pp
4311.It Ic pane-border-style Ar style
4312Set the pane border style for panes aside from the active pane.
4313For how to specify
4314.Ar style ,
4315see the
4316.Sx STYLES
4317section.
4318Attributes are ignored.
4319.Pp
4320.It Ic popup-style Ar style
4321Set the popup style.
4322For how to specify
4323.Ar style ,
4324see the
4325.Sx STYLES
4326section.
4327Attributes are ignored.
4328.Pp
4329.It Ic popup-border-style Ar style
4330Set the popup border style.
4331For how to specify
4332.Ar style ,
4333see the
4334.Sx STYLES
4335section.
4336Attributes are ignored.
4337.Pp
4338.It Ic popup-border-lines Ar type
4339Set the type of characters used for drawing popup borders.
4340.Ar type
4341may be one of:
4342.Bl -tag -width Ds
4343.It single
4344single lines using ACS or UTF-8 characters (default)
4345.It rounded
4346variation of single with rounded corners using UTF-8 characters
4347.It double
4348double lines using UTF-8 characters
4349.It heavy
4350heavy lines using UTF-8 characters
4351.It simple
4352simple ASCII characters
4353.It padded
4354simple ASCII space character
4355.It none
4356no border
4357.El
4358.Pp
4359.Ql double
4360and
4361.Ql heavy
4362will fall back to standard ACS line drawing when UTF-8 is not supported.
4363.Pp
4364.It Ic window-status-activity-style Ar style
4365Set status line style for windows with an activity alert.
4366For how to specify
4367.Ar style ,
4368see the
4369.Sx STYLES
4370section.
4371.Pp
4372.It Ic window-status-bell-style Ar style
4373Set status line style for windows with a bell alert.
4374For how to specify
4375.Ar style ,
4376see the
4377.Sx STYLES
4378section.
4379.Pp
4380.It Ic window-status-current-format Ar string
4381Like
4382.Ar window-status-format ,
4383but is the format used when the window is the current window.
4384.Pp
4385.It Ic window-status-current-style Ar style
4386Set status line style for the currently active window.
4387For how to specify
4388.Ar style ,
4389see the
4390.Sx STYLES
4391section.
4392.Pp
4393.It Ic window-status-format Ar string
4394Set the format in which the window is displayed in the status line window list.
4395See the
4396.Sx FORMATS
4397and
4398.Sx STYLES
4399sections.
4400.Pp
4401.It Ic window-status-last-style Ar style
4402Set status line style for the last active window.
4403For how to specify
4404.Ar style ,
4405see the
4406.Sx STYLES
4407section.
4408.Pp
4409.It Ic window-status-separator Ar string
4410Sets the separator drawn between windows in the status line.
4411The default is a single space character.
4412.Pp
4413.It Ic window-status-style Ar style
4414Set status line style for a single window.
4415For how to specify
4416.Ar style ,
4417see the
4418.Sx STYLES
4419section.
4420.Pp
4421.It Xo Ic window-size
4422.Ar largest | Ar smallest | Ar manual | Ar latest
4423.Xc
4424Configure how
4425.Nm
4426determines the window size.
4427If set to
4428.Ar largest ,
4429the size of the largest attached session is used; if
4430.Ar smallest ,
4431the size of the smallest.
4432If
4433.Ar manual ,
4434the size of a new window is set from the
4435.Ic default-size
4436option and windows are resized automatically.
4437With
4438.Ar latest ,
4439.Nm
4440uses the size of the client that had the most recent activity.
4441See also the
4442.Ic resize-window
4443command and the
4444.Ic aggressive-resize
4445option.
4446.Pp
4447.It Xo Ic wrap-search
4448.Op Ic on | off
4449.Xc
4450If this option is set, searches will wrap around the end of the pane contents.
4451The default is on.
4452.El
4453.Pp
4454Available pane options are:
4455.Pp
4456.Bl -tag -width Ds -compact
4457.It Xo Ic allow-passthrough
4458.Op Ic on | off
4459.Xc
4460Allow programs in the pane to bypass
4461.Nm
4462using a terminal escape sequence (\eePtmux;...\ee\e\e).
4463.Pp
4464.It Xo Ic allow-rename
4465.Op Ic on | off
4466.Xc
4467Allow programs in the pane to change the window name using a terminal escape
4468sequence (\eek...\ee\e\e).
4469.Pp
4470.It Xo Ic alternate-screen
4471.Op Ic on | off
4472.Xc
4473This option configures whether programs running inside the pane may use the
4474terminal alternate screen feature, which allows the
4475.Em smcup
4476and
4477.Em rmcup
4478.Xr terminfo 5
4479capabilities.
4480The alternate screen feature preserves the contents of the window when an
4481interactive application starts and restores it on exit, so that any output
4482visible before the application starts reappears unchanged after it exits.
4483.Pp
4484.It Ic cursor-colour Ar colour
4485Set the colour of the cursor.
4486.Pp
4487.It Ic pane-colours[] Ar colour
4488The default colour palette.
4489Each entry in the array defines the colour
4490.Nm
4491uses when the colour with that index is requested.
4492The index may be from zero to 255.
4493.Pp
4494.It Ic cursor-style Ar style
4495Set the style of the cursor.
4496Available styles are:
4497.Ic default ,
4498.Ic blinking-block ,
4499.Ic block ,
4500.Ic blinking-underline ,
4501.Ic underline ,
4502.Ic blinking-bar ,
4503.Ic bar .
4504.Pp
4505.It Xo Ic remain-on-exit
4506.Op Ic on | off | failed
4507.Xc
4508A pane with this flag set is not destroyed when the program running in it
4509exits.
4510If set to
4511.Ic failed ,
4512then only when the program exit status is not zero.
4513The pane may be reactivated with the
4514.Ic respawn-pane
4515command.
4516.Pp
4517.It Ic remain-on-exit-format Ar string
4518Set the text shown at the bottom of exited panes when
4519.Ic remain-on-exit
4520is enabled.
4521.Pp
4522.It Xo Ic scroll-on-clear
4523.Op Ic on | off
4524.Xc
4525When the entire screen is cleared and this option is on, scroll the contents of
4526the screen into history before clearing it.
4527.Pp
4528.It Xo Ic synchronize-panes
4529.Op Ic on | off
4530.Xc
4531Duplicate input to all other panes in the same window where this option is also
4532on (only for panes that are not in any mode).
4533.Pp
4534.It Ic window-active-style Ar style
4535Set the pane style when it is the active pane.
4536For how to specify
4537.Ar style ,
4538see the
4539.Sx STYLES
4540section.
4541.Pp
4542.It Ic window-style Ar style
4543Set the pane style.
4544For how to specify
4545.Ar style ,
4546see the
4547.Sx STYLES
4548section.
4549.El
4550.Sh HOOKS
4551.Nm
4552allows commands to run on various triggers, called
4553.Em hooks .
4554Most
4555.Nm
4556commands have an
4557.Em after
4558hook and there are a number of hooks not associated with commands.
4559.Pp
4560Hooks are stored as array options, members of the array are executed in
4561order when the hook is triggered.
4562Like options different hooks may be global or belong to a session, window or pane.
4563Hooks may be configured with the
4564.Ic set-hook
4565or
4566.Ic set-option
4567commands and displayed with
4568.Ic show-hooks
4569or
4570.Ic show-options
4571.Fl H .
4572The following two commands are equivalent:
4573.Bd -literal -offset indent.
4574set-hook -g pane-mode-changed[42] 'set -g status-left-style bg=red'
4575set-option -g pane-mode-changed[42] 'set -g status-left-style bg=red'
4576.Ed
4577.Pp
4578Setting a hook without specifying an array index clears the hook and sets the
4579first member of the array.
4580.Pp
4581A command's after
4582hook is run after it completes, except when the command is run as part of a hook
4583itself.
4584They are named with an
4585.Ql after-
4586prefix.
4587For example, the following command adds a hook to select the even-vertical
4588layout after every
4589.Ic split-window :
4590.Bd -literal -offset indent
4591set-hook -g after-split-window "selectl even-vertical"
4592.Ed
4593.Pp
4594All the notifications listed in the
4595.Sx CONTROL MODE
4596section are hooks (without any arguments), except
4597.Ic %exit .
4598The following additional hooks are available:
4599.Bl -tag -width "XXXXXXXXXXXXXXXXXXXXXX"
4600.It alert-activity
4601Run when a window has activity.
4602See
4603.Ic monitor-activity .
4604.It alert-bell
4605Run when a window has received a bell.
4606See
4607.Ic monitor-bell .
4608.It alert-silence
4609Run when a window has been silent.
4610See
4611.Ic monitor-silence .
4612.It client-active
4613Run when a client becomes the latest active client of its session.
4614.It client-attached
4615Run when a client is attached.
4616.It client-detached
4617Run when a client is detached
4618.It client-focus-in
4619Run when focus enters a client
4620.It client-focus-out
4621Run when focus exits a client
4622.It client-resized
4623Run when a client is resized.
4624.It client-session-changed
4625Run when a client's attached session is changed.
4626.It pane-died
4627Run when the program running in a pane exits, but
4628.Ic remain-on-exit
4629is on so the pane has not closed.
4630.It pane-exited
4631Run when the program running in a pane exits.
4632.It pane-focus-in
4633Run when the focus enters a pane, if the
4634.Ic focus-events
4635option is on.
4636.It pane-focus-out
4637Run when the focus exits a pane, if the
4638.Ic focus-events
4639option is on.
4640.It pane-set-clipboard
4641Run when the terminal clipboard is set using the
4642.Xr xterm 1
4643escape sequence.
4644.It session-created
4645Run when a new session created.
4646.It session-closed
4647Run when a session closed.
4648.It session-renamed
4649Run when a session is renamed.
4650.It window-linked
4651Run when a window is linked into a session.
4652.It window-renamed
4653Run when a window is renamed.
4654.It window-resized
4655Run when a window is resized.
4656This may be after the
4657.Ar client-resized
4658hook is run.
4659.It window-unlinked
4660Run when a window is unlinked from a session.
4661.El
4662.Pp
4663Hooks are managed with these commands:
4664.Bl -tag -width Ds
4665.It Xo Ic set-hook
4666.Op Fl agpRuw
4667.Op Fl t Ar target-pane
4668.Ar hook-name
4669.Ar command
4670.Xc
4671Without
4672.Fl R ,
4673sets (or with
4674.Fl u
4675unsets) hook
4676.Ar hook-name
4677to
4678.Ar command .
4679The flags are the same as for
4680.Ic set-option .
4681.Pp
4682With
4683.Fl R ,
4684run
4685.Ar hook-name
4686immediately.
4687.It Xo Ic show-hooks
4688.Op Fl gpw
4689.Op Fl t Ar target-pane
4690.Xc
4691Shows hooks.
4692The flags are the same as for
4693.Ic show-options .
4694.El
4695.Sh MOUSE SUPPORT
4696If the
4697.Ic mouse
4698option is on (the default is off),
4699.Nm
4700allows mouse events to be bound as keys.
4701The name of each key is made up of a mouse event (such as
4702.Ql MouseUp1 )
4703and a location suffix, one of the following:
4704.Bl -column "XXXXXXXXXXXXX" -offset indent
4705.It Li "Pane" Ta "the contents of a pane"
4706.It Li "Border" Ta "a pane border"
4707.It Li "Status" Ta "the status line window list"
4708.It Li "StatusLeft" Ta "the left part of the status line"
4709.It Li "StatusRight" Ta "the right part of the status line"
4710.It Li "StatusDefault" Ta "any other part of the status line"
4711.El
4712.Pp
4713The following mouse events are available:
4714.Bl -column "MouseDown1" "MouseDrag1" "WheelDown" -offset indent
4715.It Li "WheelUp" Ta "WheelDown" Ta ""
4716.It Li "MouseDown1" Ta "MouseUp1" Ta "MouseDrag1" Ta "MouseDragEnd1"
4717.It Li "MouseDown2" Ta "MouseUp2" Ta "MouseDrag2" Ta "MouseDragEnd2"
4718.It Li "MouseDown3" Ta "MouseUp3" Ta "MouseDrag3" Ta "MouseDragEnd3"
4719.It Li "SecondClick1" Ta "SecondClick2" Ta "SecondClick3"
4720.It Li "DoubleClick1" Ta "DoubleClick2" Ta "DoubleClick3"
4721.It Li "TripleClick1" Ta "TripleClick2" Ta "TripleClick3"
4722.El
4723.Pp
4724The
4725.Ql SecondClick
4726events are fired for the second click of a double click, even if there may be a
4727third click which will fire
4728.Ql TripleClick
4729instead of
4730.Ql DoubleClick .
4731.Pp
4732Each should be suffixed with a location, for example
4733.Ql MouseDown1Status .
4734.Pp
4735The special token
4736.Ql {mouse}
4737or
4738.Ql =
4739may be used as
4740.Ar target-window
4741or
4742.Ar target-pane
4743in commands bound to mouse key bindings.
4744It resolves to the window or pane over which the mouse event took place
4745(for example, the window in the status line over which button 1 was released for a
4746.Ql MouseUp1Status
4747binding, or the pane over which the wheel was scrolled for a
4748.Ql WheelDownPane
4749binding).
4750.Pp
4751The
4752.Ic send-keys
4753.Fl M
4754flag may be used to forward a mouse event to a pane.
4755.Pp
4756The default key bindings allow the mouse to be used to select and resize panes,
4757to copy text and to change window using the status line.
4758These take effect if the
4759.Ic mouse
4760option is turned on.
4761.Sh FORMATS
4762Certain commands accept the
4763.Fl F
4764flag with a
4765.Ar format
4766argument.
4767This is a string which controls the output format of the command.
4768Format variables are enclosed in
4769.Ql #{
4770and
4771.Ql } ,
4772for example
4773.Ql #{session_name} .
4774The possible variables are listed in the table below, or the name of a
4775.Nm
4776option may be used for an option's value.
4777Some variables have a shorter alias such as
4778.Ql #S ;
4779.Ql ##
4780is replaced by a single
4781.Ql # ,
4782.Ql #,
4783by a
4784.Ql \&,
4785and
4786.Ql #}
4787by a
4788.Ql } .
4789.Pp
4790Conditionals are available by prefixing with
4791.Ql \&?
4792and separating two alternatives with a comma;
4793if the specified variable exists and is not zero, the first alternative
4794is chosen, otherwise the second is used.
4795For example
4796.Ql #{?session_attached,attached,not attached}
4797will include the string
4798.Ql attached
4799if the session is attached and the string
4800.Ql not attached
4801if it is unattached, or
4802.Ql #{?automatic-rename,yes,no}
4803will include
4804.Ql yes
4805if
4806.Ic automatic-rename
4807is enabled, or
4808.Ql no
4809if not.
4810Conditionals can be nested arbitrarily.
4811Inside a conditional,
4812.Ql \&,
4813and
4814.Ql }
4815must be escaped as
4816.Ql #,
4817and
4818.Ql #} ,
4819unless they are part of a
4820.Ql #{...}
4821replacement.
4822For example:
4823.Bd -literal -offset indent
4824#{?pane_in_mode,#[fg=white#,bg=red],#[fg=red#,bg=white]}#W .
4825.Ed
4826.Pp
4827String comparisons may be expressed by prefixing two comma-separated
4828alternatives by
4829.Ql == ,
4830.Ql != ,
4831.Ql < ,
4832.Ql > ,
4833.Ql <=
4834or
4835.Ql >=
4836and a colon.
4837For example
4838.Ql #{==:#{host},myhost}
4839will be replaced by
4840.Ql 1
4841if running on
4842.Ql myhost ,
4843otherwise by
4844.Ql 0 .
4845.Ql ||
4846and
4847.Ql &&
4848evaluate to true if either or both of two comma-separated alternatives are
4849true, for example
4850.Ql #{||:#{pane_in_mode},#{alternate_on}} .
4851.Pp
4852An
4853.Ql m
4854specifies an
4855.Xr fnmatch 3
4856or regular expression comparison.
4857The first argument is the pattern and the second the string to compare.
4858An optional argument specifies flags:
4859.Ql r
4860means the pattern is a regular expression instead of the default
4861.Xr fnmatch 3
4862pattern, and
4863.Ql i
4864means to ignore case.
4865For example:
4866.Ql #{m:*foo*,#{host}}
4867or
4868.Ql #{m/ri:^A,MYVAR} .
4869A
4870.Ql C
4871performs a search for an
4872.Xr fnmatch 3
4873pattern or regular expression in the pane content and evaluates to zero if not
4874found, or a line number if found.
4875Like
4876.Ql m ,
4877an
4878.Ql r
4879flag means search for a regular expression and
4880.Ql i
4881ignores case.
4882For example:
4883.Ql #{C/r:^Start}
4884.Pp
4885Numeric operators may be performed by prefixing two comma-separated alternatives with an
4886.Ql e
4887and an operator.
4888An optional
4889.Ql f
4890flag may be given after the operator to use floating point numbers, otherwise integers are used.
4891This may be followed by a number giving the number of decimal places to use for the result.
4892The available operators are:
4893addition
4894.Ql + ,
4895subtraction
4896.Ql - ,
4897multiplication
4898.Ql * ,
4899division
4900.Ql / ,
4901modulus
4902.Ql m
4903or
4904.Ql %
4905(note that
4906.Ql %
4907must be escaped as
4908.Ql %%
4909in formats which are also expanded by
4910.Xr strftime 3 )
4911and numeric comparison operators
4912.Ql == ,
4913.Ql != ,
4914.Ql < ,
4915.Ql <= ,
4916.Ql >
4917and
4918.Ql >= .
4919For example,
4920.Ql #{e|*|f|4:5.5,3}
4921multiplies 5.5 by 3 for a result with four decimal places and
4922.Ql #{e|%%:7,3}
4923returns the modulus of 7 and 3.
4924.Ql a
4925replaces a numeric argument by its ASCII equivalent, so
4926.Ql #{a:98}
4927results in
4928.Ql b .
4929.Ql c
4930replaces a
4931.Nm
4932colour by its six-digit hexadecimal RGB value.
4933.Pp
4934A limit may be placed on the length of the resultant string by prefixing it
4935by an
4936.Ql = ,
4937a number and a colon.
4938Positive numbers count from the start of the string and negative from the end,
4939so
4940.Ql #{=5:pane_title}
4941will include at most the first five characters of the pane title, or
4942.Ql #{=-5:pane_title}
4943the last five characters.
4944A suffix or prefix may be given as a second argument - if provided then it is
4945appended or prepended to the string if the length has been trimmed, for example
4946.Ql #{=/5/...:pane_title}
4947will append
4948.Ql ...
4949if the pane title is more than five characters.
4950Similarly,
4951.Ql p
4952pads the string to a given width, for example
4953.Ql #{p10:pane_title}
4954will result in a width of at least 10 characters.
4955A positive width pads on the left, a negative on the right.
4956.Ql n
4957expands to the length of the variable and
4958.Ql w
4959to its width when displayed, for example
4960.Ql #{n:window_name} .
4961.Pp
4962Prefixing a time variable with
4963.Ql t:\&
4964will convert it to a string, so if
4965.Ql #{window_activity}
4966gives
4967.Ql 1445765102 ,
4968.Ql #{t:window_activity}
4969gives
4970.Ql Sun Oct 25 09:25:02 2015 .
4971Adding
4972.Ql p (
4973.Ql `t/p` )
4974will use shorter but less accurate time format for times in the past.
4975A custom format may be given using an
4976.Ql f
4977suffix (note that
4978.Ql %
4979must be escaped as
4980.Ql %%
4981if the format is separately being passed through
4982.Xr strftime 3 ,
4983for example in the
4984.Ic status-left
4985option):
4986.Ql #{t/f/%%H#:%%M:window_activity} ,
4987see
4988.Xr strftime 3 .
4989.Pp
4990The
4991.Ql b:\&
4992and
4993.Ql d:\&
4994prefixes are
4995.Xr basename 3
4996and
4997.Xr dirname 3
4998of the variable respectively.
4999.Ql q:\&
5000will escape
5001.Xr sh 1
5002special characters or with a
5003.Ql h
5004suffix, escape hash characters (so
5005.Ql #
5006becomes
5007.Ql ## ) .
5008.Ql E:\&
5009will expand the format twice, for example
5010.Ql #{E:status-left}
5011is the result of expanding the content of the
5012.Ic status-left
5013option rather than the option itself.
5014.Ql T:\&
5015is like
5016.Ql E:\&
5017but also expands
5018.Xr strftime 3
5019specifiers.
5020.Ql S:\& ,
5021.Ql W:\&
5022or
5023.Ql P:\&
5024will loop over each session, window or pane and insert the format once
5025for each.
5026For windows and panes, two comma-separated formats may be given:
5027the second is used for the current window or active pane.
5028For example, to get a list of windows formatted like the status line:
5029.Bd -literal -offset indent
5030#{W:#{E:window-status-format} ,#{E:window-status-current-format} }
5031.Ed
5032.Pp
5033.Ql N:\&
5034checks if a window (without any suffix or with the
5035.Ql w
5036suffix) or a session (with the
5037.Ql s
5038suffix) name exists, for example
5039.Ql `N/w:foo`
5040is replaced with 1 if a window named
5041.Ql foo
5042exists.
5043.Pp
5044A prefix of the form
5045.Ql s/foo/bar/:\&
5046will substitute
5047.Ql foo
5048with
5049.Ql bar
5050throughout.
5051The first argument may be an extended regular expression and a final argument may be
5052.Ql i
5053to ignore case, for example
5054.Ql s/a(.)/\e1x/i:\&
5055would change
5056.Ql abABab
5057into
5058.Ql bxBxbx .
5059.Pp
5060In addition, the last line of a shell command's output may be inserted using
5061.Ql #() .
5062For example,
5063.Ql #(uptime)
5064will insert the system's uptime.
5065When constructing formats,
5066.Nm
5067does not wait for
5068.Ql #()
5069commands to finish; instead, the previous result from running the same command is used,
5070or a placeholder if the command has not been run before.
5071If the command hasn't exited, the most recent line of output will be used, but the status
5072line will not be updated more than once a second.
5073Commands are executed using
5074.Pa /bin/sh
5075and with the
5076.Nm
5077global environment set (see the
5078.Sx GLOBAL AND SESSION ENVIRONMENT
5079section).
5080.Pp
5081An
5082.Ql l
5083specifies that a string should be interpreted literally and not expanded.
5084For example
5085.Ql #{l:#{?pane_in_mode,yes,no}}
5086will be replaced by
5087.Ql #{?pane_in_mode,yes,no} .
5088.Pp
5089The following variables are available, where appropriate:
5090.Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX"
5091.It Sy "Variable name" Ta Sy "Alias" Ta Sy "Replaced with"
5092.It Li "active_window_index" Ta "" Ta "Index of active window in session"
5093.It Li "alternate_on" Ta "" Ta "1 if pane is in alternate screen"
5094.It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen"
5095.It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen"
5096.It Li "buffer_created" Ta "" Ta "Time buffer created"
5097.It Li "buffer_name" Ta "" Ta "Name of buffer"
5098.It Li "buffer_sample" Ta "" Ta "Sample of start of buffer"
5099.It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes"
5100.It Li "client_activity" Ta "" Ta "Time client last had activity"
5101.It Li "client_cell_height" Ta "" Ta "Height of each client cell in pixels"
5102.It Li "client_cell_width" Ta "" Ta "Width of each client cell in pixels"
5103.It Li "client_control_mode" Ta "" Ta "1 if client is in control mode"
5104.It Li "client_created" Ta "" Ta "Time client created"
5105.It Li "client_discarded" Ta "" Ta "Bytes discarded when client behind"
5106.It Li "client_flags" Ta "" Ta "List of client flags"
5107.It Li "client_height" Ta "" Ta "Height of client"
5108.It Li "client_key_table" Ta "" Ta "Current key table"
5109.It Li "client_last_session" Ta "" Ta "Name of the client's last session"
5110.It Li "client_name" Ta "" Ta "Name of client"
5111.It Li "client_pid" Ta "" Ta "PID of client process"
5112.It Li "client_prefix" Ta "" Ta "1 if prefix key has been pressed"
5113.It Li "client_readonly" Ta "" Ta "1 if client is read-only"
5114.It Li "client_session" Ta "" Ta "Name of the client's session"
5115.It Li "client_termfeatures" Ta "" Ta "Terminal features of client, if any"
5116.It Li "client_termname" Ta "" Ta "Terminal name of client"
5117.It Li "client_termtype" Ta "" Ta "Terminal type of client, if available"
5118.It Li "client_tty" Ta "" Ta "Pseudo terminal of client"
5119.It Li "client_uid" Ta "" Ta "UID of client process"
5120.It Li "client_user" Ta "" Ta "User of client process"
5121.It Li "client_utf8" Ta "" Ta "1 if client supports UTF-8"
5122.It Li "client_width" Ta "" Ta "Width of client"
5123.It Li "client_written" Ta "" Ta "Bytes written to client"
5124.It Li "command" Ta "" Ta "Name of command in use, if any"
5125.It Li "command_list_alias" Ta "" Ta "Command alias if listing commands"
5126.It Li "command_list_name" Ta "" Ta "Command name if listing commands"
5127.It Li "command_list_usage" Ta "" Ta "Command usage if listing commands"
5128.It Li "config_files" Ta "" Ta "List of configuration files loaded"
5129.It Li "copy_cursor_line" Ta "" Ta "Line the cursor is on in copy mode"
5130.It Li "copy_cursor_word" Ta "" Ta "Word under cursor in copy mode"
5131.It Li "copy_cursor_x" Ta "" Ta "Cursor X position in copy mode"
5132.It Li "copy_cursor_y" Ta "" Ta "Cursor Y position in copy mode"
5133.It Li "current_file" Ta "" Ta "Current configuration file"
5134.It Li "cursor_character" Ta "" Ta "Character at cursor in pane"
5135.It Li "cursor_flag" Ta "" Ta "Pane cursor flag"
5136.It Li "cursor_x" Ta "" Ta "Cursor X position in pane"
5137.It Li "cursor_y" Ta "" Ta "Cursor Y position in pane"
5138.It Li "history_bytes" Ta "" Ta "Number of bytes in window history"
5139.It Li "history_limit" Ta "" Ta "Maximum window history lines"
5140.It Li "history_size" Ta "" Ta "Size of history in lines"
5141.It Li "hook" Ta "" Ta "Name of running hook, if any"
5142.It Li "hook_client" Ta "" Ta "Name of client where hook was run, if any"
5143.It Li "hook_pane" Ta "" Ta "ID of pane where hook was run, if any"
5144.It Li "hook_session" Ta "" Ta "ID of session where hook was run, if any"
5145.It Li "hook_session_name" Ta "" Ta "Name of session where hook was run, if any"
5146.It Li "hook_window" Ta "" Ta "ID of window where hook was run, if any"
5147.It Li "hook_window_name" Ta "" Ta "Name of window where hook was run, if any"
5148.It Li "host" Ta "#H" Ta "Hostname of local host"
5149.It Li "host_short" Ta "#h" Ta "Hostname of local host (no domain name)"
5150.It Li "insert_flag" Ta "" Ta "Pane insert flag"
5151.It Li "keypad_cursor_flag" Ta "" Ta "Pane keypad cursor flag"
5152.It Li "keypad_flag" Ta "" Ta "Pane keypad flag"
5153.It Li "last_window_index" Ta "" Ta "Index of last window in session"
5154.It Li "line" Ta "" Ta "Line number in the list"
5155.It Li "mouse_all_flag" Ta "" Ta "Pane mouse all flag"
5156.It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag"
5157.It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag"
5158.It Li "mouse_line" Ta "" Ta "Line under mouse, if any"
5159.It Li "mouse_sgr_flag" Ta "" Ta "Pane mouse SGR flag"
5160.It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag"
5161.It Li "mouse_utf8_flag" Ta "" Ta "Pane mouse UTF-8 flag"
5162.It Li "mouse_word" Ta "" Ta "Word under mouse, if any"
5163.It Li "mouse_x" Ta "" Ta "Mouse X position, if any"
5164.It Li "mouse_y" Ta "" Ta "Mouse Y position, if any"
5165.It Li "next_session_id" Ta "" Ta "Unique session ID for next new session"
5166.It Li "origin_flag" Ta "" Ta "Pane origin flag"
5167.It Li "pane_active" Ta "" Ta "1 if active pane"
5168.It Li "pane_at_bottom" Ta "" Ta "1 if pane is at the bottom of window"
5169.It Li "pane_at_left" Ta "" Ta "1 if pane is at the left of window"
5170.It Li "pane_at_right" Ta "" Ta "1 if pane is at the right of window"
5171.It Li "pane_at_top" Ta "" Ta "1 if pane is at the top of window"
5172.It Li "pane_bg" Ta "" Ta "Pane background colour"
5173.It Li "pane_bottom" Ta "" Ta "Bottom of pane"
5174.It Li "pane_current_command" Ta "" Ta "Current command if available"
5175.It Li "pane_current_path" Ta "" Ta "Current path if available"
5176.It Li "pane_dead" Ta "" Ta "1 if pane is dead"
5177.It Li "pane_dead_signal" Ta "" Ta "Exit signal of process in dead pane"
5178.It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane"
5179.It Li "pane_dead_time" Ta "" Ta "Exit time of process in dead pane"
5180.It Li "pane_fg" Ta "" Ta "Pane foreground colour"
5181.It Li "pane_format" Ta "" Ta "1 if format is for a pane"
5182.It Li "pane_height" Ta "" Ta "Height of pane"
5183.It Li "pane_id" Ta "#D" Ta "Unique pane ID"
5184.It Li "pane_in_mode" Ta "" Ta "1 if pane is in a mode"
5185.It Li "pane_index" Ta "#P" Ta "Index of pane"
5186.It Li "pane_input_off" Ta "" Ta "1 if input to pane is disabled"
5187.It Li "pane_last" Ta "" Ta "1 if last pane"
5188.It Li "pane_left" Ta "" Ta "Left of pane"
5189.It Li "pane_marked" Ta "" Ta "1 if this is the marked pane"
5190.It Li "pane_marked_set" Ta "" Ta "1 if a marked pane is set"
5191.It Li "pane_mode" Ta "" Ta "Name of pane mode, if any"
5192.It Li "pane_path" Ta "" Ta "Path of pane (can be set by application)"
5193.It Li "pane_pid" Ta "" Ta "PID of first process in pane"
5194.It Li "pane_pipe" Ta "" Ta "1 if pane is being piped"
5195.It Li "pane_right" Ta "" Ta "Right of pane"
5196.It Li "pane_search_string" Ta "" Ta "Last search string in copy mode"
5197.It Li "pane_start_command" Ta "" Ta "Command pane started with"
5198.It Li "pane_start_path" Ta "" Ta "Path pane started with"
5199.It Li "pane_synchronized" Ta "" Ta "1 if pane is synchronized"
5200.It Li "pane_tabs" Ta "" Ta "Pane tab positions"
5201.It Li "pane_title" Ta "#T" Ta "Title of pane (can be set by application)"
5202.It Li "pane_top" Ta "" Ta "Top of pane"
5203.It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane"
5204.It Li "pane_width" Ta "" Ta "Width of pane"
5205.It Li "pid" Ta "" Ta "Server PID"
5206.It Li "rectangle_toggle" Ta "" Ta "1 if rectangle selection is activated"
5207.It Li "scroll_position" Ta "" Ta "Scroll position in copy mode"
5208.It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane"
5209.It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane"
5210.It Li "search_match" Ta "" Ta "Search match if any"
5211.It Li "search_present" Ta "" Ta "1 if search started in copy mode"
5212.It Li "selection_active" Ta "" Ta "1 if selection started and changes with the cursor in copy mode"
5213.It Li "selection_end_x" Ta "" Ta "X position of the end of the selection"
5214.It Li "selection_end_y" Ta "" Ta "Y position of the end of the selection"
5215.It Li "selection_present" Ta "" Ta "1 if selection started in copy mode"
5216.It Li "selection_start_x" Ta "" Ta "X position of the start of the selection"
5217.It Li "selection_start_y" Ta "" Ta "Y position of the start of the selection"
5218.It Li "session_activity" Ta "" Ta "Time of session last activity"
5219.It Li "session_alerts" Ta "" Ta "List of window indexes with alerts"
5220.It Li "session_attached" Ta "" Ta "Number of clients session is attached to"
5221.It Li "session_attached_list" Ta "" Ta "List of clients session is attached to"
5222.It Li "session_created" Ta "" Ta "Time session created"
5223.It Li "session_format" Ta "" Ta "1 if format is for a session"
5224.It Li "session_group" Ta "" Ta "Name of session group"
5225.It Li "session_group_attached" Ta "" Ta "Number of clients sessions in group are attached to"
5226.It Li "session_group_attached_list" Ta "" Ta "List of clients sessions in group are attached to"
5227.It Li "session_group_list" Ta "" Ta "List of sessions in group"
5228.It Li "session_group_many_attached" Ta "" Ta "1 if multiple clients attached to sessions in group"
5229.It Li "session_group_size" Ta "" Ta "Size of session group"
5230.It Li "session_grouped" Ta "" Ta "1 if session in a group"
5231.It Li "session_id" Ta "" Ta "Unique session ID"
5232.It Li "session_last_attached" Ta "" Ta "Time session last attached"
5233.It Li "session_many_attached" Ta "" Ta "1 if multiple clients attached"
5234.It Li "session_marked" Ta "" Ta "1 if this session contains the marked pane"
5235.It Li "session_name" Ta "#S" Ta "Name of session"
5236.It Li "session_path" Ta "" Ta "Working directory of session"
5237.It Li "session_stack" Ta "" Ta "Window indexes in most recent order"
5238.It Li "session_windows" Ta "" Ta "Number of windows in session"
5239.It Li "socket_path" Ta "" Ta "Server socket path"
5240.It Li "start_time" Ta "" Ta "Server start time"
5241.It Li "uid" Ta "" Ta "Server UID"
5242.It Li "user" Ta "" Ta "Server user"
5243.It Li "version" Ta "" Ta "Server version"
5244.It Li "window_active" Ta "" Ta "1 if window active"
5245.It Li "window_active_clients" Ta "" Ta "Number of clients viewing this window"
5246.It Li "window_active_clients_list" Ta "" Ta "List of clients viewing this window"
5247.It Li "window_active_sessions" Ta "" Ta "Number of sessions on which this window is active"
5248.It Li "window_active_sessions_list" Ta "" Ta "List of sessions on which this window is active"
5249.It Li "window_activity" Ta "" Ta "Time of window last activity"
5250.It Li "window_activity_flag" Ta "" Ta "1 if window has activity"
5251.It Li "window_bell_flag" Ta "" Ta "1 if window has bell"
5252.It Li "window_bigger" Ta "" Ta "1 if window is larger than client"
5253.It Li "window_cell_height" Ta "" Ta "Height of each cell in pixels"
5254.It Li "window_cell_width" Ta "" Ta "Width of each cell in pixels"
5255.It Li "window_end_flag" Ta "" Ta "1 if window has the highest index"
5256.It Li "window_flags" Ta "#F" Ta "Window flags with # escaped as ##"
5257.It Li "window_format" Ta "" Ta "1 if format is for a window"
5258.It Li "window_height" Ta "" Ta "Height of window"
5259.It Li "window_id" Ta "" Ta "Unique window ID"
5260.It Li "window_index" Ta "#I" Ta "Index of window"
5261.It Li "window_last_flag" Ta "" Ta "1 if window is the last used"
5262.It Li "window_layout" Ta "" Ta "Window layout description, ignoring zoomed window panes"
5263.It Li "window_linked" Ta "" Ta "1 if window is linked across sessions"
5264.It Li "window_linked_sessions" Ta "" Ta "Number of sessions this window is linked to"
5265.It Li "window_linked_sessions_list" Ta "" Ta "List of sessions this window is linked to"
5266.It Li "window_marked_flag" Ta "" Ta "1 if window contains the marked pane"
5267.It Li "window_name" Ta "#W" Ta "Name of window"
5268.It Li "window_offset_x" Ta "" Ta "X offset into window if larger than client"
5269.It Li "window_offset_y" Ta "" Ta "Y offset into window if larger than client"
5270.It Li "window_panes" Ta "" Ta "Number of panes in window"
5271.It Li "window_raw_flags" Ta "" Ta "Window flags with nothing escaped"
5272.It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert"
5273.It Li "window_stack_index" Ta "" Ta "Index in session most recent stack"
5274.It Li "window_start_flag" Ta "" Ta "1 if window has the lowest index"
5275.It Li "window_visible_layout" Ta "" Ta "Window layout description, respecting zoomed window panes"
5276.It Li "window_width" Ta "" Ta "Width of window"
5277.It Li "window_zoomed_flag" Ta "" Ta "1 if window is zoomed"
5278.It Li "wrap_flag" Ta "" Ta "Pane wrap flag"
5279.El
5280.Sh STYLES
5281.Nm
5282offers various options to specify the colour and attributes of aspects of the
5283interface, for example
5284.Ic status-style
5285for the status line.
5286In addition, embedded styles may be specified in format options, such as
5287.Ic status-left ,
5288by enclosing them in
5289.Ql #[
5290and
5291.Ql \&] .
5292.Pp
5293A style may be the single term
5294.Ql default
5295to specify the default style (which may come from an option, for example
5296.Ic status-style
5297in the status line) or a space
5298or comma separated list of the following:
5299.Bl -tag -width Ds
5300.It Ic fg=colour
5301Set the foreground colour.
5302The colour is one of:
5303.Ic black ,
5304.Ic red ,
5305.Ic green ,
5306.Ic yellow ,
5307.Ic blue ,
5308.Ic magenta ,
5309.Ic cyan ,
5310.Ic white ;
5311if supported the bright variants
5312.Ic brightred ,
5313.Ic brightgreen ,
5314.Ic brightyellow ;
5315.Ic colour0
5316to
5317.Ic colour255
5318from the 256-colour set;
5319.Ic default
5320for the default colour;
5321.Ic terminal
5322for the terminal default colour; or a hexadecimal RGB string such as
5323.Ql #ffffff .
5324.It Ic bg=colour
5325Set the background colour.
5326.It Ic none
5327Set no attributes (turn off any active attributes).
5328.It Xo Ic acs ,
5329.Ic bright
5330(or
5331.Ic bold ) ,
5332.Ic dim ,
5333.Ic underscore ,
5334.Ic blink ,
5335.Ic reverse ,
5336.Ic hidden ,
5337.Ic italics ,
5338.Ic overline ,
5339.Ic strikethrough ,
5340.Ic double-underscore ,
5341.Ic curly-underscore ,
5342.Ic dotted-underscore ,
5343.Ic dashed-underscore
5344.Xc
5345Set an attribute.
5346Any of the attributes may be prefixed with
5347.Ql no
5348to unset.
5349.Ic acs
5350is the terminal alternate character set.
5351.It Xo Ic align=left
5352(or
5353.Ic noalign ) ,
5354.Ic align=centre ,
5355.Ic align=right
5356.Xc
5357Align text to the left, centre or right of the available space if appropriate.
5358.It Ic fill=colour
5359Fill the available space with a background colour if appropriate.
5360.It Xo Ic list=on ,
5361.Ic list=focus ,
5362.Ic list=left-marker ,
5363.Ic list=right-marker ,
5364.Ic nolist
5365.Xc
5366Mark the position of the various window list components in the
5367.Ic status-format
5368option:
5369.Ic list=on
5370marks the start of the list;
5371.Ic list=focus
5372is the part of the list that should be kept in focus if the entire list won't fit
5373in the available space (typically the current window);
5374.Ic list=left-marker
5375and
5376.Ic list=right-marker
5377mark the text to be used to mark that text has been trimmed from the left or
5378right of the list if there is not enough space.
5379.It Xo Ic push-default ,
5380.Ic pop-default
5381.Xc
5382Store the current colours and attributes as the default or reset to the previous
5383default.
5384A
5385.Ic push-default
5386affects any subsequent use of the
5387.Ic default
5388term until a
5389.Ic pop-default .
5390Only one default may be pushed (each
5391.Ic push-default
5392replaces the previous saved default).
5393.It Xo Ic range=left ,
5394.Ic range=right ,
5395.Ic range=window|X ,
5396.Ic norange
5397.Xc
5398Mark a range in the
5399.Ic status-format
5400option.
5401.Ic range=left
5402and
5403.Ic range=right
5404are the text used for the
5405.Ql StatusLeft
5406and
5407.Ql StatusRight
5408mouse keys.
5409.Ic range=window|X
5410is the range for a window passed to the
5411.Ql Status
5412mouse key, where
5413.Ql X
5414is a window index.
5415.El
5416.Pp
5417Examples are:
5418.Bd -literal -offset indent
5419fg=yellow bold underscore blink
5420bg=black,fg=default,noreverse
5421.Ed
5422.Sh NAMES AND TITLES
5423.Nm
5424distinguishes between names and titles.
5425Windows and sessions have names, which may be used to specify them in targets
5426and are displayed in the status line and various lists: the name is the
5427.Nm
5428identifier for a window or session.
5429Only panes have titles.
5430A pane's title is typically set by the program running inside the pane using
5431an escape sequence (like it would set the
5432.Xr xterm 1
5433window title in
5434.Xr X 7 ) .
5435Windows themselves do not have titles - a window's title is the title of its
5436active pane.
5437.Nm
5438itself may set the title of the terminal in which the client is running, see
5439the
5440.Ic set-titles
5441option.
5442.Pp
5443A session's name is set with the
5444.Ic new-session
5445and
5446.Ic rename-session
5447commands.
5448A window's name is set with one of:
5449.Bl -enum -width Ds
5450.It
5451A command argument (such as
5452.Fl n
5453for
5454.Ic new-window
5455or
5456.Ic new-session ) .
5457.It
5458An escape sequence (if the
5459.Ic allow-rename
5460option is turned on):
5461.Bd -literal -offset indent
5462$ printf '\e033kWINDOW_NAME\e033\e\e'
5463.Ed
5464.It
5465Automatic renaming, which sets the name to the active command in the window's
5466active pane.
5467See the
5468.Ic automatic-rename
5469option.
5470.El
5471.Pp
5472When a pane is first created, its title is the hostname.
5473A pane's title can be set via the title setting escape sequence, for example:
5474.Bd -literal -offset indent
5475$ printf '\e033]2;My Title\e033\e\e'
5476.Ed
5477.Pp
5478It can also be modified with the
5479.Ic select-pane
5480.Fl T
5481command.
5482.Sh GLOBAL AND SESSION ENVIRONMENT
5483When the server is started,
5484.Nm
5485copies the environment into the
5486.Em global environment ;
5487in addition, each session has a
5488.Em session environment .
5489When a window is created, the session and global environments are merged.
5490If a variable exists in both, the value from the session environment is used.
5491The result is the initial environment passed to the new process.
5492.Pp
5493The
5494.Ic update-environment
5495session option may be used to update the session environment from the client
5496when a new session is created or an old reattached.
5497.Nm
5498also initialises the
5499.Ev TMUX
5500variable with some internal information to allow commands to be executed
5501from inside, and the
5502.Ev TERM
5503variable with the correct terminal setting of
5504.Ql screen .
5505.Pp
5506Variables in both session and global environments may be marked as hidden.
5507Hidden variables are not passed into the environment of new processes and
5508instead can only be used by tmux itself (for example in formats, see the
5509.Sx FORMATS
5510section).
5511.Pp
5512Commands to alter and view the environment are:
5513.Bl -tag -width Ds
5514.Tg setenv
5515.It Xo Ic set-environment
5516.Op Fl Fhgru
5517.Op Fl t Ar target-session
5518.Ar name Op Ar value
5519.Xc
5520.D1 Pq alias: Ic setenv
5521Set or unset an environment variable.
5522If
5523.Fl g
5524is used, the change is made in the global environment; otherwise, it is applied
5525to the session environment for
5526.Ar target-session .
5527If
5528.Fl F
5529is present, then
5530.Ar value
5531is expanded as a format.
5532The
5533.Fl u
5534flag unsets a variable.
5535.Fl r
5536indicates the variable is to be removed from the environment before starting a
5537new process.
5538.Fl h
5539marks the variable as hidden.
5540.Tg showenv
5541.It Xo Ic show-environment
5542.Op Fl hgs
5543.Op Fl t Ar target-session
5544.Op Ar variable
5545.Xc
5546.D1 Pq alias: Ic showenv
5547Display the environment for
5548.Ar target-session
5549or the global environment with
5550.Fl g .
5551If
5552.Ar variable
5553is omitted, all variables are shown.
5554Variables removed from the environment are prefixed with
5555.Ql - .
5556If
5557.Fl s
5558is used, the output is formatted as a set of Bourne shell commands.
5559.Fl h
5560shows hidden variables (omitted by default).
5561.El
5562.Sh STATUS LINE
5563.Nm
5564includes an optional status line which is displayed in the bottom line of each
5565terminal.
5566.Pp
5567By default, the status line is enabled and one line in height (it may be
5568disabled or made multiple lines with the
5569.Ic status
5570session option) and contains, from left-to-right: the name of the current
5571session in square brackets; the window list; the title of the active pane
5572in double quotes; and the time and date.
5573.Pp
5574Each line of the status line is configured with the
5575.Ic status-format
5576option.
5577The default is made of three parts: configurable left and right sections (which
5578may contain dynamic content such as the time or output from a shell command,
5579see the
5580.Ic status-left ,
5581.Ic status-left-length ,
5582.Ic status-right ,
5583and
5584.Ic status-right-length
5585options below), and a central window list.
5586By default, the window list shows the index, name and (if any) flag of the
5587windows present in the current session in ascending numerical order.
5588It may be customised with the
5589.Ar window-status-format
5590and
5591.Ar window-status-current-format
5592options.
5593The flag is one of the following symbols appended to the window name:
5594.Bl -column "Symbol" "Meaning" -offset indent
5595.It Sy "Symbol" Ta Sy "Meaning"
5596.It Li "*" Ta "Denotes the current window."
5597.It Li "-" Ta "Marks the last window (previously selected)."
5598.It Li "#" Ta "Window activity is monitored and activity has been detected."
5599.It Li "\&!" Ta "Window bells are monitored and a bell has occurred in the window."
5600.It Li "~" Ta "The window has been silent for the monitor-silence interval."
5601.It Li "M" Ta "The window contains the marked pane."
5602.It Li "Z" Ta "The window's active pane is zoomed."
5603.El
5604.Pp
5605The # symbol relates to the
5606.Ic monitor-activity
5607window option.
5608The window name is printed in inverted colours if an alert (bell, activity or
5609silence) is present.
5610.Pp
5611The colour and attributes of the status line may be configured, the entire
5612status line using the
5613.Ic status-style
5614session option and individual windows using the
5615.Ic window-status-style
5616window option.
5617.Pp
5618The status line is automatically refreshed at interval if it has changed, the
5619interval may be controlled with the
5620.Ic status-interval
5621session option.
5622.Pp
5623Commands related to the status line are as follows:
5624.Bl -tag -width Ds
5625.Tg clearphist
5626.It Xo Ic clear-prompt-history
5627.Op Fl T Ar prompt-type
5628.Xc
5629.D1 Pq alias: Ic clearphist
5630Clear status prompt history for prompt type
5631.Ar prompt-type .
5632If
5633.Fl T
5634is omitted, then clear history for all types.
5635See
5636.Ic command-prompt
5637for possible values for
5638.Ar prompt-type .
5639.It Xo Ic command-prompt
5640.Op Fl 1bFikN
5641.Op Fl I Ar inputs
5642.Op Fl p Ar prompts
5643.Op Fl t Ar target-client
5644.Op Fl T Ar prompt-type
5645.Op Ar template
5646.Xc
5647Open the command prompt in a client.
5648This may be used from inside
5649.Nm
5650to execute commands interactively.
5651.Pp
5652If
5653.Ar template
5654is specified, it is used as the command.
5655With
5656.Fl F ,
5657.Ar template
5658is expanded as a format.
5659.Pp
5660If present,
5661.Fl I
5662is a comma-separated list of the initial text for each prompt.
5663If
5664.Fl p
5665is given,
5666.Ar prompts
5667is a comma-separated list of prompts which are displayed in order; otherwise
5668a single prompt is displayed, constructed from
5669.Ar template
5670if it is present, or
5671.Ql \&:
5672if not.
5673.Pp
5674Before the command is executed, the first occurrence of the string
5675.Ql %%
5676and all occurrences of
5677.Ql %1
5678are replaced by the response to the first prompt, all
5679.Ql %2
5680are replaced with the response to the second prompt, and so on for further
5681prompts.
5682Up to nine prompt responses may be replaced
5683.Po
5684.Ql %1
5685to
5686.Ql %9
5687.Pc .
5688.Ql %%%
5689is like
5690.Ql %%
5691but any quotation marks are escaped.
5692.Pp
5693.Fl 1
5694makes the prompt only accept one key press, in this case the resulting input
5695is a single character.
5696.Fl k
5697is like
5698.Fl 1
5699but the key press is translated to a key name.
5700.Fl N
5701makes the prompt only accept numeric key presses.
5702.Fl i
5703executes the command every time the prompt input changes instead of when the
5704user exits the command prompt.
5705.Pp
5706.Fl T
5707tells
5708.Nm
5709the prompt type.
5710This affects what completions are offered when
5711.Em Tab
5712is pressed.
5713Available types are:
5714.Ql command ,
5715.Ql search ,
5716.Ql target
5717and
5718.Ql window-target .
5719.Pp
5720The following keys have a special meaning in the command prompt, depending
5721on the value of the
5722.Ic status-keys
5723option:
5724.Bl -column "FunctionXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXX" "emacsX" -offset indent
5725.It Sy "Function" Ta Sy "vi" Ta Sy "emacs"
5726.It Li "Cancel command prompt" Ta "q" Ta "Escape"
5727.It Li "Delete from cursor to start of word" Ta "" Ta "C-w"
5728.It Li "Delete entire command" Ta "d" Ta "C-u"
5729.It Li "Delete from cursor to end" Ta "D" Ta "C-k"
5730.It Li "Execute command" Ta "Enter" Ta "Enter"
5731.It Li "Get next command from history" Ta "" Ta "Down"
5732.It Li "Get previous command from history" Ta "" Ta "Up"
5733.It Li "Insert top paste buffer" Ta "p" Ta "C-y"
5734.It Li "Look for completions" Ta "Tab" Ta "Tab"
5735.It Li "Move cursor left" Ta "h" Ta "Left"
5736.It Li "Move cursor right" Ta "l" Ta "Right"
5737.It Li "Move cursor to end" Ta "$" Ta "C-e"
5738.It Li "Move cursor to next word" Ta "w" Ta "M-f"
5739.It Li "Move cursor to previous word" Ta "b" Ta "M-b"
5740.It Li "Move cursor to start" Ta "0" Ta "C-a"
5741.It Li "Transpose characters" Ta "" Ta "C-t"
5742.El
5743.Pp
5744With
5745.Fl b ,
5746the prompt is shown in the background and the invoking client does not exit
5747until it is dismissed.
5748.Tg confirm
5749.It Xo Ic confirm-before
5750.Op Fl b
5751.Op Fl p Ar prompt
5752.Op Fl t Ar target-client
5753.Ar command
5754.Xc
5755.D1 Pq alias: Ic confirm
5756Ask for confirmation before executing
5757.Ar command .
5758If
5759.Fl p
5760is given,
5761.Ar prompt
5762is the prompt to display; otherwise a prompt is constructed from
5763.Ar command .
5764It may contain the special character sequences supported by the
5765.Ic status-left
5766option.
5767With
5768.Fl b ,
5769the prompt is shown in the background and the invoking client does not exit
5770until it is dismissed.
5771.Tg menu
5772.It Xo Ic display-menu
5773.Op Fl O
5774.Op Fl c Ar target-client
5775.Op Fl t Ar target-pane
5776.Op Fl T Ar title
5777.Op Fl x Ar position
5778.Op Fl y Ar position
5779.Ar name
5780.Ar key
5781.Ar command
5782.Ar ...
5783.Xc
5784.D1 Pq alias: Ic menu
5785Display a menu on
5786.Ar target-client .
5787.Ar target-pane
5788gives the target for any commands run from the menu.
5789.Pp
5790A menu is passed as a series of arguments: first the menu item name,
5791second the key shortcut (or empty for none) and third the command
5792to run when the menu item is chosen.
5793The name and command are formats, see the
5794.Sx FORMATS
5795and
5796.Sx STYLES
5797sections.
5798If the name begins with a hyphen (-), then the item is disabled (shown dim) and
5799may not be chosen.
5800The name may be empty for a separator line, in which case both the key and
5801command should be omitted.
5802.Pp
5803.Fl T
5804is a format for the menu title (see
5805.Sx FORMATS ) .
5806.Pp
5807.Fl x
5808and
5809.Fl y
5810give the position of the menu.
5811Both may be a row or column number, or one of the following special values:
5812.Bl -column "XXXXX" "XXXX" -offset indent
5813.It Sy "Value" Ta Sy "Flag" Ta Sy "Meaning"
5814.It Li "C" Ta "Both" Ta "The centre of the terminal"
5815.It Li "R" Ta Fl x Ta "The right side of the terminal"
5816.It Li "P" Ta "Both" Ta "The bottom left of the pane"
5817.It Li "M" Ta "Both" Ta "The mouse position"
5818.It Li "W" Ta "Both" Ta "The window position on the status line"
5819.It Li "S" Ta Fl y Ta "The line above or below the status line"
5820.El
5821.Pp
5822Or a format, which is expanded including the following additional variables:
5823.Bl -column "XXXXXXXXXXXXXXXXXXXXXXXXXX" -offset indent
5824.It Sy "Variable name" Ta Sy "Replaced with"
5825.It Li "popup_centre_x" Ta "Centered in the client"
5826.It Li "popup_centre_y" Ta "Centered in the client"
5827.It Li "popup_height" Ta "Height of menu or popup"
5828.It Li "popup_mouse_bottom" Ta "Bottom of at the mouse"
5829.It Li "popup_mouse_centre_x" Ta "Horizontal centre at the mouse"
5830.It Li "popup_mouse_centre_y" Ta "Vertical centre at the mouse"
5831.It Li "popup_mouse_top" Ta "Top at the mouse"
5832.It Li "popup_mouse_x" Ta "Mouse X position"
5833.It Li "popup_mouse_y" Ta "Mouse Y position"
5834.It Li "popup_pane_bottom" Ta "Bottom of the pane"
5835.It Li "popup_pane_left" Ta "Left of the pane"
5836.It Li "popup_pane_right" Ta "Right of the pane"
5837.It Li "popup_pane_top" Ta "Top of the pane"
5838.It Li "popup_status_line_y" Ta "Above or below the status line"
5839.It Li "popup_width" Ta "Width of menu or popup"
5840.It Li "popup_window_status_line_x" Ta "At the window position in status line"
5841.It Li "popup_window_status_line_y" Ta "At the status line showing the window"
5842.El
5843.Pp
5844Each menu consists of items followed by a key shortcut shown in brackets.
5845If the menu is too large to fit on the terminal, it is not displayed.
5846Pressing the key shortcut chooses the corresponding item.
5847If the mouse is enabled and the menu is opened from a mouse key binding,
5848releasing the mouse button with an item selected chooses that item and
5849releasing the mouse button without an item selected closes the menu.
5850.Fl O
5851changes this behaviour so that the menu does not close when the mouse button is
5852released without an item selected the menu is not closed and a mouse button
5853must be clicked to choose an item.
5854.Pp
5855The following keys are also available:
5856.Bl -column "Key" "Function" -offset indent
5857.It Sy "Key" Ta Sy "Function"
5858.It Li "Enter" Ta "Choose selected item"
5859.It Li "Up" Ta "Select previous item"
5860.It Li "Down" Ta "Select next item"
5861.It Li "q" Ta "Exit menu"
5862.El
5863.Tg display
5864.It Xo Ic display-message
5865.Op Fl aINpv
5866.Op Fl c Ar target-client
5867.Op Fl d Ar delay
5868.Op Fl t Ar target-pane
5869.Op Ar message
5870.Xc
5871.D1 Pq alias: Ic display
5872Display a message.
5873If
5874.Fl p
5875is given, the output is printed to stdout, otherwise it is displayed in the
5876.Ar target-client
5877status line for up to
5878.Ar delay
5879milliseconds.
5880If
5881.Ar delay
5882is not given, the
5883.Ic display-time
5884option is used; a delay of zero waits for a key press.
5885.Ql N
5886ignores key presses and closes only after the delay expires.
5887The format of
5888.Ar message
5889is described in the
5890.Sx FORMATS
5891section; information is taken from
5892.Ar target-pane
5893if
5894.Fl t
5895is given, otherwise the active pane.
5896.Pp
5897.Fl v
5898prints verbose logging as the format is parsed and
5899.Fl a
5900lists the format variables and their values.
5901.Pp
5902.Fl I
5903forwards any input read from stdin to the empty pane given by
5904.Ar target-pane .
5905.Tg popup
5906.It Xo Ic display-popup
5907.Op Fl BCE
5908.Op Fl b Ar border-lines
5909.Op Fl c Ar target-client
5910.Op Fl d Ar start-directory
5911.Op Fl e Ar environment
5912.Op Fl h Ar height
5913.Op Fl s Ar style
5914.Op Fl S Ar border-style
5915.Op Fl t Ar target-pane
5916.Op Fl T Ar title
5917.Op Fl w Ar width
5918.Op Fl x Ar position
5919.Op Fl y Ar position
5920.Op Ar shell-command
5921.Xc
5922.D1 Pq alias: Ic popup
5923Display a popup running
5924.Ar shell-command
5925on
5926.Ar target-client .
5927A popup is a rectangular box drawn over the top of any panes.
5928Panes are not updated while a popup is present.
5929.Pp
5930.Fl E
5931closes the popup automatically when
5932.Ar shell-command
5933exits.
5934Two
5935.Fl E
5936closes the popup only if
5937.Ar shell-command
5938exited with success.
5939.Pp
5940.Fl x
5941and
5942.Fl y
5943give the position of the popup, they have the same meaning as for the
5944.Ic display-menu
5945command.
5946.Fl w
5947and
5948.Fl h
5949give the width and height - both may be a percentage (followed by
5950.Ql % ) .
5951If omitted, half of the terminal size is used.
5952.Pp
5953.Fl B
5954does not surround the popup by a border.
5955.Pp
5956.Fl b
5957sets the type of border line for the popup.
5958When
5959.Fl B
5960is specified, the
5961.Fl b
5962option is ignored.
5963See
5964.Ic popup-border-lines
5965for possible values for
5966.Ar border-lines .
5967.Pp
5968.Fl s
5969sets the style for the popup and
5970.Fl S
5971sets the style for the popup border.
5972For how to specify
5973.Ar style ,
5974see the
5975.Sx STYLES
5976section.
5977.Pp
5978.Fl e
5979takes the form
5980.Ql VARIABLE=value
5981and sets an environment variable for the popup; it may be specified multiple
5982times.
5983.Pp
5984.Fl T
5985is a format for the popup title (see
5986.Sx FORMATS ) .
5987.Pp
5988The
5989.Fl C
5990flag closes any popup on the client.
5991.Tg showphist
5992.It Xo Ic show-prompt-history
5993.Op Fl T Ar prompt-type
5994.Xc
5995.D1 Pq alias: Ic showphist
5996Display status prompt history for prompt type
5997.Ar prompt-type .
5998If
5999.Fl T
6000is omitted, then show history for all types.
6001See
6002.Ic command-prompt
6003for possible values for
6004.Ar prompt-type .
6005.El
6006.Sh BUFFERS
6007.Nm
6008maintains a set of named
6009.Em paste buffers .
6010Each buffer may be either explicitly or automatically named.
6011Explicitly named buffers are named when created with the
6012.Ic set-buffer
6013or
6014.Ic load-buffer
6015commands, or by renaming an automatically named buffer with
6016.Ic set-buffer
6017.Fl n .
6018Automatically named buffers are given a name such as
6019.Ql buffer0001 ,
6020.Ql buffer0002
6021and so on.
6022When the
6023.Ic buffer-limit
6024option is reached, the oldest automatically named buffer is deleted.
6025Explicitly named buffers are not subject to
6026.Ic buffer-limit
6027and may be deleted with the
6028.Ic delete-buffer
6029command.
6030.Pp
6031Buffers may be added using
6032.Ic copy-mode
6033or the
6034.Ic set-buffer
6035and
6036.Ic load-buffer
6037commands, and pasted into a window using the
6038.Ic paste-buffer
6039command.
6040If a buffer command is used and no buffer is specified, the most
6041recently added automatically named buffer is assumed.
6042.Pp
6043A configurable history buffer is also maintained for each window.
6044By default, up to 2000 lines are kept; this can be altered with the
6045.Ic history-limit
6046option (see the
6047.Ic set-option
6048command above).
6049.Pp
6050The buffer commands are as follows:
6051.Bl -tag -width Ds
6052.It Xo
6053.Ic choose-buffer
6054.Op Fl NZr
6055.Op Fl F Ar format
6056.Op Fl f Ar filter
6057.Op Fl K Ar key-format
6058.Op Fl O Ar sort-order
6059.Op Fl t Ar target-pane
6060.Op Ar template
6061.Xc
6062Put a pane into buffer mode, where a buffer may be chosen interactively from
6063a list.
6064Each buffer is shown on one line.
6065A shortcut key is shown on the left in brackets allowing for immediate choice,
6066or the list may be navigated and an item chosen or otherwise manipulated using
6067the keys below.
6068.Fl Z
6069zooms the pane.
6070The following keys may be used in buffer mode:
6071.Bl -column "Key" "Function" -offset indent
6072.It Sy "Key" Ta Sy "Function"
6073.It Li "Enter" Ta "Paste selected buffer"
6074.It Li "Up" Ta "Select previous buffer"
6075.It Li "Down" Ta "Select next buffer"
6076.It Li "C-s" Ta "Search by name or content"
6077.It Li "n" Ta "Repeat last search"
6078.It Li "t" Ta "Toggle if buffer is tagged"
6079.It Li "T" Ta "Tag no buffers"
6080.It Li "C-t" Ta "Tag all buffers"
6081.It Li "p" Ta "Paste selected buffer"
6082.It Li "P" Ta "Paste tagged buffers"
6083.It Li "d" Ta "Delete selected buffer"
6084.It Li "D" Ta "Delete tagged buffers"
6085.It Li "e" Ta "Open the buffer in an editor"
6086.It Li "f" Ta "Enter a format to filter items"
6087.It Li "O" Ta "Change sort field"
6088.It Li "r" Ta "Reverse sort order"
6089.It Li "v" Ta "Toggle preview"
6090.It Li "q" Ta "Exit mode"
6091.El
6092.Pp
6093After a buffer is chosen,
6094.Ql %%
6095is replaced by the buffer name in
6096.Ar template
6097and the result executed as a command.
6098If
6099.Ar template
6100is not given, "paste-buffer -b '%%'" is used.
6101.Pp
6102.Fl O
6103specifies the initial sort field: one of
6104.Ql time ,
6105.Ql name
6106or
6107.Ql size .
6108.Fl r
6109reverses the sort order.
6110.Fl f
6111specifies an initial filter: the filter is a format - if it evaluates to zero,
6112the item in the list is not shown, otherwise it is shown.
6113If a filter would lead to an empty list, it is ignored.
6114.Fl F
6115specifies the format for each item in the list and
6116.Fl K
6117a format for each shortcut key; both are evaluated once for each line.
6118.Fl N
6119starts without the preview.
6120This command works only if at least one client is attached.
6121.Tg clearhist
6122.It Ic clear-history Op Fl t Ar target-pane
6123.D1 Pq alias: Ic clearhist
6124Remove and free the history for the specified pane.
6125.Tg deleteb
6126.It Ic delete-buffer Op Fl b Ar buffer-name
6127.D1 Pq alias: Ic deleteb
6128Delete the buffer named
6129.Ar buffer-name ,
6130or the most recently added automatically named buffer if not specified.
6131.Tg lsb
6132.It Xo Ic list-buffers
6133.Op Fl F Ar format
6134.Op Fl f Ar filter
6135.Xc
6136.D1 Pq alias: Ic lsb
6137List the global buffers.
6138.Fl F
6139specifies the format of each line and
6140.Fl f
6141a filter.
6142Only buffers for which the filter is true are shown.
6143See the
6144.Sx FORMATS
6145section.
6146.It Xo Ic load-buffer
6147.Op Fl w
6148.Op Fl b Ar buffer-name
6149.Op Fl t Ar target-client
6150.Ar path
6151.Xc
6152.Tg loadb
6153.D1 Pq alias: Ic loadb
6154Load the contents of the specified paste buffer from
6155.Ar path .
6156If
6157.Fl w
6158is given, the buffer is also sent to the clipboard for
6159.Ar target-client
6160using the
6161.Xr xterm 1
6162escape sequence, if possible.
6163.Tg pasteb
6164.It Xo Ic paste-buffer
6165.Op Fl dpr
6166.Op Fl b Ar buffer-name
6167.Op Fl s Ar separator
6168.Op Fl t Ar target-pane
6169.Xc
6170.D1 Pq alias: Ic pasteb
6171Insert the contents of a paste buffer into the specified pane.
6172If not specified, paste into the current one.
6173With
6174.Fl d ,
6175also delete the paste buffer.
6176When output, any linefeed (LF) characters in the paste buffer are replaced with
6177a separator, by default carriage return (CR).
6178A custom separator may be specified using the
6179.Fl s
6180flag.
6181The
6182.Fl r
6183flag means to do no replacement (equivalent to a separator of LF).
6184If
6185.Fl p
6186is specified, paste bracket control codes are inserted around the
6187buffer if the application has requested bracketed paste mode.
6188.Tg saveb
6189.It Xo Ic save-buffer
6190.Op Fl a
6191.Op Fl b Ar buffer-name
6192.Ar path
6193.Xc
6194.D1 Pq alias: Ic saveb
6195Save the contents of the specified paste buffer to
6196.Ar path .
6197The
6198.Fl a
6199option appends to rather than overwriting the file.
6200.It Xo Ic set-buffer
6201.Op Fl aw
6202.Op Fl b Ar buffer-name
6203.Op Fl t Ar target-client
6204.Tg setb
6205.Op Fl n Ar new-buffer-name
6206.Ar data
6207.Xc
6208.D1 Pq alias: Ic setb
6209Set the contents of the specified buffer to
6210.Ar data .
6211If
6212.Fl w
6213is given, the buffer is also sent to the clipboard for
6214.Ar target-client
6215using the
6216.Xr xterm 1
6217escape sequence, if possible.
6218The
6219.Fl a
6220option appends to rather than overwriting the buffer.
6221The
6222.Fl n
6223option renames the buffer to
6224.Ar new-buffer-name .
6225.Tg showb
6226.It Xo Ic show-buffer
6227.Op Fl b Ar buffer-name
6228.Xc
6229.D1 Pq alias: Ic showb
6230Display the contents of the specified buffer.
6231.El
6232.Sh MISCELLANEOUS
6233Miscellaneous commands are as follows:
6234.Bl -tag -width Ds
6235.It Ic clock-mode Op Fl t Ar target-pane
6236Display a large clock.
6237.Tg if
6238.It Xo Ic if-shell
6239.Op Fl bF
6240.Op Fl t Ar target-pane
6241.Ar shell-command command
6242.Op Ar command
6243.Xc
6244.D1 Pq alias: Ic if
6245Execute the first
6246.Ar command
6247if
6248.Ar shell-command
6249(run with
6250.Pa /bin/sh )
6251returns success or the second
6252.Ar command
6253otherwise.
6254Before being executed,
6255.Ar shell-command
6256is expanded using the rules specified in the
6257.Sx FORMATS
6258section, including those relevant to
6259.Ar target-pane .
6260With
6261.Fl b ,
6262.Ar shell-command
6263is run in the background.
6264.Pp
6265If
6266.Fl F
6267is given,
6268.Ar shell-command
6269is not executed but considered success if neither empty nor zero (after formats
6270are expanded).
6271.Tg lock
6272.It Ic lock-server
6273.D1 Pq alias: Ic lock
6274Lock each client individually by running the command specified by the
6275.Ic lock-command
6276option.
6277.Tg run
6278.It Xo Ic run-shell
6279.Op Fl bC
6280.Op Fl d Ar delay
6281.Op Fl t Ar target-pane
6282.Op Ar shell-command
6283.Xc
6284.D1 Pq alias: Ic run
6285Execute
6286.Ar shell-command
6287using
6288.Pa /bin/sh
6289or (with
6290.Fl C )
6291a
6292.Nm
6293command in the background without creating a window.
6294Before being executed,
6295.Ar shell-command
6296is expanded using the rules specified in the
6297.Sx FORMATS
6298section.
6299With
6300.Fl b ,
6301the command is run in the background.
6302.Fl d
6303waits for
6304.Ar delay
6305seconds before starting the command.
6306If
6307.Fl C
6308is not given, any output to stdout is displayed in view mode (in the pane
6309specified by
6310.Fl t
6311or the current pane if omitted) after the command finishes.
6312If the command fails, the exit status is also displayed.
6313.Tg wait
6314.It Xo Ic wait-for
6315.Op Fl L | S | U
6316.Ar channel
6317.Xc
6318.D1 Pq alias: Ic wait
6319When used without options, prevents the client from exiting until woken using
6320.Ic wait-for
6321.Fl S
6322with the same channel.
6323When
6324.Fl L
6325is used, the channel is locked and any clients that try to lock the same
6326channel are made to wait until the channel is unlocked with
6327.Ic wait-for
6328.Fl U .
6329.El
6330.Sh EXIT MESSAGES
6331When a
6332.Nm
6333client detaches, it prints a message.
6334This may be one of:
6335.Bl -tag -width Ds
6336.It detached (from session ...)
6337The client was detached normally.
6338.It detached and SIGHUP
6339The client was detached and its parent sent the
6340.Dv SIGHUP
6341signal (for example with
6342.Ic detach-client
6343.Fl P ) .
6344.It lost tty
6345The client's
6346.Xr tty 4
6347or
6348.Xr pty 4
6349was unexpectedly destroyed.
6350.It terminated
6351The client was killed with
6352.Dv SIGTERM .
6353.It too far behind
6354The client is in control mode and became unable to keep up with the data from
6355.Nm .
6356.It exited
6357The server exited when it had no sessions.
6358.It server exited
6359The server exited when it received
6360.Dv SIGTERM .
6361.It server exited unexpectedly
6362The server crashed or otherwise exited without telling the client the reason.
6363.El
6364.Sh TERMINFO EXTENSIONS
6365.Nm
6366understands some unofficial extensions to
6367.Xr terminfo 5 .
6368It is not normally necessary to set these manually, instead the
6369.Ic terminal-features
6370option should be used.
6371.Bl -tag -width Ds
6372.It Em \&AX
6373An existing extension that tells
6374.Nm
6375the terminal supports default colours.
6376.It Em \&Bidi
6377Tell
6378.Nm
6379that the terminal supports the VTE bidirectional text extensions.
6380.It Em \&Cs , Cr
6381Set the cursor colour.
6382The first takes a single string argument and is used to set the colour;
6383the second takes no arguments and restores the default cursor colour.
6384If set, a sequence such as this may be used
6385to change the cursor colour from inside
6386.Nm :
6387.Bd -literal -offset indent
6388$ printf '\e033]12;red\e033\e\e'
6389.Ed
6390.Pp
6391The colour is an
6392.Xr X 7
6393colour, see
6394.Xr XParseColor 3 .
6395.It Em \&Cmg, \&Clmg, \&Dsmg , \&Enmg
6396Set, clear, disable or enable DECSLRM margins.
6397These are set automatically if the terminal reports it is
6398.Em VT420
6399compatible.
6400.It Em \&Dsbp , \&Enbp
6401Disable and enable bracketed paste.
6402These are set automatically if the
6403.Em XT
6404capability is present.
6405.It Em \&Dseks , \&Eneks
6406Disable and enable extended keys.
6407.It Em \&Dsfcs , \&Enfcs
6408Disable and enable focus reporting.
6409These are set automatically if the
6410.Em XT
6411capability is present.
6412.It Em \&Rect
6413Tell
6414.Nm
6415that the terminal supports rectangle operations.
6416.It Em \&Smol
6417Enable the overline attribute.
6418.It Em \&Smulx
6419Set a styled underscore.
6420The single parameter is one of: 0 for no underscore, 1 for normal
6421underscore, 2 for double underscore, 3 for curly underscore, 4 for dotted
6422underscore and 5 for dashed underscore.
6423.It Em \&Setulc , \&ol
6424Set the underscore colour or reset to the default.
6425The argument is (red * 65536) + (green * 256) + blue where each is between 0
6426and 255.
6427.It Em \&Ss , Se
6428Set or reset the cursor style.
6429If set, a sequence such as this may be used
6430to change the cursor to an underline:
6431.Bd -literal -offset indent
6432$ printf '\e033[4 q'
6433.Ed
6434.Pp
6435If
6436.Em Se
6437is not set, \&Ss with argument 0 will be used to reset the cursor style instead.
6438.It Em \&Swd
6439Set the opening sequence for the working directory notification.
6440The sequence is terminated using the standard
6441.Em fsl
6442capability.
6443.It Em \&Sync
6444Start (parameter is 1) or end (parameter is 2) a synchronized update.
6445.It Em \&Tc
6446Indicate that the terminal supports the
6447.Ql direct colour
6448RGB escape sequence (for example, \ee[38;2;255;255;255m).
6449.Pp
6450If supported, this is used for the initialize colour escape sequence (which
6451may be enabled by adding the
6452.Ql initc
6453and
6454.Ql ccc
6455capabilities to the
6456.Nm
6457.Xr terminfo 5
6458entry).
6459.Pp
6460This is equivalent to the
6461.Em RGB
6462.Xr terminfo 5
6463capability.
6464.It Em \&Ms
6465Store the current buffer in the host terminal's selection (clipboard).
6466See the
6467.Em set-clipboard
6468option above and the
6469.Xr xterm 1
6470man page.
6471.It Em \&XT
6472This is an existing extension capability that tmux uses to mean that the
6473terminal supports the
6474.Xr xterm 1
6475title set sequences and to automatically set some of the capabilities above.
6476.El
6477.Sh CONTROL MODE
6478.Nm
6479offers a textual interface called
6480.Em control mode .
6481This allows applications to communicate with
6482.Nm
6483using a simple text-only protocol.
6484.Pp
6485In control mode, a client sends
6486.Nm
6487commands or command sequences terminated by newlines on standard input.
6488Each command will produce one block of output on standard output.
6489An output block consists of a
6490.Em %begin
6491line followed by the output (which may be empty).
6492The output block ends with a
6493.Em %end
6494or
6495.Em %error .
6496.Em %begin
6497and matching
6498.Em %end
6499or
6500.Em %error
6501have three arguments: an integer time (as seconds from epoch), command number and
6502flags (currently not used).
6503For example:
6504.Bd -literal -offset indent
6505%begin 1363006971 2 1
65060: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active)
6507%end 1363006971 2 1
6508.Ed
6509.Pp
6510The
6511.Ic refresh-client
6512.Fl C
6513command may be used to set the size of a client in control mode.
6514.Pp
6515In control mode,
6516.Nm
6517outputs notifications.
6518A notification will never occur inside an output block.
6519.Pp
6520The following notifications are defined:
6521.Bl -tag -width Ds
6522.It Ic %client-detached Ar client
6523The client has detached.
6524.It Ic %client-session-changed Ar client session-id name
6525The client is now attached to the session with ID
6526.Ar session-id ,
6527which is named
6528.Ar name .
6529.It Ic %continue Ar pane-id
6530The pane has been continued after being paused (if the
6531.Ar pause-after
6532flag is set, see
6533.Ic refresh-client
6534.Fl A ) .
6535.It Ic %exit Op Ar reason
6536The
6537.Nm
6538client is exiting immediately, either because it is not attached to any session
6539or an error occurred.
6540If present,
6541.Ar reason
6542describes why the client exited.
6543.It Ic %extended-output Ar pane-id Ar age Ar ... \&  : Ar value
6544New form of
6545.Ic %output
6546sent when the
6547.Ar pause-after
6548flag is set.
6549.Ar age
6550is the time in milliseconds for which tmux had buffered the output before it was sent.
6551Any subsequent arguments up until a single
6552.Ql \&:
6553are for future use and should be ignored.
6554.It Ic %layout-change Ar window-id Ar window-layout Ar window-visible-layout Ar window-flags
6555The layout of a window with ID
6556.Ar window-id
6557changed.
6558The new layout is
6559.Ar window-layout .
6560The window's visible layout is
6561.Ar window-visible-layout
6562and the window flags are
6563.Ar window-flags .
6564.It Ic %output Ar pane-id Ar value
6565A window pane produced output.
6566.Ar value
6567escapes non-printable characters and backslash as octal \\xxx.
6568.It Ic %pane-mode-changed Ar pane-id
6569The pane with ID
6570.Ar pane-id
6571has changed mode.
6572.It Ic %pause Ar pane-id
6573The pane has been paused (if the
6574.Ar pause-after
6575flag is set).
6576.It Ic %session-changed Ar session-id Ar name
6577The client is now attached to the session with ID
6578.Ar session-id ,
6579which is named
6580.Ar name .
6581.It Ic %session-renamed Ar name
6582The current session was renamed to
6583.Ar name .
6584.It Ic %session-window-changed Ar session-id Ar window-id
6585The session with ID
6586.Ar session-id
6587changed its active window to the window with ID
6588.Ar window-id .
6589.It Ic %sessions-changed
6590A session was created or destroyed.
6591.It Xo Ic %subscription-changed
6592.Ar name
6593.Ar session-id
6594.Ar window-id
6595.Ar window-index
6596.Ar pane-id ... \&  :
6597.Ar value
6598.Xc
6599The value of the format associated with subscription
6600.Ar name
6601has changed to
6602.Ar value .
6603See
6604.Ic refresh-client
6605.Fl B .
6606Any arguments after
6607.Ar pane-id
6608up until a single
6609.Ql \&:
6610are for future use and should be ignored.
6611.It Ic %unlinked-window-add Ar window-id
6612The window with ID
6613.Ar window-id
6614was created but is not linked to the current session.
6615.It Ic %unlinked-window-close Ar window-id
6616The window with ID
6617.Ar window-id ,
6618which is not linked to the current session, was closed.
6619.It Ic %unlinked-window-renamed Ar window-id
6620The window with ID
6621.Ar window-id ,
6622which is not linked to the current session, was renamed.
6623.It Ic %window-add Ar window-id
6624The window with ID
6625.Ar window-id
6626was linked to the current session.
6627.It Ic %window-close Ar window-id
6628The window with ID
6629.Ar window-id
6630closed.
6631.It Ic %window-pane-changed Ar window-id Ar pane-id
6632The active pane in the window with ID
6633.Ar window-id
6634changed to the pane with ID
6635.Ar pane-id .
6636.It Ic %window-renamed Ar window-id Ar name
6637The window with ID
6638.Ar window-id
6639was renamed to
6640.Ar name .
6641.El
6642.Sh ENVIRONMENT
6643When
6644.Nm
6645is started, it inspects the following environment variables:
6646.Bl -tag -width LC_CTYPE
6647.It Ev EDITOR
6648If the command specified in this variable contains the string
6649.Ql vi
6650and
6651.Ev VISUAL
6652is unset, use vi-style key bindings.
6653Overridden by the
6654.Ic mode-keys
6655and
6656.Ic status-keys
6657options.
6658.It Ev HOME
6659The user's login directory.
6660If unset, the
6661.Xr passwd 5
6662database is consulted.
6663.It Ev LC_CTYPE
6664The character encoding
6665.Xr locale 1 .
6666It is used for two separate purposes.
6667For output to the terminal, UTF-8 is used if the
6668.Fl u
6669option is given or if
6670.Ev LC_CTYPE
6671contains
6672.Qq UTF-8
6673or
6674.Qq UTF8 .
6675Otherwise, only ASCII characters are written and non-ASCII characters
6676are replaced with underscores
6677.Pq Ql _ .
6678For input,
6679.Nm
6680always runs with a UTF-8 locale.
6681If en_US.UTF-8 is provided by the operating system, it is used and
6682.Ev LC_CTYPE
6683is ignored for input.
6684Otherwise,
6685.Ev LC_CTYPE
6686tells
6687.Nm
6688what the UTF-8 locale is called on the current system.
6689If the locale specified by
6690.Ev LC_CTYPE
6691is not available or is not a UTF-8 locale,
6692.Nm
6693exits with an error message.
6694.It Ev LC_TIME
6695The date and time format
6696.Xr locale 1 .
6697It is used for locale-dependent
6698.Xr strftime 3
6699format specifiers.
6700.It Ev PWD
6701The current working directory to be set in the global environment.
6702This may be useful if it contains symbolic links.
6703If the value of the variable does not match the current working
6704directory, the variable is ignored and the result of
6705.Xr getcwd 3
6706is used instead.
6707.It Ev SHELL
6708The absolute path to the default shell for new windows.
6709See the
6710.Ic default-shell
6711option for details.
6712.It Ev TMUX_TMPDIR
6713The parent directory of the directory containing the server sockets.
6714See the
6715.Fl L
6716option for details.
6717.It Ev VISUAL
6718If the command specified in this variable contains the string
6719.Ql vi ,
6720use vi-style key bindings.
6721Overridden by the
6722.Ic mode-keys
6723and
6724.Ic status-keys
6725options.
6726.El
6727.Sh FILES
6728.Bl -tag -width "@SYSCONFDIR@/tmux.confXXX" -compact
6729.It Pa ~/.tmux.conf
6730.It Pa $XDG_CONFIG_HOME/tmux/tmux.conf
6731.It Pa ~/.config/tmux/tmux.conf
6732Default
6733.Nm
6734configuration file.
6735.It Pa @SYSCONFDIR@/tmux.conf
6736System-wide configuration file.
6737.El
6738.Sh EXAMPLES
6739To create a new
6740.Nm
6741session running
6742.Xr vi 1 :
6743.Pp
6744.Dl $ tmux new-session vi
6745.Pp
6746Most commands have a shorter form, known as an alias.
6747For new-session, this is
6748.Ic new :
6749.Pp
6750.Dl $ tmux new vi
6751.Pp
6752Alternatively, the shortest unambiguous form of a command is accepted.
6753If there are several options, they are listed:
6754.Bd -literal -offset indent
6755$ tmux n
6756ambiguous command: n, could be: new-session, new-window, next-window
6757.Ed
6758.Pp
6759Within an active session, a new window may be created by typing
6760.Ql C-b c
6761(Ctrl
6762followed by the
6763.Ql b
6764key
6765followed by the
6766.Ql c
6767key).
6768.Pp
6769Windows may be navigated with:
6770.Ql C-b 0
6771(to select window 0),
6772.Ql C-b 1
6773(to select window 1), and so on;
6774.Ql C-b n
6775to select the next window; and
6776.Ql C-b p
6777to select the previous window.
6778.Pp
6779A session may be detached using
6780.Ql C-b d
6781(or by an external event such as
6782.Xr ssh 1
6783disconnection) and reattached with:
6784.Pp
6785.Dl $ tmux attach-session
6786.Pp
6787Typing
6788.Ql C-b \&?
6789lists the current key bindings in the current window; up and down may be used
6790to navigate the list or
6791.Ql q
6792to exit from it.
6793.Pp
6794Commands to be run when the
6795.Nm
6796server is started may be placed in the
6797.Pa ~/.tmux.conf
6798configuration file.
6799Common examples include:
6800.Pp
6801Changing the default prefix key:
6802.Bd -literal -offset indent
6803set-option -g prefix C-a
6804unbind-key C-b
6805bind-key C-a send-prefix
6806.Ed
6807.Pp
6808Turning the status line off, or changing its colour:
6809.Bd -literal -offset indent
6810set-option -g status off
6811set-option -g status-style bg=blue
6812.Ed
6813.Pp
6814Setting other options, such as the default command,
6815or locking after 30 minutes of inactivity:
6816.Bd -literal -offset indent
6817set-option -g default-command "exec /bin/ksh"
6818set-option -g lock-after-time 1800
6819.Ed
6820.Pp
6821Creating new key bindings:
6822.Bd -literal -offset indent
6823bind-key b set-option status
6824bind-key / command-prompt "split-window 'exec man %%'"
6825bind-key S command-prompt "new-window -n %1 'ssh %1'"
6826.Ed
6827.Sh SEE ALSO
6828.Xr pty 4
6829.Sh AUTHORS
6830.An Nicholas Marriott Aq Mt nicholas.marriott@gmail.com
6831