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