xref: /openbsd-src/usr.bin/tmux/tmux.1 (revision 3e8b1db74c103e81d872d6148750233658a8adf7)
1.\" $OpenBSD: tmux.1,v 1.855 2021/08/27 17:15:57 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: August 27 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.
3126.Pp
3127The
3128.Fl l
3129flag disables key name lookup and processes the keys as literal UTF-8
3130characters.
3131The
3132.Fl H
3133flag expects each key to be a hexadecimal number for an ASCII character.
3134.Pp
3135The
3136.Fl R
3137flag causes the terminal state to be reset.
3138.Pp
3139.Fl M
3140passes through a mouse event (only valid if bound to a mouse key binding, see
3141.Sx MOUSE SUPPORT ) .
3142.Pp
3143.Fl X
3144is used to send a command into copy mode - see
3145the
3146.Sx WINDOWS AND PANES
3147section.
3148.Fl N
3149specifies a repeat count and
3150.Fl F
3151expands formats in arguments where appropriate.
3152.It Xo Ic send-prefix
3153.Op Fl 2
3154.Op Fl t Ar target-pane
3155.Xc
3156Send the prefix key, or with
3157.Fl 2
3158the secondary prefix key, to a window as if it was pressed.
3159.It Xo Ic unbind-key
3160.Op Fl anq
3161.Op Fl T Ar key-table
3162.Ar key
3163.Xc
3164.D1 (alias: Ic unbind )
3165Unbind the command bound to
3166.Ar key .
3167.Fl n
3168and
3169.Fl T
3170are the same as for
3171.Ic bind-key .
3172If
3173.Fl a
3174is present, all key bindings are removed.
3175The
3176.Fl q
3177option prevents errors being returned.
3178.El
3179.Sh OPTIONS
3180The appearance and behaviour of
3181.Nm
3182may be modified by changing the value of various options.
3183There are four types of option:
3184.Em server options ,
3185.Em session options ,
3186.Em window options ,
3187and
3188.Em pane options .
3189.Pp
3190The
3191.Nm
3192server has a set of global server options which do not apply to any particular
3193window or session or pane.
3194These are altered with the
3195.Ic set-option
3196.Fl s
3197command, or displayed with the
3198.Ic show-options
3199.Fl s
3200command.
3201.Pp
3202In addition, each individual session may have a set of session options, and
3203there is a separate set of global session options.
3204Sessions which do not have a particular option configured inherit the value
3205from the global session options.
3206Session options are set or unset with the
3207.Ic set-option
3208command and may be listed with the
3209.Ic show-options
3210command.
3211The available server and session options are listed under the
3212.Ic set-option
3213command.
3214.Pp
3215Similarly, a set of window options is attached to each window and a set of pane
3216options to each pane.
3217Pane options inherit from window options.
3218This means any pane option may be set as a window option to apply the option to
3219all panes in the window without the option set, for example these commands will
3220set the background colour to red for all panes except pane 0:
3221.Bd -literal -offset indent
3222set -w window-style bg=red
3223set -pt:.0 window-style bg=blue
3224.Ed
3225.Pp
3226There is also a set of global window options from which any unset window or
3227pane options are inherited.
3228Window and pane options are altered with
3229.Ic set-option
3230.Fl w
3231and
3232.Fl p
3233commands and displayed with
3234.Ic show-option
3235.Fl w
3236and
3237.Fl p .
3238.Pp
3239.Nm
3240also supports user options which are prefixed with a
3241.Ql \&@ .
3242User options may have any name, so long as they are prefixed with
3243.Ql \&@ ,
3244and be set to any string.
3245For example:
3246.Bd -literal -offset indent
3247$ tmux set -wq @foo "abc123"
3248$ tmux show -wv @foo
3249abc123
3250.Ed
3251.Pp
3252Commands which set options are as follows:
3253.Bl -tag -width Ds
3254.It Xo Ic set-option
3255.Op Fl aFgopqsuUw
3256.Op Fl t Ar target-pane
3257.Ar option Ar value
3258.Xc
3259.D1 (alias: Ic set )
3260Set a pane option with
3261.Fl p ,
3262a window option with
3263.Fl w ,
3264a server option with
3265.Fl s ,
3266otherwise a session option.
3267If the option is not a user option,
3268.Fl w
3269or
3270.Fl s
3271may be unnecessary -
3272.Nm
3273will infer the type from the option name, assuming
3274.Fl w
3275for pane options.
3276If
3277.Fl g
3278is given, the global session or window option is set.
3279.Pp
3280.Fl F
3281expands formats in the option value.
3282The
3283.Fl u
3284flag unsets an option, so a session inherits the option from the global
3285options (or with
3286.Fl g ,
3287restores a global option to the default).
3288.Fl U
3289unsets an option (like
3290.Fl u )
3291but if the option is a pane option also unsets the option on any panes in the
3292window.
3293.Ar value
3294depends on the option and may be a number, a string, or a flag (on, off, or
3295omitted to toggle).
3296.Pp
3297The
3298.Fl o
3299flag prevents setting an option that is already set and the
3300.Fl q
3301flag suppresses errors about unknown or ambiguous options.
3302.Pp
3303With
3304.Fl a ,
3305and if the option expects a string or a style,
3306.Ar value
3307is appended to the existing setting.
3308For example:
3309.Bd -literal -offset indent
3310set -g status-left "foo"
3311set -ag status-left "bar"
3312.Ed
3313.Pp
3314Will result in
3315.Ql foobar .
3316And:
3317.Bd -literal -offset indent
3318set -g status-style "bg=red"
3319set -ag status-style "fg=blue"
3320.Ed
3321.Pp
3322Will result in a red background
3323.Em and
3324blue foreground.
3325Without
3326.Fl a ,
3327the result would be the default background and a blue foreground.
3328.It Xo Ic show-options
3329.Op Fl AgHpqsvw
3330.Op Fl t Ar target-pane
3331.Op Ar option
3332.Xc
3333.D1 (alias: Ic show )
3334Show the pane options (or a single option if
3335.Ar option
3336is provided) with
3337.Fl p ,
3338the window options with
3339.Fl w ,
3340the server options with
3341.Fl s ,
3342otherwise the session options.
3343If the option is not a user option,
3344.Fl w
3345or
3346.Fl s
3347may be unnecessary -
3348.Nm
3349will infer the type from the option name, assuming
3350.Fl w
3351for pane options.
3352Global session or window options are listed if
3353.Fl g
3354is used.
3355.Fl v
3356shows only the option value, not the name.
3357If
3358.Fl q
3359is set, no error will be returned if
3360.Ar option
3361is unset.
3362.Fl H
3363includes hooks (omitted by default).
3364.Fl A
3365includes options inherited from a parent set of options, such options are
3366marked with an asterisk.
3367.El
3368.Pp
3369Available server options are:
3370.Bl -tag -width Ds
3371.It Ic backspace Ar key
3372Set the key sent by
3373.Nm
3374for backspace.
3375.It Ic buffer-limit Ar number
3376Set the number of buffers; as new buffers are added to the top of the stack,
3377old ones are removed from the bottom if necessary to maintain this maximum
3378length.
3379.It Xo Ic command-alias[]
3380.Ar name=value
3381.Xc
3382This is an array of custom aliases for commands.
3383If an unknown command matches
3384.Ar name ,
3385it is replaced with
3386.Ar value .
3387For example, after:
3388.Pp
3389.Dl set -s command-alias[100] zoom='resize-pane -Z'
3390.Pp
3391Using:
3392.Pp
3393.Dl zoom -t:.1
3394.Pp
3395Is equivalent to:
3396.Pp
3397.Dl resize-pane -Z -t:.1
3398.Pp
3399Note that aliases are expanded when a command is parsed rather than when it is
3400executed, so binding an alias with
3401.Ic bind-key
3402will bind the expanded form.
3403.It Ic default-terminal Ar terminal
3404Set the default terminal for new windows created in this session - the
3405default value of the
3406.Ev TERM
3407environment variable.
3408For
3409.Nm
3410to work correctly, this
3411.Em must
3412be set to
3413.Ql screen ,
3414.Ql tmux
3415or a derivative of them.
3416.It Ic copy-command Ar shell-command
3417Give the command to pipe to if the
3418.Ic copy-pipe
3419copy mode command is used without arguments.
3420.It Ic escape-time Ar time
3421Set the time in milliseconds for which
3422.Nm
3423waits after an escape is input to determine if it is part of a function or meta
3424key sequences.
3425The default is 500 milliseconds.
3426.It Ic editor Ar shell-command
3427Set the command used when
3428.Nm
3429runs an editor.
3430.It Xo Ic exit-empty
3431.Op Ic on | off
3432.Xc
3433If enabled (the default), the server will exit when there are no active
3434sessions.
3435.It Xo Ic exit-unattached
3436.Op Ic on | off
3437.Xc
3438If enabled, the server will exit when there are no attached clients.
3439.It Xo Ic extended-keys
3440.Op Ic on | off | always
3441.Xc
3442When
3443.Ic on
3444or
3445.Ic always ,
3446the escape sequence to enable extended keys is sent to the terminal, if
3447.Nm
3448knows that it is supported.
3449.Nm
3450always recognises extended keys itself.
3451If this option is
3452.Ic on ,
3453.Nm
3454will only forward extended keys to applications when they request them; if
3455.Ic always ,
3456.Nm
3457will always forward the keys.
3458.It Xo Ic focus-events
3459.Op Ic on | off
3460.Xc
3461When enabled, focus events are requested from the terminal if supported and
3462passed through to applications running in
3463.Nm .
3464Attached clients should be detached and attached again after changing this
3465option.
3466.It Ic history-file Ar path
3467If not empty, a file to which
3468.Nm
3469will write command prompt history on exit and load it from on start.
3470.It Ic message-limit Ar number
3471Set the number of error or information messages to save in the message log for
3472each client.
3473.It Ic prompt-history-limit Ar number
3474Set the number of history items to save in the history file for each type of
3475command prompt.
3476.It Xo Ic set-clipboard
3477.Op Ic on | external | off
3478.Xc
3479Attempt to set the terminal clipboard content using the
3480.Xr xterm 1
3481escape sequence, if there is an
3482.Em \&Ms
3483entry in the
3484.Xr terminfo 5
3485description (see the
3486.Sx TERMINFO EXTENSIONS
3487section).
3488.Pp
3489If set to
3490.Ic on ,
3491.Nm
3492will both accept the escape sequence to create a buffer and attempt to set
3493the terminal clipboard.
3494If set to
3495.Ic external ,
3496.Nm
3497will attempt to set the terminal clipboard but ignore attempts
3498by applications to set
3499.Nm
3500buffers.
3501If
3502.Ic off ,
3503.Nm
3504will neither accept the clipboard escape sequence nor attempt to set the
3505clipboard.
3506.Pp
3507Note that this feature needs to be enabled in
3508.Xr xterm 1
3509by setting the resource:
3510.Bd -literal -offset indent
3511disallowedWindowOps: 20,21,SetXprop
3512.Ed
3513.Pp
3514Or changing this property from the
3515.Xr xterm 1
3516interactive menu when required.
3517.It Ic terminal-features[] Ar string
3518Set terminal features for terminal types read from
3519.Xr terminfo 5 .
3520.Nm
3521has a set of named terminal features.
3522Each will apply appropriate changes to the
3523.Xr terminfo 5
3524entry in use.
3525.Pp
3526.Nm
3527can detect features for a few common terminals; this option can be used to
3528easily tell tmux about features supported by terminals it cannot detect.
3529The
3530.Ic terminal-overrides
3531option allows individual
3532.Xr terminfo 5
3533capabilities to be set instead,
3534.Ic terminal-features
3535is intended for classes of functionality supported in a standard way but not
3536reported by
3537.Xr terminfo 5 .
3538Care must be taken to configure this only with features the terminal actually
3539supports.
3540.Pp
3541This is an array option where each entry is a colon-separated string made up
3542of a terminal type pattern (matched using
3543.Xr fnmatch 3 )
3544followed by a list of terminal features.
3545The available features are:
3546.Bl -tag -width Ds
3547.It 256
3548Supports 256 colours with the SGR escape sequences.
3549.It clipboard
3550Allows setting the system clipboard.
3551.It ccolour
3552Allows setting the cursor colour.
3553.It cstyle
3554Allows setting the cursor style.
3555.It extkeys
3556Supports extended keys.
3557.It focus
3558Supports focus reporting.
3559.It margins
3560Supports DECSLRM margins.
3561.It mouse
3562Supports
3563.Xr xterm 1
3564mouse sequences.
3565.It overline
3566Supports the overline SGR attribute.
3567.It rectfill
3568Supports the DECFRA rectangle fill escape sequence.
3569.It RGB
3570Supports RGB colour with the SGR escape sequences.
3571.It strikethrough
3572Supports the strikethrough SGR escape sequence.
3573.It sync
3574Supports synchronized updates.
3575.It title
3576Supports
3577.Xr xterm 1
3578title setting.
3579.It usstyle
3580Allows underscore style and colour to be set.
3581.El
3582.It Ic terminal-overrides[] Ar string
3583Allow terminal descriptions read using
3584.Xr terminfo 5
3585to be overridden.
3586Each entry is a colon-separated string made up of a terminal type pattern
3587(matched using
3588.Xr fnmatch 3 )
3589and a set of
3590.Em name=value
3591entries.
3592.Pp
3593For example, to set the
3594.Ql clear
3595.Xr terminfo 5
3596entry to
3597.Ql \ee[H\ee[2J
3598for all terminal types matching
3599.Ql rxvt* :
3600.Pp
3601.Dl "rxvt*:clear=\ee[H\ee[2J"
3602.Pp
3603The terminal entry value is passed through
3604.Xr strunvis 3
3605before interpretation.
3606.It Ic user-keys[] Ar key
3607Set list of user-defined key escape sequences.
3608Each item is associated with a key named
3609.Ql User0 ,
3610.Ql User1 ,
3611and so on.
3612.Pp
3613For example:
3614.Bd -literal -offset indent
3615set -s user-keys[0] "\ee[5;30012~"
3616bind User0 resize-pane -L 3
3617.Ed
3618.El
3619.Pp
3620Available session options are:
3621.Bl -tag -width Ds
3622.It Xo Ic activity-action
3623.Op Ic any | none | current | other
3624.Xc
3625Set action on window activity when
3626.Ic monitor-activity
3627is on.
3628.Ic any
3629means activity in any window linked to a session causes a bell or message
3630(depending on
3631.Ic visual-activity )
3632in the current window of that session,
3633.Ic none
3634means all activity is ignored (equivalent to
3635.Ic monitor-activity
3636being off),
3637.Ic current
3638means only activity in windows other than the current window are ignored and
3639.Ic other
3640means activity in the current window is ignored but not those in other windows.
3641.It Ic assume-paste-time Ar milliseconds
3642If keys are entered faster than one in
3643.Ar milliseconds ,
3644they are assumed to have been pasted rather than typed and
3645.Nm
3646key bindings are not processed.
3647The default is one millisecond and zero disables.
3648.It Ic base-index Ar index
3649Set the base index from which an unused index should be searched when a new
3650window is created.
3651The default is zero.
3652.It Xo Ic bell-action
3653.Op Ic any | none | current | other
3654.Xc
3655Set action on a bell in a window when
3656.Ic monitor-bell
3657is on.
3658The values are the same as those for
3659.Ic activity-action .
3660.It Ic default-command Ar shell-command
3661Set the command used for new windows (if not specified when the window is
3662created) to
3663.Ar shell-command ,
3664which may be any
3665.Xr sh 1
3666command.
3667The default is an empty string, which instructs
3668.Nm
3669to create a login shell using the value of the
3670.Ic default-shell
3671option.
3672.It Ic default-shell Ar path
3673Specify the default shell.
3674This is used as the login shell for new windows when the
3675.Ic default-command
3676option is set to empty, and must be the full path of the executable.
3677When started
3678.Nm
3679tries to set a default value from the first suitable of the
3680.Ev SHELL
3681environment variable, the shell returned by
3682.Xr getpwuid 3 ,
3683or
3684.Pa /bin/sh .
3685This option should be configured when
3686.Nm
3687is used as a login shell.
3688.It Ic default-size Ar XxY
3689Set the default size of new windows when the
3690.Ic window-size
3691option is set to manual or when a session is created with
3692.Ic new-session
3693.Fl d .
3694The value is the width and height separated by an
3695.Ql x
3696character.
3697The default is 80x24.
3698.It Xo Ic destroy-unattached
3699.Op Ic on | off
3700.Xc
3701If enabled and the session is no longer attached to any clients, it is
3702destroyed.
3703.It Xo Ic detach-on-destroy
3704.Op Ic off | on | no-detached
3705.Xc
3706If on (the default), the client is detached when the session it is attached to
3707is destroyed.
3708If off, the client is switched to the most recently active of the remaining
3709sessions.
3710If
3711.Ic no-detached ,
3712the client is detached only if there are no detached sessions; if detached
3713sessions exist, the client is switched to the most recently active.
3714.It Ic display-panes-active-colour Ar colour
3715Set the colour used by the
3716.Ic display-panes
3717command to show the indicator for the active pane.
3718.It Ic display-panes-colour Ar colour
3719Set the colour used by the
3720.Ic display-panes
3721command to show the indicators for inactive panes.
3722.It Ic display-panes-time Ar time
3723Set the time in milliseconds for which the indicators shown by the
3724.Ic display-panes
3725command appear.
3726.It Ic display-time Ar time
3727Set the amount of time for which status line messages and other on-screen
3728indicators are displayed.
3729If set to 0, messages and indicators are displayed until a key is pressed.
3730.Ar time
3731is in milliseconds.
3732.It Ic history-limit Ar lines
3733Set the maximum number of lines held in window history.
3734This setting applies only to new windows - existing window histories are not
3735resized and retain the limit at the point they were created.
3736.It Ic key-table Ar key-table
3737Set the default key table to
3738.Ar key-table
3739instead of
3740.Em root .
3741.It Ic lock-after-time Ar number
3742Lock the session (like the
3743.Ic lock-session
3744command) after
3745.Ar number
3746seconds of inactivity.
3747The default is not to lock (set to 0).
3748.It Ic lock-command Ar shell-command
3749Command to run when locking each client.
3750The default is to run
3751.Xr lock 1
3752with
3753.Fl np .
3754.It Ic message-command-style Ar style
3755Set status line message command style.
3756This is used for the command prompt with
3757.Xr vi 1
3758keys when in command mode.
3759For how to specify
3760.Ar style ,
3761see the
3762.Sx STYLES
3763section.
3764.It Ic message-style Ar style
3765Set status line message style.
3766This is used for messages and for the command prompt.
3767For how to specify
3768.Ar style ,
3769see the
3770.Sx STYLES
3771section.
3772.It Xo Ic mouse
3773.Op Ic on | off
3774.Xc
3775If on,
3776.Nm
3777captures the mouse and allows mouse events to be bound as key bindings.
3778See the
3779.Sx MOUSE SUPPORT
3780section for details.
3781.It Ic prefix Ar key
3782Set the key accepted as a prefix key.
3783In addition to the standard keys described under
3784.Sx KEY BINDINGS ,
3785.Ic prefix
3786can be set to the special key
3787.Ql None
3788to set no prefix.
3789.It Ic prefix2 Ar key
3790Set a secondary key accepted as a prefix key.
3791Like
3792.Ic prefix ,
3793.Ic prefix2
3794can be set to
3795.Ql None .
3796.It Xo Ic renumber-windows
3797.Op Ic on | off
3798.Xc
3799If on, when a window is closed in a session, automatically renumber the other
3800windows in numerical order.
3801This respects the
3802.Ic base-index
3803option if it has been set.
3804If off, do not renumber the windows.
3805.It Ic repeat-time Ar time
3806Allow multiple commands to be entered without pressing the prefix-key again
3807in the specified
3808.Ar time
3809milliseconds (the default is 500).
3810Whether a key repeats may be set when it is bound using the
3811.Fl r
3812flag to
3813.Ic bind-key .
3814Repeat is enabled for the default keys bound to the
3815.Ic resize-pane
3816command.
3817.It Xo Ic set-titles
3818.Op Ic on | off
3819.Xc
3820Attempt to set the client terminal title using the
3821.Em tsl
3822and
3823.Em fsl
3824.Xr terminfo 5
3825entries if they exist.
3826.Nm
3827automatically sets these to the \ee]0;...\e007 sequence if
3828the terminal appears to be
3829.Xr xterm 1 .
3830This option is off by default.
3831.It Ic set-titles-string Ar string
3832String used to set the client terminal title if
3833.Ic set-titles
3834is on.
3835Formats are expanded, see the
3836.Sx FORMATS
3837section.
3838.It Xo Ic silence-action
3839.Op Ic any | none | current | other
3840.Xc
3841Set action on window silence when
3842.Ic monitor-silence
3843is on.
3844The values are the same as those for
3845.Ic activity-action .
3846.It Xo Ic status
3847.Op Ic off | on | 2 | 3 | 4 | 5
3848.Xc
3849Show or hide the status line or specify its size.
3850Using
3851.Ic on
3852gives a status line one row in height;
3853.Ic 2 ,
3854.Ic 3 ,
3855.Ic 4
3856or
3857.Ic 5
3858more rows.
3859.It Ic status-format[] Ar format
3860Specify the format to be used for each line of the status line.
3861The default builds the top status line from the various individual status
3862options below.
3863.It Ic status-interval Ar interval
3864Update the status line every
3865.Ar interval
3866seconds.
3867By default, updates will occur every 15 seconds.
3868A setting of zero disables redrawing at interval.
3869.It Xo Ic status-justify
3870.Op Ic left | centre | right | absolute-centre
3871.Xc
3872Set the position of the window list in the status line: left, centre or right.
3873centre puts the window list in the relative centre of the available free space;
3874absolute-centre uses the centre of the entire horizontal space.
3875.It Xo Ic status-keys
3876.Op Ic vi | emacs
3877.Xc
3878Use vi or emacs-style
3879key bindings in the status line, for example at the command prompt.
3880The default is emacs, unless the
3881.Ev VISUAL
3882or
3883.Ev EDITOR
3884environment variables are set and contain the string
3885.Ql vi .
3886.It Ic status-left Ar string
3887Display
3888.Ar string
3889(by default the session name) to the left of the status line.
3890.Ar string
3891will be passed through
3892.Xr strftime 3 .
3893Also see the
3894.Sx FORMATS
3895and
3896.Sx STYLES
3897sections.
3898.Pp
3899For details on how the names and titles can be set see the
3900.Sx "NAMES AND TITLES"
3901section.
3902.Pp
3903Examples are:
3904.Bd -literal -offset indent
3905#(sysctl vm.loadavg)
3906#[fg=yellow,bold]#(apm -l)%%#[default] [#S]
3907.Ed
3908.Pp
3909The default is
3910.Ql "[#S] " .
3911.It Ic status-left-length Ar length
3912Set the maximum
3913.Ar length
3914of the left component of the status line.
3915The default is 10.
3916.It Ic status-left-style Ar style
3917Set the style of the left part of the status line.
3918For how to specify
3919.Ar style ,
3920see the
3921.Sx STYLES
3922section.
3923.It Xo Ic status-position
3924.Op Ic top | bottom
3925.Xc
3926Set the position of the status line.
3927.It Ic status-right Ar string
3928Display
3929.Ar string
3930to the right of the status line.
3931By default, the current pane title in double quotes, the date and the time
3932are shown.
3933As with
3934.Ic status-left ,
3935.Ar string
3936will be passed to
3937.Xr strftime 3
3938and character pairs are replaced.
3939.It Ic status-right-length Ar length
3940Set the maximum
3941.Ar length
3942of the right component of the status line.
3943The default is 40.
3944.It Ic status-right-style Ar style
3945Set the style of the right part of the status line.
3946For how to specify
3947.Ar style ,
3948see the
3949.Sx STYLES
3950section.
3951.It Ic status-style Ar style
3952Set status line style.
3953For how to specify
3954.Ar style ,
3955see the
3956.Sx STYLES
3957section.
3958.It Ic update-environment[] Ar variable
3959Set list of environment variables to be copied into the session environment
3960when a new session is created or an existing session is attached.
3961Any variables that do not exist in the source environment are set to be
3962removed from the session environment (as if
3963.Fl r
3964was given to the
3965.Ic set-environment
3966command).
3967.It Xo Ic visual-activity
3968.Op Ic on | off | both
3969.Xc
3970If on, display a message instead of sending a bell when activity occurs in a
3971window for which the
3972.Ic monitor-activity
3973window option is enabled.
3974If set to both, a bell and a message are produced.
3975.It Xo Ic visual-bell
3976.Op Ic on | off | both
3977.Xc
3978If on, a message is shown on a bell in a window for which the
3979.Ic monitor-bell
3980window option is enabled instead of it being passed through to the
3981terminal (which normally makes a sound).
3982If set to both, a bell and a message are produced.
3983Also see the
3984.Ic bell-action
3985option.
3986.It Xo Ic visual-silence
3987.Op Ic on | off | both
3988.Xc
3989If
3990.Ic monitor-silence
3991is enabled, prints a message after the interval has expired on a given window
3992instead of sending a bell.
3993If set to both, a bell and a message are produced.
3994.It Ic word-separators Ar string
3995Sets the session's conception of what characters are considered word
3996separators, for the purposes of the next and previous word commands in
3997copy mode.
3998.Pp
3999Available window options are:
4000.Pp
4001.Bl -tag -width Ds -compact
4002.It Xo Ic aggressive-resize
4003.Op Ic on | off
4004.Xc
4005Aggressively resize the chosen window.
4006This means that
4007.Nm
4008will resize the window to the size of the smallest or largest session
4009(see the
4010.Ic window-size
4011option) for which it is the current window, rather than the session to
4012which it is attached.
4013The window may resize when the current window is changed on another
4014session; this option is good for full-screen programs which support
4015.Dv SIGWINCH
4016and poor for interactive programs such as shells.
4017.Pp
4018.It Xo Ic automatic-rename
4019.Op Ic on | off
4020.Xc
4021Control automatic window renaming.
4022When this setting is enabled,
4023.Nm
4024will rename the window automatically using the format specified by
4025.Ic automatic-rename-format .
4026This flag is automatically disabled for an individual window when a name
4027is specified at creation with
4028.Ic new-window
4029or
4030.Ic new-session ,
4031or later with
4032.Ic rename-window ,
4033or with a terminal escape sequence.
4034It may be switched off globally with:
4035.Bd -literal -offset indent
4036set-option -wg automatic-rename off
4037.Ed
4038.Pp
4039.It Ic automatic-rename-format Ar format
4040The format (see
4041.Sx FORMATS )
4042used when the
4043.Ic automatic-rename
4044option is enabled.
4045.Pp
4046.It Ic clock-mode-colour Ar colour
4047Set clock colour.
4048.Pp
4049.It Xo Ic clock-mode-style
4050.Op Ic 12 | 24
4051.Xc
4052Set clock hour format.
4053.Pp
4054.It Ic main-pane-height Ar height
4055.It Ic main-pane-width Ar width
4056Set the width or height of the main (left or top) pane in the
4057.Ic main-horizontal
4058or
4059.Ic main-vertical
4060layouts.
4061If suffixed by
4062.Ql % ,
4063this is a percentage of the window size.
4064.Pp
4065.It Ic copy-mode-match-style Ar style
4066Set the style of search matches in copy mode.
4067For how to specify
4068.Ar style ,
4069see the
4070.Sx STYLES
4071section.
4072.Pp
4073.It Ic copy-mode-mark-style Ar style
4074Set the style of the line containing the mark in copy mode.
4075For how to specify
4076.Ar style ,
4077see the
4078.Sx STYLES
4079section.
4080.Pp
4081.It Ic copy-mode-current-match-style Ar style
4082Set the style of the current search match in copy mode.
4083For how to specify
4084.Ar style ,
4085see the
4086.Sx STYLES
4087section.
4088.Pp
4089.It Xo Ic mode-keys
4090.Op Ic vi | emacs
4091.Xc
4092Use vi or emacs-style key bindings in copy mode.
4093The default is emacs, unless
4094.Ev VISUAL
4095or
4096.Ev EDITOR
4097contains
4098.Ql vi .
4099.Pp
4100.It Ic mode-style Ar style
4101Set window modes style.
4102For how to specify
4103.Ar style ,
4104see the
4105.Sx STYLES
4106section.
4107.Pp
4108.It Xo Ic monitor-activity
4109.Op Ic on | off
4110.Xc
4111Monitor for activity in the window.
4112Windows with activity are highlighted in the status line.
4113.Pp
4114.It Xo Ic monitor-bell
4115.Op Ic on | off
4116.Xc
4117Monitor for a bell in the window.
4118Windows with a bell are highlighted in the status line.
4119.Pp
4120.It Xo Ic monitor-silence
4121.Op Ic interval
4122.Xc
4123Monitor for silence (no activity) in the window within
4124.Ic interval
4125seconds.
4126Windows that have been silent for the interval are highlighted in the
4127status line.
4128An interval of zero disables the monitoring.
4129.Pp
4130.It Ic other-pane-height Ar height
4131Set the height of the other panes (not the main pane) in the
4132.Ic main-horizontal
4133layout.
4134If this option is set to 0 (the default), it will have no effect.
4135If both the
4136.Ic main-pane-height
4137and
4138.Ic other-pane-height
4139options are set, the main pane will grow taller to make the other panes the
4140specified height, but will never shrink to do so.
4141If suffixed by
4142.Ql % ,
4143this is a percentage of the window size.
4144.Pp
4145.It Ic other-pane-width Ar width
4146Like
4147.Ic other-pane-height ,
4148but set the width of other panes in the
4149.Ic main-vertical
4150layout.
4151.Pp
4152.It Ic pane-active-border-style Ar style
4153Set the pane border style for the currently active pane.
4154For how to specify
4155.Ar style ,
4156see the
4157.Sx STYLES
4158section.
4159Attributes are ignored.
4160.It Ic pane-base-index Ar index
4161Like
4162.Ic base-index ,
4163but set the starting index for pane numbers.
4164.Pp
4165.It Ic pane-border-format Ar format
4166Set the text shown in pane border status lines.
4167.Pp
4168.It Ic pane-border-lines Ar type
4169Set the type of characters used for drawing pane borders.
4170.Ar type
4171may be one of:
4172.Bl -tag -width Ds
4173.It single
4174single lines using ACS or UTF-8 characters
4175.It double
4176double lines using UTF-8 characters
4177.It heavy
4178heavy lines using UTF-8 characters
4179.It simple
4180simple ASCII characters
4181.It number
4182the pane number
4183.El
4184.Pp
4185.Ql double
4186and
4187.Ql heavy
4188will fall back to standard ACS line drawing when UTF-8 is not supported.
4189.Pp
4190.It Xo Ic pane-border-status
4191.Op Ic off | top | bottom
4192.Xc
4193Turn pane border status lines off or set their position.
4194.Pp
4195.It Ic pane-border-style Ar style
4196Set the pane border style for panes aside from the active pane.
4197For how to specify
4198.Ar style ,
4199see the
4200.Sx STYLES
4201section.
4202Attributes are ignored.
4203.Pp
4204.It Ic window-status-activity-style Ar style
4205Set status line style for windows with an activity alert.
4206For how to specify
4207.Ar style ,
4208see the
4209.Sx STYLES
4210section.
4211.Pp
4212.It Ic window-status-bell-style Ar style
4213Set status line style for windows with a bell alert.
4214For how to specify
4215.Ar style ,
4216see the
4217.Sx STYLES
4218section.
4219.Pp
4220.It Ic window-status-current-format Ar string
4221Like
4222.Ar window-status-format ,
4223but is the format used when the window is the current window.
4224.Pp
4225.It Ic window-status-current-style Ar style
4226Set status line style for the currently active window.
4227For how to specify
4228.Ar style ,
4229see the
4230.Sx STYLES
4231section.
4232.Pp
4233.It Ic window-status-format Ar string
4234Set the format in which the window is displayed in the status line window list.
4235See the
4236.Sx FORMATS
4237and
4238.Sx STYLES
4239sections.
4240.Pp
4241.It Ic window-status-last-style Ar style
4242Set status line style for the last active window.
4243For how to specify
4244.Ar style ,
4245see the
4246.Sx STYLES
4247section.
4248.Pp
4249.It Ic window-status-separator Ar string
4250Sets the separator drawn between windows in the status line.
4251The default is a single space character.
4252.Pp
4253.It Ic window-status-style Ar style
4254Set status line style for a single window.
4255For how to specify
4256.Ar style ,
4257see the
4258.Sx STYLES
4259section.
4260.Pp
4261.It Xo Ic window-size
4262.Ar largest | Ar smallest | Ar manual | Ar latest
4263.Xc
4264Configure how
4265.Nm
4266determines the window size.
4267If set to
4268.Ar largest ,
4269the size of the largest attached session is used; if
4270.Ar smallest ,
4271the size of the smallest.
4272If
4273.Ar manual ,
4274the size of a new window is set from the
4275.Ic default-size
4276option and windows are resized automatically.
4277With
4278.Ar latest ,
4279.Nm
4280uses the size of the client that had the most recent activity.
4281See also the
4282.Ic resize-window
4283command and the
4284.Ic aggressive-resize
4285option.
4286.Pp
4287.It Xo Ic wrap-search
4288.Op Ic on | off
4289.Xc
4290If this option is set, searches will wrap around the end of the pane contents.
4291The default is on.
4292.El
4293.Pp
4294Available pane options are:
4295.Pp
4296.Bl -tag -width Ds -compact
4297.It Xo Ic allow-rename
4298.Op Ic on | off
4299.Xc
4300Allow programs in the pane to change the window name using a terminal escape
4301sequence (\eek...\ee\e\e).
4302.Pp
4303.It Xo Ic alternate-screen
4304.Op Ic on | off
4305.Xc
4306This option configures whether programs running inside the pane may use the
4307terminal alternate screen feature, which allows the
4308.Em smcup
4309and
4310.Em rmcup
4311.Xr terminfo 5
4312capabilities.
4313The alternate screen feature preserves the contents of the window when an
4314interactive application starts and restores it on exit, so that any output
4315visible before the application starts reappears unchanged after it exits.
4316.Pp
4317.It Ic pane-colours[] Ar colour
4318The default colour palette.
4319Each entry in the array defines the colour
4320.Nm
4321uses when the colour with that index is requested.
4322The index may be from zero to 255.
4323.Pp
4324.It Xo Ic remain-on-exit
4325.Op Ic on | off | failed
4326.Xc
4327A pane with this flag set is not destroyed when the program running in it
4328exits.
4329If set to
4330.Ic failed ,
4331then only when the program exit status is not zero.
4332The pane may be reactivated with the
4333.Ic respawn-pane
4334command.
4335.Pp
4336.It Xo Ic synchronize-panes
4337.Op Ic on | off
4338.Xc
4339Duplicate input to all other panes in the same window where this option is also
4340on (only for panes that are not in any mode).
4341.Pp
4342.It Ic window-active-style Ar style
4343Set the pane style when it is the active pane.
4344For how to specify
4345.Ar style ,
4346see the
4347.Sx STYLES
4348section.
4349.Pp
4350.It Ic window-style Ar style
4351Set the pane style.
4352For how to specify
4353.Ar style ,
4354see the
4355.Sx STYLES
4356section.
4357.El
4358.El
4359.Sh HOOKS
4360.Nm
4361allows commands to run on various triggers, called
4362.Em hooks .
4363Most
4364.Nm
4365commands have an
4366.Em after
4367hook and there are a number of hooks not associated with commands.
4368.Pp
4369Hooks are stored as array options, members of the array are executed in
4370order when the hook is triggered.
4371Like options different hooks may be global or belong to a session, window or pane.
4372Hooks may be configured with the
4373.Ic set-hook
4374or
4375.Ic set-option
4376commands and displayed with
4377.Ic show-hooks
4378or
4379.Ic show-options
4380.Fl H .
4381The following two commands are equivalent:
4382.Bd -literal -offset indent.
4383set-hook -g pane-mode-changed[42] 'set -g status-left-style bg=red'
4384set-option -g pane-mode-changed[42] 'set -g status-left-style bg=red'
4385.Ed
4386.Pp
4387Setting a hook without specifying an array index clears the hook and sets the
4388first member of the array.
4389.Pp
4390A command's after
4391hook is run after it completes, except when the command is run as part of a hook
4392itself.
4393They are named with an
4394.Ql after-
4395prefix.
4396For example, the following command adds a hook to select the even-vertical
4397layout after every
4398.Ic split-window :
4399.Bd -literal -offset indent
4400set-hook -g after-split-window "selectl even-vertical"
4401.Ed
4402.Pp
4403All the notifications listed in the
4404.Sx CONTROL MODE
4405section are hooks (without any arguments), except
4406.Ic %exit .
4407The following additional hooks are available:
4408.Bl -tag -width "XXXXXXXXXXXXXXXXXXXXXX"
4409.It alert-activity
4410Run when a window has activity.
4411See
4412.Ic monitor-activity .
4413.It alert-bell
4414Run when a window has received a bell.
4415See
4416.Ic monitor-bell .
4417.It alert-silence
4418Run when a window has been silent.
4419See
4420.Ic monitor-silence .
4421.It client-active
4422Run when a client becomes the latest active client of its session.
4423.It client-attached
4424Run when a client is attached.
4425.It client-detached
4426Run when a client is detached
4427.It client-focus-in
4428Run when focus enters a client
4429.It client-focus-out
4430Run when focus exits a client
4431.It client-resized
4432Run when a client is resized.
4433.It client-session-changed
4434Run when a client's attached session is changed.
4435.It pane-died
4436Run when the program running in a pane exits, but
4437.Ic remain-on-exit
4438is on so the pane has not closed.
4439.It pane-exited
4440Run when the program running in a pane exits.
4441.It pane-focus-in
4442Run when the focus enters a pane, if the
4443.Ic focus-events
4444option is on.
4445.It pane-focus-out
4446Run when the focus exits a pane, if the
4447.Ic focus-events
4448option is on.
4449.It pane-set-clipboard
4450Run when the terminal clipboard is set using the
4451.Xr xterm 1
4452escape sequence.
4453.It session-created
4454Run when a new session created.
4455.It session-closed
4456Run when a session closed.
4457.It session-renamed
4458Run when a session is renamed.
4459.It window-linked
4460Run when a window is linked into a session.
4461.It window-renamed
4462Run when a window is renamed.
4463.It window-unlinked
4464Run when a window is unlinked from a session.
4465.El
4466.Pp
4467Hooks are managed with these commands:
4468.Bl -tag -width Ds
4469.It Xo Ic set-hook
4470.Op Fl agpRuw
4471.Op Fl t Ar target-pane
4472.Ar hook-name
4473.Ar command
4474.Xc
4475Without
4476.Fl R ,
4477sets (or with
4478.Fl u
4479unsets) hook
4480.Ar hook-name
4481to
4482.Ar command .
4483The flags are the same as for
4484.Ic set-option .
4485.Pp
4486With
4487.Fl R ,
4488run
4489.Ar hook-name
4490immediately.
4491.It Xo Ic show-hooks
4492.Op Fl gpw
4493.Op Fl t Ar target-pane
4494.Xc
4495Shows hooks.
4496The flags are the same as for
4497.Ic show-options .
4498.El
4499.Sh MOUSE SUPPORT
4500If the
4501.Ic mouse
4502option is on (the default is off),
4503.Nm
4504allows mouse events to be bound as keys.
4505The name of each key is made up of a mouse event (such as
4506.Ql MouseUp1 )
4507and a location suffix, one of the following:
4508.Bl -column "XXXXXXXXXXXXX" -offset indent
4509.It Li "Pane" Ta "the contents of a pane"
4510.It Li "Border" Ta "a pane border"
4511.It Li "Status" Ta "the status line window list"
4512.It Li "StatusLeft" Ta "the left part of the status line"
4513.It Li "StatusRight" Ta "the right part of the status line"
4514.It Li "StatusDefault" Ta "any other part of the status line"
4515.El
4516.Pp
4517The following mouse events are available:
4518.Bl -column "MouseDown1" "MouseDrag1" "WheelDown" -offset indent
4519.It Li "WheelUp" Ta "WheelDown" Ta ""
4520.It Li "MouseDown1" Ta "MouseUp1" Ta "MouseDrag1" Ta "MouseDragEnd1"
4521.It Li "MouseDown2" Ta "MouseUp2" Ta "MouseDrag2" Ta "MouseDragEnd2"
4522.It Li "MouseDown3" Ta "MouseUp3" Ta "MouseDrag3" Ta "MouseDragEnd3"
4523.It Li "SecondClick1" Ta "SecondClick2" Ta "SecondClick3"
4524.It Li "DoubleClick1" Ta "DoubleClick2" Ta "DoubleClick3"
4525.It Li "TripleClick1" Ta "TripleClick2" Ta "TripleClick3"
4526.El
4527.Pp
4528The
4529.Ql SecondClick
4530events are fired for the second click of a double click, even if there may be a
4531third click which will fire
4532.Ql TripleClick
4533instead of
4534.Ql DoubleClick .
4535.Pp
4536Each should be suffixed with a location, for example
4537.Ql MouseDown1Status .
4538.Pp
4539The special token
4540.Ql {mouse}
4541or
4542.Ql =
4543may be used as
4544.Ar target-window
4545or
4546.Ar target-pane
4547in commands bound to mouse key bindings.
4548It resolves to the window or pane over which the mouse event took place
4549(for example, the window in the status line over which button 1 was released for a
4550.Ql MouseUp1Status
4551binding, or the pane over which the wheel was scrolled for a
4552.Ql WheelDownPane
4553binding).
4554.Pp
4555The
4556.Ic send-keys
4557.Fl M
4558flag may be used to forward a mouse event to a pane.
4559.Pp
4560The default key bindings allow the mouse to be used to select and resize panes,
4561to copy text and to change window using the status line.
4562These take effect if the
4563.Ic mouse
4564option is turned on.
4565.Sh FORMATS
4566Certain commands accept the
4567.Fl F
4568flag with a
4569.Ar format
4570argument.
4571This is a string which controls the output format of the command.
4572Format variables are enclosed in
4573.Ql #{
4574and
4575.Ql } ,
4576for example
4577.Ql #{session_name} .
4578The possible variables are listed in the table below, or the name of a
4579.Nm
4580option may be used for an option's value.
4581Some variables have a shorter alias such as
4582.Ql #S ;
4583.Ql ##
4584is replaced by a single
4585.Ql # ,
4586.Ql #,
4587by a
4588.Ql \&,
4589and
4590.Ql #}
4591by a
4592.Ql } .
4593.Pp
4594Conditionals are available by prefixing with
4595.Ql \&?
4596and separating two alternatives with a comma;
4597if the specified variable exists and is not zero, the first alternative
4598is chosen, otherwise the second is used.
4599For example
4600.Ql #{?session_attached,attached,not attached}
4601will include the string
4602.Ql attached
4603if the session is attached and the string
4604.Ql not attached
4605if it is unattached, or
4606.Ql #{?automatic-rename,yes,no}
4607will include
4608.Ql yes
4609if
4610.Ic automatic-rename
4611is enabled, or
4612.Ql no
4613if not.
4614Conditionals can be nested arbitrarily.
4615Inside a conditional,
4616.Ql \&,
4617and
4618.Ql }
4619must be escaped as
4620.Ql #,
4621and
4622.Ql #} ,
4623unless they are part of a
4624.Ql #{...}
4625replacement.
4626For example:
4627.Bd -literal -offset indent
4628#{?pane_in_mode,#[fg=white#,bg=red],#[fg=red#,bg=white]}#W .
4629.Ed
4630.Pp
4631String comparisons may be expressed by prefixing two comma-separated
4632alternatives by
4633.Ql == ,
4634.Ql != ,
4635.Ql < ,
4636.Ql > ,
4637.Ql <=
4638or
4639.Ql >=
4640and a colon.
4641For example
4642.Ql #{==:#{host},myhost}
4643will be replaced by
4644.Ql 1
4645if running on
4646.Ql myhost ,
4647otherwise by
4648.Ql 0 .
4649.Ql ||
4650and
4651.Ql &&
4652evaluate to true if either or both of two comma-separated alternatives are
4653true, for example
4654.Ql #{||:#{pane_in_mode},#{alternate_on}} .
4655.Pp
4656An
4657.Ql m
4658specifies an
4659.Xr fnmatch 3
4660or regular expression comparison.
4661The first argument is the pattern and the second the string to compare.
4662An optional argument specifies flags:
4663.Ql r
4664means the pattern is a regular expression instead of the default
4665.Xr fnmatch 3
4666pattern, and
4667.Ql i
4668means to ignore case.
4669For example:
4670.Ql #{m:*foo*,#{host}}
4671or
4672.Ql #{m/ri:^A,MYVAR} .
4673A
4674.Ql C
4675performs a search for an
4676.Xr fnmatch 3
4677pattern or regular expression in the pane content and evaluates to zero if not
4678found, or a line number if found.
4679Like
4680.Ql m ,
4681an
4682.Ql r
4683flag means search for a regular expression and
4684.Ql i
4685ignores case.
4686For example:
4687.Ql #{C/r:^Start}
4688.Pp
4689Numeric operators may be performed by prefixing two comma-separated alternatives with an
4690.Ql e
4691and an operator.
4692An optional
4693.Ql f
4694flag may be given after the operator to use floating point numbers, otherwise integers are used.
4695This may be followed by a number giving the number of decimal places to use for the result.
4696The available operators are:
4697addition
4698.Ql + ,
4699subtraction
4700.Ql - ,
4701multiplication
4702.Ql * ,
4703division
4704.Ql / ,
4705modulus
4706.Ql m
4707or
4708.Ql %
4709(note that
4710.Ql %
4711must be escaped as
4712.Ql %%
4713in formats which are also expanded by
4714.Xr strftime 3 )
4715and numeric comparison operators
4716.Ql == ,
4717.Ql != ,
4718.Ql < ,
4719.Ql <= ,
4720.Ql >
4721and
4722.Ql >= .
4723For example,
4724.Ql #{e|*|f|4:5.5,3}
4725multiplies 5.5 by 3 for a result with four decimal places and
4726.Ql #{e|%%:7,3}
4727returns the modulus of 7 and 3.
4728.Ql a
4729replaces a numeric argument by its ASCII equivalent, so
4730.Ql #{a:98}
4731results in
4732.Ql b .
4733.Pp
4734A limit may be placed on the length of the resultant string by prefixing it
4735by an
4736.Ql = ,
4737a number and a colon.
4738Positive numbers count from the start of the string and negative from the end,
4739so
4740.Ql #{=5:pane_title}
4741will include at most the first five characters of the pane title, or
4742.Ql #{=-5:pane_title}
4743the last five characters.
4744A suffix or prefix may be given as a second argument - if provided then it is
4745appended or prepended to the string if the length has been trimmed, for example
4746.Ql #{=/5/...:pane_title}
4747will append
4748.Ql ...
4749if the pane title is more than five characters.
4750Similarly,
4751.Ql p
4752pads the string to a given width, for example
4753.Ql #{p10:pane_title}
4754will result in a width of at least 10 characters.
4755A positive width pads on the left, a negative on the right.
4756.Ql n
4757expands to the length of the variable and
4758.Ql w
4759to its width when displayed, for example
4760.Ql #{n:window_name} .
4761.Pp
4762Prefixing a time variable with
4763.Ql t:\&
4764will convert it to a string, so if
4765.Ql #{window_activity}
4766gives
4767.Ql 1445765102 ,
4768.Ql #{t:window_activity}
4769gives
4770.Ql Sun Oct 25 09:25:02 2015 .
4771Adding
4772.Ql p (
4773.Ql `t/p` )
4774will use shorter but less accurate time format for times in the past.
4775A custom format may be given using an
4776.Ql f
4777suffix (note that
4778.Ql %
4779must be escaped as
4780.Ql %%
4781if the format is separately being passed through
4782.Xr strftime 3 ,
4783for example in the
4784.Ic status-left
4785option):
4786.Ql #{t/f/%%H#:%%M:window_activity} ,
4787see
4788.Xr strftime 3 .
4789.Pp
4790The
4791.Ql b:\&
4792and
4793.Ql d:\&
4794prefixes are
4795.Xr basename 3
4796and
4797.Xr dirname 3
4798of the variable respectively.
4799.Ql q:\&
4800will escape
4801.Xr sh 1
4802special characters or with a
4803.Ql h
4804suffix, escape hash characters (so
4805.Ql #
4806becomes
4807.Ql ## ) .
4808.Ql E:\&
4809will expand the format twice, for example
4810.Ql #{E:status-left}
4811is the result of expanding the content of the
4812.Ic status-left
4813option rather than the option itself.
4814.Ql T:\&
4815is like
4816.Ql E:\&
4817but also expands
4818.Xr strftime 3
4819specifiers.
4820.Ql S:\& ,
4821.Ql W:\&
4822or
4823.Ql P:\&
4824will loop over each session, window or pane and insert the format once
4825for each.
4826For windows and panes, two comma-separated formats may be given:
4827the second is used for the current window or active pane.
4828For example, to get a list of windows formatted like the status line:
4829.Bd -literal -offset indent
4830#{W:#{E:window-status-format} ,#{E:window-status-current-format} }
4831.Ed
4832.Pp
4833.Ql N:\&
4834checks if a window (without any suffix or with the
4835.Ql w
4836suffix) or a session (with the
4837.Ql s
4838suffix) name exists, for example
4839.Ql `N/w:foo`
4840is replaced with 1 if a window named
4841.Ql foo
4842exists.
4843.Pp
4844A prefix of the form
4845.Ql s/foo/bar/:\&
4846will substitute
4847.Ql foo
4848with
4849.Ql bar
4850throughout.
4851The first argument may be an extended regular expression and a final argument may be
4852.Ql i
4853to ignore case, for example
4854.Ql s/a(.)/\e1x/i:\&
4855would change
4856.Ql abABab
4857into
4858.Ql bxBxbx .
4859.Pp
4860In addition, the last line of a shell command's output may be inserted using
4861.Ql #() .
4862For example,
4863.Ql #(uptime)
4864will insert the system's uptime.
4865When constructing formats,
4866.Nm
4867does not wait for
4868.Ql #()
4869commands to finish; instead, the previous result from running the same command is used,
4870or a placeholder if the command has not been run before.
4871If the command hasn't exited, the most recent line of output will be used, but the status
4872line will not be updated more than once a second.
4873Commands are executed with the
4874.Nm
4875global environment set (see the
4876.Sx GLOBAL AND SESSION ENVIRONMENT
4877section).
4878.Pp
4879An
4880.Ql l
4881specifies that a string should be interpreted literally and not expanded.
4882For example
4883.Ql #{l:#{?pane_in_mode,yes,no}}
4884will be replaced by
4885.Ql #{?pane_in_mode,yes,no} .
4886.Pp
4887The following variables are available, where appropriate:
4888.Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX"
4889.It Sy "Variable name" Ta Sy "Alias" Ta Sy "Replaced with"
4890.It Li "active_window_index" Ta "" Ta "Index of active window in session"
4891.It Li "alternate_on" Ta "" Ta "1 if pane is in alternate screen"
4892.It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen"
4893.It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen"
4894.It Li "buffer_created" Ta "" Ta "Time buffer created"
4895.It Li "buffer_name" Ta "" Ta "Name of buffer"
4896.It Li "buffer_sample" Ta "" Ta "Sample of start of buffer"
4897.It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes"
4898.It Li "client_activity" Ta "" Ta "Time client last had activity"
4899.It Li "client_cell_height" Ta "" Ta "Height of each client cell in pixels"
4900.It Li "client_cell_width" Ta "" Ta "Width of each client cell in pixels"
4901.It Li "client_control_mode" Ta "" Ta "1 if client is in control mode"
4902.It Li "client_created" Ta "" Ta "Time client created"
4903.It Li "client_discarded" Ta "" Ta "Bytes discarded when client behind"
4904.It Li "client_flags" Ta "" Ta "List of client flags"
4905.It Li "client_height" Ta "" Ta "Height of client"
4906.It Li "client_key_table" Ta "" Ta "Current key table"
4907.It Li "client_last_session" Ta "" Ta "Name of the client's last session"
4908.It Li "client_name" Ta "" Ta "Name of client"
4909.It Li "client_pid" Ta "" Ta "PID of client process"
4910.It Li "client_prefix" Ta "" Ta "1 if prefix key has been pressed"
4911.It Li "client_readonly" Ta "" Ta "1 if client is readonly"
4912.It Li "client_session" Ta "" Ta "Name of the client's session"
4913.It Li "client_termfeatures" Ta "" Ta "Terminal features of client, if any"
4914.It Li "client_termname" Ta "" Ta "Terminal name of client"
4915.It Li "client_termtype" Ta "" Ta "Terminal type of client, if available"
4916.It Li "client_tty" Ta "" Ta "Pseudo terminal of client"
4917.It Li "client_utf8" Ta "" Ta "1 if client supports UTF-8"
4918.It Li "client_width" Ta "" Ta "Width of client"
4919.It Li "client_written" Ta "" Ta "Bytes written to client"
4920.It Li "command" Ta "" Ta "Name of command in use, if any"
4921.It Li "command_list_alias" Ta "" Ta "Command alias if listing commands"
4922.It Li "command_list_name" Ta "" Ta "Command name if listing commands"
4923.It Li "command_list_usage" Ta "" Ta "Command usage if listing commands"
4924.It Li "config_files" Ta "" Ta "List of configuration files loaded"
4925.It Li "copy_cursor_line" Ta "" Ta "Line the cursor is on in copy mode"
4926.It Li "copy_cursor_word" Ta "" Ta "Word under cursor in copy mode"
4927.It Li "copy_cursor_x" Ta "" Ta "Cursor X position in copy mode"
4928.It Li "copy_cursor_y" Ta "" Ta "Cursor Y position in copy mode"
4929.It Li "current_file" Ta "" Ta "Current configuration file"
4930.It Li "cursor_character" Ta "" Ta "Character at cursor in pane"
4931.It Li "cursor_flag" Ta "" Ta "Pane cursor flag"
4932.It Li "cursor_x" Ta "" Ta "Cursor X position in pane"
4933.It Li "cursor_y" Ta "" Ta "Cursor Y position in pane"
4934.It Li "history_bytes" Ta "" Ta "Number of bytes in window history"
4935.It Li "history_limit" Ta "" Ta "Maximum window history lines"
4936.It Li "history_size" Ta "" Ta "Size of history in lines"
4937.It Li "hook" Ta "" Ta "Name of running hook, if any"
4938.It Li "hook_client" Ta "" Ta "Name of client where hook was run, if any"
4939.It Li "hook_pane" Ta "" Ta "ID of pane where hook was run, if any"
4940.It Li "hook_session" Ta "" Ta "ID of session where hook was run, if any"
4941.It Li "hook_session_name" Ta "" Ta "Name of session where hook was run, if any"
4942.It Li "hook_window" Ta "" Ta "ID of window where hook was run, if any"
4943.It Li "hook_window_name" Ta "" Ta "Name of window where hook was run, if any"
4944.It Li "host" Ta "#H" Ta "Hostname of local host"
4945.It Li "host_short" Ta "#h" Ta "Hostname of local host (no domain name)"
4946.It Li "insert_flag" Ta "" Ta "Pane insert flag"
4947.It Li "keypad_cursor_flag" Ta "" Ta "Pane keypad cursor flag"
4948.It Li "keypad_flag" Ta "" Ta "Pane keypad flag"
4949.It Li "last_window_index" Ta "" Ta "Index of last window in session"
4950.It Li "line" Ta "" Ta "Line number in the list"
4951.It Li "mouse_all_flag" Ta "" Ta "Pane mouse all flag"
4952.It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag"
4953.It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag"
4954.It Li "mouse_line" Ta "" Ta "Line under mouse, if any"
4955.It Li "mouse_sgr_flag" Ta "" Ta "Pane mouse SGR flag"
4956.It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag"
4957.It Li "mouse_utf8_flag" Ta "" Ta "Pane mouse UTF-8 flag"
4958.It Li "mouse_word" Ta "" Ta "Word under mouse, if any"
4959.It Li "mouse_x" Ta "" Ta "Mouse X position, if any"
4960.It Li "mouse_y" Ta "" Ta "Mouse Y position, if any"
4961.It Li "origin_flag" Ta "" Ta "Pane origin flag"
4962.It Li "pane_active" Ta "" Ta "1 if active pane"
4963.It Li "pane_at_bottom" Ta "" Ta "1 if pane is at the bottom of window"
4964.It Li "pane_at_left" Ta "" Ta "1 if pane is at the left of window"
4965.It Li "pane_at_right" Ta "" Ta "1 if pane is at the right of window"
4966.It Li "pane_at_top" Ta "" Ta "1 if pane is at the top of window"
4967.It Li "pane_bg" Ta "" Ta "Pane background colour"
4968.It Li "pane_bottom" Ta "" Ta "Bottom of pane"
4969.It Li "pane_current_command" Ta "" Ta "Current command if available"
4970.It Li "pane_current_path" Ta "" Ta "Current path if available"
4971.It Li "pane_dead" Ta "" Ta "1 if pane is dead"
4972.It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane"
4973.It Li "pane_fg" Ta "" Ta "Pane foreground colour"
4974.It Li "pane_format" Ta "" Ta "1 if format is for a pane"
4975.It Li "pane_height" Ta "" Ta "Height of pane"
4976.It Li "pane_id" Ta "#D" Ta "Unique pane ID"
4977.It Li "pane_in_mode" Ta "" Ta "1 if pane is in a mode"
4978.It Li "pane_index" Ta "#P" Ta "Index of pane"
4979.It Li "pane_input_off" Ta "" Ta "1 if input to pane is disabled"
4980.It Li "pane_last" Ta "" Ta "1 if last pane"
4981.It Li "pane_left" Ta "" Ta "Left of pane"
4982.It Li "pane_marked" Ta "" Ta "1 if this is the marked pane"
4983.It Li "pane_marked_set" Ta "" Ta "1 if a marked pane is set"
4984.It Li "pane_mode" Ta "" Ta "Name of pane mode, if any"
4985.It Li "pane_path" Ta "" Ta "Path of pane (can be set by application)"
4986.It Li "pane_pid" Ta "" Ta "PID of first process in pane"
4987.It Li "pane_pipe" Ta "" Ta "1 if pane is being piped"
4988.It Li "pane_right" Ta "" Ta "Right of pane"
4989.It Li "pane_search_string" Ta "" Ta "Last search string in copy mode"
4990.It Li "pane_start_command" Ta "" Ta "Command pane started with"
4991.It Li "pane_synchronized" Ta "" Ta "1 if pane is synchronized"
4992.It Li "pane_tabs" Ta "" Ta "Pane tab positions"
4993.It Li "pane_title" Ta "#T" Ta "Title of pane (can be set by application)"
4994.It Li "pane_top" Ta "" Ta "Top of pane"
4995.It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane"
4996.It Li "pane_width" Ta "" Ta "Width of pane"
4997.It Li "pid" Ta "" Ta "Server PID"
4998.It Li "rectangle_toggle" Ta "" Ta "1 if rectangle selection is activated"
4999.It Li "scroll_position" Ta "" Ta "Scroll position in copy mode"
5000.It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane"
5001.It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane"
5002.It Li "search_match" Ta "" Ta "Search match if any"
5003.It Li "search_present" Ta "" Ta "1 if search started in copy mode"
5004.It Li "selection_active" Ta "" Ta "1 if selection started and changes with the cursor in copy mode"
5005.It Li "selection_end_x" Ta "" Ta "X position of the end of the selection"
5006.It Li "selection_end_y" Ta "" Ta "Y position of the end of the selection"
5007.It Li "selection_present" Ta "" Ta "1 if selection started in copy mode"
5008.It Li "selection_start_x" Ta "" Ta "X position of the start of the selection"
5009.It Li "selection_start_y" Ta "" Ta "Y position of the start of the selection"
5010.It Li "session_activity" Ta "" Ta "Time of session last activity"
5011.It Li "session_alerts" Ta "" Ta "List of window indexes with alerts"
5012.It Li "session_attached" Ta "" Ta "Number of clients session is attached to"
5013.It Li "session_attached_list" Ta "" Ta "List of clients session is attached to"
5014.It Li "session_created" Ta "" Ta "Time session created"
5015.It Li "session_format" Ta "" Ta "1 if format is for a session"
5016.It Li "session_group" Ta "" Ta "Name of session group"
5017.It Li "session_group_attached" Ta "" Ta "Number of clients sessions in group are attached to"
5018.It Li "session_group_attached_list" Ta "" Ta "List of clients sessions in group are attached to"
5019.It Li "session_group_list" Ta "" Ta "List of sessions in group"
5020.It Li "session_group_many_attached" Ta "" Ta "1 if multiple clients attached to sessions in group"
5021.It Li "session_group_size" Ta "" Ta "Size of session group"
5022.It Li "session_grouped" Ta "" Ta "1 if session in a group"
5023.It Li "session_id" Ta "" Ta "Unique session ID"
5024.It Li "session_last_attached" Ta "" Ta "Time session last attached"
5025.It Li "session_many_attached" Ta "" Ta "1 if multiple clients attached"
5026.It Li "session_marked" Ta "" Ta "1 if this session contains the marked pane"
5027.It Li "session_name" Ta "#S" Ta "Name of session"
5028.It Li "session_path" Ta "" Ta "Working directory of session"
5029.It Li "session_stack" Ta "" Ta "Window indexes in most recent order"
5030.It Li "session_windows" Ta "" Ta "Number of windows in session"
5031.It Li "socket_path" Ta "" Ta "Server socket path"
5032.It Li "start_time" Ta "" Ta "Server start time"
5033.It Li "version" Ta "" Ta "Server version"
5034.It Li "window_active" Ta "" Ta "1 if window active"
5035.It Li "window_active_clients" Ta "" Ta "Number of clients viewing this window"
5036.It Li "window_active_clients_list" Ta "" Ta "List of clients viewing this window"
5037.It Li "window_active_sessions" Ta "" Ta "Number of sessions on which this window is active"
5038.It Li "window_active_sessions_list" Ta "" Ta "List of sessions on which this window is active"
5039.It Li "window_activity" Ta "" Ta "Time of window last activity"
5040.It Li "window_activity_flag" Ta "" Ta "1 if window has activity"
5041.It Li "window_bell_flag" Ta "" Ta "1 if window has bell"
5042.It Li "window_bigger" Ta "" Ta "1 if window is larger than client"
5043.It Li "window_cell_height" Ta "" Ta "Height of each cell in pixels"
5044.It Li "window_cell_width" Ta "" Ta "Width of each cell in pixels"
5045.It Li "window_end_flag" Ta "" Ta "1 if window has the highest index"
5046.It Li "window_flags" Ta "#F" Ta "Window flags with # escaped as ##"
5047.It Li "window_raw_flags" Ta "" Ta "Window flags with nothing escaped"
5048.It Li "window_format" Ta "" Ta "1 if format is for a window"
5049.It Li "window_height" Ta "" Ta "Height of window"
5050.It Li "window_id" Ta "" Ta "Unique window ID"
5051.It Li "window_index" Ta "#I" Ta "Index of window"
5052.It Li "window_last_flag" Ta "" Ta "1 if window is the last used"
5053.It Li "window_layout" Ta "" Ta "Window layout description, ignoring zoomed window panes"
5054.It Li "window_linked" Ta "" Ta "1 if window is linked across sessions"
5055.It Li "window_linked_sessions" Ta "" Ta "Number of sessions this window is linked to"
5056.It Li "window_linked_sessions_list" Ta "" Ta "List of sessions this window is linked to"
5057.It Li "window_marked_flag" Ta "" Ta "1 if window contains the marked pane"
5058.It Li "window_name" Ta "#W" Ta "Name of window"
5059.It Li "window_offset_x" Ta "" Ta "X offset into window if larger than client"
5060.It Li "window_offset_y" Ta "" Ta "Y offset into window if larger than client"
5061.It Li "window_panes" Ta "" Ta "Number of panes in window"
5062.It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert"
5063.It Li "window_stack_index" Ta "" Ta "Index in session most recent stack"
5064.It Li "window_start_flag" Ta "" Ta "1 if window has the lowest index"
5065.It Li "window_visible_layout" Ta "" Ta "Window layout description, respecting zoomed window panes"
5066.It Li "window_width" Ta "" Ta "Width of window"
5067.It Li "window_zoomed_flag" Ta "" Ta "1 if window is zoomed"
5068.It Li "wrap_flag" Ta "" Ta "Pane wrap flag"
5069.El
5070.Sh STYLES
5071.Nm
5072offers various options to specify the colour and attributes of aspects of the
5073interface, for example
5074.Ic status-style
5075for the status line.
5076In addition, embedded styles may be specified in format options, such as
5077.Ic status-left ,
5078by enclosing them in
5079.Ql #[
5080and
5081.Ql \&] .
5082.Pp
5083A style may be the single term
5084.Ql default
5085to specify the default style (which may come from an option, for example
5086.Ic status-style
5087in the status line) or a space
5088or comma separated list of the following:
5089.Bl -tag -width Ds
5090.It Ic fg=colour
5091Set the foreground colour.
5092The colour is one of:
5093.Ic black ,
5094.Ic red ,
5095.Ic green ,
5096.Ic yellow ,
5097.Ic blue ,
5098.Ic magenta ,
5099.Ic cyan ,
5100.Ic white ;
5101if supported the bright variants
5102.Ic brightred ,
5103.Ic brightgreen ,
5104.Ic brightyellow ;
5105.Ic colour0
5106to
5107.Ic colour255
5108from the 256-colour set;
5109.Ic default
5110for the default colour;
5111.Ic terminal
5112for the terminal default colour; or a hexadecimal RGB string such as
5113.Ql #ffffff .
5114.It Ic bg=colour
5115Set the background colour.
5116.It Ic none
5117Set no attributes (turn off any active attributes).
5118.It Xo Ic acs ,
5119.Ic bright
5120(or
5121.Ic bold ) ,
5122.Ic dim ,
5123.Ic underscore ,
5124.Ic blink ,
5125.Ic reverse ,
5126.Ic hidden ,
5127.Ic italics ,
5128.Ic overline ,
5129.Ic strikethrough ,
5130.Ic double-underscore ,
5131.Ic curly-underscore ,
5132.Ic dotted-underscore ,
5133.Ic dashed-underscore
5134.Xc
5135Set an attribute.
5136Any of the attributes may be prefixed with
5137.Ql no
5138to unset.
5139.Ic acs
5140is the terminal alternate character set.
5141.It Xo Ic align=left
5142(or
5143.Ic noalign ) ,
5144.Ic align=centre ,
5145.Ic align=right
5146.Xc
5147Align text to the left, centre or right of the available space if appropriate.
5148.It Ic fill=colour
5149Fill the available space with a background colour if appropriate.
5150.It Xo Ic list=on ,
5151.Ic list=focus ,
5152.Ic list=left-marker ,
5153.Ic list=right-marker ,
5154.Ic nolist
5155.Xc
5156Mark the position of the various window list components in the
5157.Ic status-format
5158option:
5159.Ic list=on
5160marks the start of the list;
5161.Ic list=focus
5162is the part of the list that should be kept in focus if the entire list won't fit
5163in the available space (typically the current window);
5164.Ic list=left-marker
5165and
5166.Ic list=right-marker
5167mark the text to be used to mark that text has been trimmed from the left or
5168right of the list if there is not enough space.
5169.It Xo Ic push-default ,
5170.Ic pop-default
5171.Xc
5172Store the current colours and attributes as the default or reset to the previous
5173default.
5174A
5175.Ic push-default
5176affects any subsequent use of the
5177.Ic default
5178term until a
5179.Ic pop-default .
5180Only one default may be pushed (each
5181.Ic push-default
5182replaces the previous saved default).
5183.It Xo Ic range=left ,
5184.Ic range=right ,
5185.Ic range=window|X ,
5186.Ic norange
5187.Xc
5188Mark a range in the
5189.Ic status-format
5190option.
5191.Ic range=left
5192and
5193.Ic range=right
5194are the text used for the
5195.Ql StatusLeft
5196and
5197.Ql StatusRight
5198mouse keys.
5199.Ic range=window|X
5200is the range for a window passed to the
5201.Ql Status
5202mouse key, where
5203.Ql X
5204is a window index.
5205.El
5206.Pp
5207Examples are:
5208.Bd -literal -offset indent
5209fg=yellow bold underscore blink
5210bg=black,fg=default,noreverse
5211.Ed
5212.Sh NAMES AND TITLES
5213.Nm
5214distinguishes between names and titles.
5215Windows and sessions have names, which may be used to specify them in targets
5216and are displayed in the status line and various lists: the name is the
5217.Nm
5218identifier for a window or session.
5219Only panes have titles.
5220A pane's title is typically set by the program running inside the pane using
5221an escape sequence (like it would set the
5222.Xr xterm 1
5223window title in
5224.Xr X 7 ) .
5225Windows themselves do not have titles - a window's title is the title of its
5226active pane.
5227.Nm
5228itself may set the title of the terminal in which the client is running, see
5229the
5230.Ic set-titles
5231option.
5232.Pp
5233A session's name is set with the
5234.Ic new-session
5235and
5236.Ic rename-session
5237commands.
5238A window's name is set with one of:
5239.Bl -enum -width Ds
5240.It
5241A command argument (such as
5242.Fl n
5243for
5244.Ic new-window
5245or
5246.Ic new-session ) .
5247.It
5248An escape sequence (if the
5249.Ic allow-rename
5250option is turned on):
5251.Bd -literal -offset indent
5252$ printf '\e033kWINDOW_NAME\e033\e\e'
5253.Ed
5254.It
5255Automatic renaming, which sets the name to the active command in the window's
5256active pane.
5257See the
5258.Ic automatic-rename
5259option.
5260.El
5261.Pp
5262When a pane is first created, its title is the hostname.
5263A pane's title can be set via the title setting escape sequence, for example:
5264.Bd -literal -offset indent
5265$ printf '\e033]2;My Title\e033\e\e'
5266.Ed
5267.Pp
5268It can also be modified with the
5269.Ic select-pane
5270.Fl T
5271command.
5272.Sh GLOBAL AND SESSION ENVIRONMENT
5273When the server is started,
5274.Nm
5275copies the environment into the
5276.Em global environment ;
5277in addition, each session has a
5278.Em session environment .
5279When a window is created, the session and global environments are merged.
5280If a variable exists in both, the value from the session environment is used.
5281The result is the initial environment passed to the new process.
5282.Pp
5283The
5284.Ic update-environment
5285session option may be used to update the session environment from the client
5286when a new session is created or an old reattached.
5287.Nm
5288also initialises the
5289.Ev TMUX
5290variable with some internal information to allow commands to be executed
5291from inside, and the
5292.Ev TERM
5293variable with the correct terminal setting of
5294.Ql screen .
5295.Pp
5296Variables in both session and global environments may be marked as hidden.
5297Hidden variables are not passed into the environment of new processes and
5298instead can only be used by tmux itself (for example in formats, see the
5299.Sx FORMATS
5300section).
5301.Pp
5302Commands to alter and view the environment are:
5303.Bl -tag -width Ds
5304.It Xo Ic set-environment
5305.Op Fl Fhgru
5306.Op Fl t Ar target-session
5307.Ar name Op Ar value
5308.Xc
5309.D1 (alias: Ic setenv )
5310Set or unset an environment variable.
5311If
5312.Fl g
5313is used, the change is made in the global environment; otherwise, it is applied
5314to the session environment for
5315.Ar target-session .
5316If
5317.Fl F
5318is present, then
5319.Ar value
5320is expanded as a format.
5321The
5322.Fl u
5323flag unsets a variable.
5324.Fl r
5325indicates the variable is to be removed from the environment before starting a
5326new process.
5327.Fl h
5328marks the variable as hidden.
5329.It Xo Ic show-environment
5330.Op Fl hgs
5331.Op Fl t Ar target-session
5332.Op Ar variable
5333.Xc
5334.D1 (alias: Ic showenv )
5335Display the environment for
5336.Ar target-session
5337or the global environment with
5338.Fl g .
5339If
5340.Ar variable
5341is omitted, all variables are shown.
5342Variables removed from the environment are prefixed with
5343.Ql - .
5344If
5345.Fl s
5346is used, the output is formatted as a set of Bourne shell commands.
5347.Fl h
5348shows hidden variables (omitted by default).
5349.El
5350.Sh STATUS LINE
5351.Nm
5352includes an optional status line which is displayed in the bottom line of each
5353terminal.
5354.Pp
5355By default, the status line is enabled and one line in height (it may be
5356disabled or made multiple lines with the
5357.Ic status
5358session option) and contains, from left-to-right: the name of the current
5359session in square brackets; the window list; the title of the active pane
5360in double quotes; and the time and date.
5361.Pp
5362Each line of the status line is configured with the
5363.Ic status-format
5364option.
5365The default is made of three parts: configurable left and right sections (which
5366may contain dynamic content such as the time or output from a shell command,
5367see the
5368.Ic status-left ,
5369.Ic status-left-length ,
5370.Ic status-right ,
5371and
5372.Ic status-right-length
5373options below), and a central window list.
5374By default, the window list shows the index, name and (if any) flag of the
5375windows present in the current session in ascending numerical order.
5376It may be customised with the
5377.Ar window-status-format
5378and
5379.Ar window-status-current-format
5380options.
5381The flag is one of the following symbols appended to the window name:
5382.Bl -column "Symbol" "Meaning" -offset indent
5383.It Sy "Symbol" Ta Sy "Meaning"
5384.It Li "*" Ta "Denotes the current window."
5385.It Li "-" Ta "Marks the last window (previously selected)."
5386.It Li "#" Ta "Window activity is monitored and activity has been detected."
5387.It Li "\&!" Ta "Window bells are monitored and a bell has occurred in the window."
5388.It Li "~" Ta "The window has been silent for the monitor-silence interval."
5389.It Li "M" Ta "The window contains the marked pane."
5390.It Li "Z" Ta "The window's active pane is zoomed."
5391.El
5392.Pp
5393The # symbol relates to the
5394.Ic monitor-activity
5395window option.
5396The window name is printed in inverted colours if an alert (bell, activity or
5397silence) is present.
5398.Pp
5399The colour and attributes of the status line may be configured, the entire
5400status line using the
5401.Ic status-style
5402session option and individual windows using the
5403.Ic window-status-style
5404window option.
5405.Pp
5406The status line is automatically refreshed at interval if it has changed, the
5407interval may be controlled with the
5408.Ic status-interval
5409session option.
5410.Pp
5411Commands related to the status line are as follows:
5412.Bl -tag -width Ds
5413.It Xo Ic clear-prompt-history
5414.Op Fl T Ar prompt-type
5415.Xc
5416.D1 (alias: Ic clrphist )
5417Clear status prompt history for prompt type
5418.Ar prompt-type .
5419If
5420.Fl T
5421is omitted, then clear history for all types.
5422See
5423.Ic command-prompt
5424for possible values for
5425.Ar prompt-type .
5426.It Xo Ic command-prompt
5427.Op Fl 1bFikN
5428.Op Fl I Ar inputs
5429.Op Fl p Ar prompts
5430.Op Fl t Ar target-client
5431.Op Fl T Ar prompt-type
5432.Op Ar template
5433.Xc
5434Open the command prompt in a client.
5435This may be used from inside
5436.Nm
5437to execute commands interactively.
5438.Pp
5439If
5440.Ar template
5441is specified, it is used as the command.
5442With
5443.Fl F ,
5444.Ar template
5445is expanded as a format.
5446.Pp
5447If present,
5448.Fl I
5449is a comma-separated list of the initial text for each prompt.
5450If
5451.Fl p
5452is given,
5453.Ar prompts
5454is a comma-separated list of prompts which are displayed in order; otherwise
5455a single prompt is displayed, constructed from
5456.Ar template
5457if it is present, or
5458.Ql \&:
5459if not.
5460.Pp
5461Before the command is executed, the first occurrence of the string
5462.Ql %%
5463and all occurrences of
5464.Ql %1
5465are replaced by the response to the first prompt, all
5466.Ql %2
5467are replaced with the response to the second prompt, and so on for further
5468prompts.
5469Up to nine prompt responses may be replaced
5470.Po
5471.Ql %1
5472to
5473.Ql %9
5474.Pc .
5475.Ql %%%
5476is like
5477.Ql %%
5478but any quotation marks are escaped.
5479.Pp
5480.Fl 1
5481makes the prompt only accept one key press, in this case the resulting input
5482is a single character.
5483.Fl k
5484is like
5485.Fl 1
5486but the key press is translated to a key name.
5487.Fl N
5488makes the prompt only accept numeric key presses.
5489.Fl i
5490executes the command every time the prompt input changes instead of when the
5491user exits the command prompt.
5492.Pp
5493.Fl T
5494tells
5495.Nm
5496the prompt type.
5497This affects what completions are offered when
5498.Em Tab
5499is pressed.
5500Available types are:
5501.Ql command ,
5502.Ql search ,
5503.Ql target
5504and
5505.Ql window-target .
5506.Pp
5507The following keys have a special meaning in the command prompt, depending
5508on the value of the
5509.Ic status-keys
5510option:
5511.Bl -column "FunctionXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXX" "emacsX" -offset indent
5512.It Sy "Function" Ta Sy "vi" Ta Sy "emacs"
5513.It Li "Cancel command prompt" Ta "q" Ta "Escape"
5514.It Li "Delete from cursor to start of word" Ta "" Ta "C-w"
5515.It Li "Delete entire command" Ta "d" Ta "C-u"
5516.It Li "Delete from cursor to end" Ta "D" Ta "C-k"
5517.It Li "Execute command" Ta "Enter" Ta "Enter"
5518.It Li "Get next command from history" Ta "" Ta "Down"
5519.It Li "Get previous command from history" Ta "" Ta "Up"
5520.It Li "Insert top paste buffer" Ta "p" Ta "C-y"
5521.It Li "Look for completions" Ta "Tab" Ta "Tab"
5522.It Li "Move cursor left" Ta "h" Ta "Left"
5523.It Li "Move cursor right" Ta "l" Ta "Right"
5524.It Li "Move cursor to end" Ta "$" Ta "C-e"
5525.It Li "Move cursor to next word" Ta "w" Ta "M-f"
5526.It Li "Move cursor to previous word" Ta "b" Ta "M-b"
5527.It Li "Move cursor to start" Ta "0" Ta "C-a"
5528.It Li "Transpose characters" Ta "" Ta "C-t"
5529.El
5530.Pp
5531With
5532.Fl b ,
5533the prompt is shown in the background and the invoking client does not exit
5534until it is dismissed.
5535.It Xo Ic confirm-before
5536.Op Fl b
5537.Op Fl p Ar prompt
5538.Op Fl t Ar target-client
5539.Ar command
5540.Xc
5541.D1 (alias: Ic confirm )
5542Ask for confirmation before executing
5543.Ar command .
5544If
5545.Fl p
5546is given,
5547.Ar prompt
5548is the prompt to display; otherwise a prompt is constructed from
5549.Ar command .
5550It may contain the special character sequences supported by the
5551.Ic status-left
5552option.
5553With
5554.Fl b ,
5555the prompt is shown in the background and the invoking client does not exit
5556until it is dismissed.
5557.It Xo Ic display-menu
5558.Op Fl O
5559.Op Fl c Ar target-client
5560.Op Fl t Ar target-pane
5561.Op Fl T Ar title
5562.Op Fl x Ar position
5563.Op Fl y Ar position
5564.Ar name
5565.Ar key
5566.Ar command
5567.Ar ...
5568.Xc
5569.D1 (alias: Ic menu )
5570Display a menu on
5571.Ar target-client .
5572.Ar target-pane
5573gives the target for any commands run from the menu.
5574.Pp
5575A menu is passed as a series of arguments: first the menu item name,
5576second the key shortcut (or empty for none) and third the command
5577to run when the menu item is chosen.
5578The name and command are formats, see the
5579.Sx FORMATS
5580and
5581.Sx STYLES
5582sections.
5583If the name begins with a hyphen (-), then the item is disabled (shown dim) and
5584may not be chosen.
5585The name may be empty for a separator line, in which case both the key and
5586command should be omitted.
5587.Pp
5588.Fl T
5589is a format for the menu title (see
5590.Sx FORMATS ) .
5591.Pp
5592.Fl x
5593and
5594.Fl y
5595give the position of the menu.
5596Both may be a row or column number, or one of the following special values:
5597.Bl -column "XXXXX" "XXXX" -offset indent
5598.It Sy "Value" Ta Sy "Flag" Ta Sy "Meaning"
5599.It Li "C" Ta "Both" Ta "The centre of the terminal"
5600.It Li "R" Ta Fl x Ta "The right side of the terminal"
5601.It Li "P" Ta "Both" Ta "The bottom left of the pane"
5602.It Li "M" Ta "Both" Ta "The mouse position"
5603.It Li "W" Ta "Both" Ta "The window position on the status line"
5604.It Li "S" Ta Fl y Ta "The line above or below the status line"
5605.El
5606.Pp
5607Or a format, which is expanded including the following additional variables:
5608.Bl -column "XXXXXXXXXXXXXXXXXXXXXXXXXX" -offset indent
5609.It Sy "Variable name" Ta Sy "Replaced with"
5610.It Li "popup_centre_x" Ta "Centered in the client"
5611.It Li "popup_centre_y" Ta "Centered in the client"
5612.It Li "popup_height" Ta "Height of menu or popup"
5613.It Li "popup_mouse_bottom" Ta "Bottom of at the mouse"
5614.It Li "popup_mouse_centre_x" Ta "Horizontal centre at the mouse"
5615.It Li "popup_mouse_centre_y" Ta "Vertical centre at the mouse"
5616.It Li "popup_mouse_top" Ta "Top at the mouse"
5617.It Li "popup_mouse_x" Ta "Mouse X position"
5618.It Li "popup_mouse_y" Ta "Mouse Y position"
5619.It Li "popup_pane_bottom" Ta "Bottom of the pane"
5620.It Li "popup_pane_left" Ta "Left of the pane"
5621.It Li "popup_pane_right" Ta "Right of the pane"
5622.It Li "popup_pane_top" Ta "Top of the pane"
5623.It Li "popup_status_line_y" Ta "Above or below the status line"
5624.It Li "popup_width" Ta "Width of menu or popup"
5625.It Li "popup_window_status_line_x" Ta "At the window position in status line"
5626.It Li "popup_window_status_line_y" Ta "At the status line showing the window"
5627.El
5628.Pp
5629Each menu consists of items followed by a key shortcut shown in brackets.
5630If the menu is too large to fit on the terminal, it is not displayed.
5631Pressing the key shortcut chooses the corresponding item.
5632If the mouse is enabled and the menu is opened from a mouse key binding,
5633releasing the mouse button with an item selected chooses that item and
5634releasing the mouse button without an item selected closes the menu.
5635.Fl O
5636changes this behaviour so that the menu does not close when the mouse button is
5637released without an item selected the menu is not closed and a mouse button
5638must be clicked to choose an item.
5639.Pp
5640The following keys are also available:
5641.Bl -column "Key" "Function" -offset indent
5642.It Sy "Key" Ta Sy "Function"
5643.It Li "Enter" Ta "Choose selected item"
5644.It Li "Up" Ta "Select previous item"
5645.It Li "Down" Ta "Select next item"
5646.It Li "q" Ta "Exit menu"
5647.El
5648.It Xo Ic display-message
5649.Op Fl aINpv
5650.Op Fl c Ar target-client
5651.Op Fl d Ar delay
5652.Op Fl t Ar target-pane
5653.Op Ar message
5654.Xc
5655.D1 (alias: Ic display )
5656Display a message.
5657If
5658.Fl p
5659is given, the output is printed to stdout, otherwise it is displayed in the
5660.Ar target-client
5661status line for up to
5662.Ar delay
5663milliseconds.
5664If
5665.Ar delay
5666is not given, the
5667.Ic message-time
5668option is used; a delay of zero waits for a key press.
5669.Ql N
5670ignores key presses and closes only after the delay expires.
5671The format of
5672.Ar message
5673is described in the
5674.Sx FORMATS
5675section; information is taken from
5676.Ar target-pane
5677if
5678.Fl t
5679is given, otherwise the active pane.
5680.Pp
5681.Fl v
5682prints verbose logging as the format is parsed and
5683.Fl a
5684lists the format variables and their values.
5685.Pp
5686.Fl I
5687forwards any input read from stdin to the empty pane given by
5688.Ar target-pane .
5689.It Xo Ic display-popup
5690.Op Fl BCE
5691.Op Fl c Ar target-client
5692.Op Fl d Ar start-directory
5693.Op Fl h Ar height
5694.Op Fl t Ar target-pane
5695.Op Fl w Ar width
5696.Op Fl x Ar position
5697.Op Fl y Ar position
5698.Op Ar shell-command
5699.Xc
5700.D1 (alias: Ic popup )
5701Display a popup running
5702.Ar shell-command
5703on
5704.Ar target-client .
5705A popup is a rectangular box drawn over the top of any panes.
5706Panes are not updated while a popup is present.
5707.Pp
5708.Fl E
5709closes the popup automatically when
5710.Ar shell-command
5711exits.
5712Two
5713.Fl E
5714closes the popup only if
5715.Ar shell-command
5716exited with success.
5717.Pp
5718.Fl x
5719and
5720.Fl y
5721give the position of the popup, they have the same meaning as for the
5722.Ic display-menu
5723command.
5724.Fl w
5725and
5726.Fl h
5727give the width and height - both may be a percentage (followed by
5728.Ql % ) .
5729If omitted, half of the terminal size is used.
5730.Fl B
5731does not surround the popup by a border.
5732.Pp
5733The
5734.Fl C
5735flag closes any popup on the client.
5736.It Xo Ic show-prompt-history
5737.Op Fl T Ar prompt-type
5738.Xc
5739.D1 (alias: Ic showphist )
5740Display status prompt history for prompt type
5741.Ar prompt-type .
5742If
5743.Fl T
5744is omitted, then show history for all types.
5745See
5746.Ic command-prompt
5747for possible values for
5748.Ar prompt-type .
5749.El
5750.Sh BUFFERS
5751.Nm
5752maintains a set of named
5753.Em paste buffers .
5754Each buffer may be either explicitly or automatically named.
5755Explicitly named buffers are named when created with the
5756.Ic set-buffer
5757or
5758.Ic load-buffer
5759commands, or by renaming an automatically named buffer with
5760.Ic set-buffer
5761.Fl n .
5762Automatically named buffers are given a name such as
5763.Ql buffer0001 ,
5764.Ql buffer0002
5765and so on.
5766When the
5767.Ic buffer-limit
5768option is reached, the oldest automatically named buffer is deleted.
5769Explicitly named buffers are not subject to
5770.Ic buffer-limit
5771and may be deleted with the
5772.Ic delete-buffer
5773command.
5774.Pp
5775Buffers may be added using
5776.Ic copy-mode
5777or the
5778.Ic set-buffer
5779and
5780.Ic load-buffer
5781commands, and pasted into a window using the
5782.Ic paste-buffer
5783command.
5784If a buffer command is used and no buffer is specified, the most
5785recently added automatically named buffer is assumed.
5786.Pp
5787A configurable history buffer is also maintained for each window.
5788By default, up to 2000 lines are kept; this can be altered with the
5789.Ic history-limit
5790option (see the
5791.Ic set-option
5792command above).
5793.Pp
5794The buffer commands are as follows:
5795.Bl -tag -width Ds
5796.It Xo
5797.Ic choose-buffer
5798.Op Fl NZr
5799.Op Fl F Ar format
5800.Op Fl f Ar filter
5801.Op Fl K Ar key-format
5802.Op Fl O Ar sort-order
5803.Op Fl t Ar target-pane
5804.Op Ar template
5805.Xc
5806Put a pane into buffer mode, where a buffer may be chosen interactively from
5807a list.
5808Each buffer is shown on one line.
5809A shortcut key is shown on the left in brackets allowing for immediate choice,
5810or the list may be navigated and an item chosen or otherwise manipulated using
5811the keys below.
5812.Fl Z
5813zooms the pane.
5814The following keys may be used in buffer mode:
5815.Bl -column "Key" "Function" -offset indent
5816.It Sy "Key" Ta Sy "Function"
5817.It Li "Enter" Ta "Paste selected buffer"
5818.It Li "Up" Ta "Select previous buffer"
5819.It Li "Down" Ta "Select next buffer"
5820.It Li "C-s" Ta "Search by name or content"
5821.It Li "n" Ta "Repeat last search"
5822.It Li "t" Ta "Toggle if buffer is tagged"
5823.It Li "T" Ta "Tag no buffers"
5824.It Li "C-t" Ta "Tag all buffers"
5825.It Li "p" Ta "Paste selected buffer"
5826.It Li "P" Ta "Paste tagged buffers"
5827.It Li "d" Ta "Delete selected buffer"
5828.It Li "D" Ta "Delete tagged buffers"
5829.It Li "e" Ta "Open the buffer in an editor"
5830.It Li "f" Ta "Enter a format to filter items"
5831.It Li "O" Ta "Change sort field"
5832.It Li "r" Ta "Reverse sort order"
5833.It Li "v" Ta "Toggle preview"
5834.It Li "q" Ta "Exit mode"
5835.El
5836.Pp
5837After a buffer is chosen,
5838.Ql %%
5839is replaced by the buffer name in
5840.Ar template
5841and the result executed as a command.
5842If
5843.Ar template
5844is not given, "paste-buffer -b '%%'" is used.
5845.Pp
5846.Fl O
5847specifies the initial sort field: one of
5848.Ql time ,
5849.Ql name
5850or
5851.Ql size .
5852.Fl r
5853reverses the sort order.
5854.Fl f
5855specifies an initial filter: the filter is a format - if it evaluates to zero,
5856the item in the list is not shown, otherwise it is shown.
5857If a filter would lead to an empty list, it is ignored.
5858.Fl F
5859specifies the format for each item in the list and
5860.Fl K
5861a format for each shortcut key; both are evaluated once for each line.
5862.Fl N
5863starts without the preview.
5864This command works only if at least one client is attached.
5865.It Ic clear-history Op Fl t Ar target-pane
5866.D1 (alias: Ic clearhist )
5867Remove and free the history for the specified pane.
5868.It Ic delete-buffer Op Fl b Ar buffer-name
5869.D1 (alias: Ic deleteb )
5870Delete the buffer named
5871.Ar buffer-name ,
5872or the most recently added automatically named buffer if not specified.
5873.It Xo Ic list-buffers
5874.Op Fl F Ar format
5875.Op Fl f Ar filter
5876.Xc
5877.D1 (alias: Ic lsb )
5878List the global buffers.
5879.Fl F
5880specifies the format of each line and
5881.Fl f
5882a filter.
5883Only buffers for which the filter is true are shown.
5884See the
5885.Sx FORMATS
5886section.
5887.It Xo Ic load-buffer
5888.Op Fl w
5889.Op Fl b Ar buffer-name
5890.Op Fl t Ar target-client
5891.Ar path
5892.Xc
5893.D1 (alias: Ic loadb )
5894Load the contents of the specified paste buffer from
5895.Ar path .
5896If
5897.Fl w
5898is given, the buffer is also sent to the clipboard for
5899.Ar target-client
5900using the
5901.Xr xterm 1
5902escape sequence, if possible.
5903.It Xo Ic paste-buffer
5904.Op Fl dpr
5905.Op Fl b Ar buffer-name
5906.Op Fl s Ar separator
5907.Op Fl t Ar target-pane
5908.Xc
5909.D1 (alias: Ic pasteb )
5910Insert the contents of a paste buffer into the specified pane.
5911If not specified, paste into the current one.
5912With
5913.Fl d ,
5914also delete the paste buffer.
5915When output, any linefeed (LF) characters in the paste buffer are replaced with
5916a separator, by default carriage return (CR).
5917A custom separator may be specified using the
5918.Fl s
5919flag.
5920The
5921.Fl r
5922flag means to do no replacement (equivalent to a separator of LF).
5923If
5924.Fl p
5925is specified, paste bracket control codes are inserted around the
5926buffer if the application has requested bracketed paste mode.
5927.It Xo Ic save-buffer
5928.Op Fl a
5929.Op Fl b Ar buffer-name
5930.Ar path
5931.Xc
5932.D1 (alias: Ic saveb )
5933Save the contents of the specified paste buffer to
5934.Ar path .
5935The
5936.Fl a
5937option appends to rather than overwriting the file.
5938.It Xo Ic set-buffer
5939.Op Fl aw
5940.Op Fl b Ar buffer-name
5941.Op Fl t Ar target-client
5942.Op Fl n Ar new-buffer-name
5943.Ar data
5944.Xc
5945.D1 (alias: Ic setb )
5946Set the contents of the specified buffer to
5947.Ar data .
5948If
5949.Fl w
5950is given, the buffer is also sent to the clipboard for
5951.Ar target-client
5952using the
5953.Xr xterm 1
5954escape sequence, if possible.
5955The
5956.Fl a
5957option appends to rather than overwriting the buffer.
5958The
5959.Fl n
5960option renames the buffer to
5961.Ar new-buffer-name .
5962.It Xo Ic show-buffer
5963.Op Fl b Ar buffer-name
5964.Xc
5965.D1 (alias: Ic showb )
5966Display the contents of the specified buffer.
5967.El
5968.Sh MISCELLANEOUS
5969Miscellaneous commands are as follows:
5970.Bl -tag -width Ds
5971.It Ic clock-mode Op Fl t Ar target-pane
5972Display a large clock.
5973.It Xo Ic if-shell
5974.Op Fl bF
5975.Op Fl t Ar target-pane
5976.Ar shell-command command
5977.Op Ar command
5978.Xc
5979.D1 (alias: Ic if )
5980Execute the first
5981.Ar command
5982if
5983.Ar shell-command
5984returns success or the second
5985.Ar command
5986otherwise.
5987Before being executed,
5988.Ar shell-command
5989is expanded using the rules specified in the
5990.Sx FORMATS
5991section, including those relevant to
5992.Ar target-pane .
5993With
5994.Fl b ,
5995.Ar shell-command
5996is run in the background.
5997.Pp
5998If
5999.Fl F
6000is given,
6001.Ar shell-command
6002is not executed but considered success if neither empty nor zero (after formats
6003are expanded).
6004.It Ic lock-server
6005.D1 (alias: Ic lock )
6006Lock each client individually by running the command specified by the
6007.Ic lock-command
6008option.
6009.It Xo Ic run-shell
6010.Op Fl bC
6011.Op Fl d Ar delay
6012.Op Fl t Ar target-pane
6013.Op Ar shell-command
6014.Xc
6015.D1 (alias: Ic run )
6016Execute
6017.Ar shell-command
6018or (with
6019.Fl C )
6020a
6021.Nm
6022command in the background without creating a window.
6023Before being executed,
6024.Ar shell-command
6025is expanded using the rules specified in the
6026.Sx FORMATS
6027section.
6028With
6029.Fl b ,
6030the command is run in the background.
6031.Fl d
6032waits for
6033.Ar delay
6034seconds before starting the command.
6035If
6036.Fl C
6037is not given, any output to stdout is displayed in view mode (in the pane
6038specified by
6039.Fl t
6040or the current pane if omitted) after the command finishes.
6041If the command fails, the exit status is also displayed.
6042.It Xo Ic wait-for
6043.Op Fl L | S | U
6044.Ar channel
6045.Xc
6046.D1 (alias: Ic wait )
6047When used without options, prevents the client from exiting until woken using
6048.Ic wait-for
6049.Fl S
6050with the same channel.
6051When
6052.Fl L
6053is used, the channel is locked and any clients that try to lock the same
6054channel are made to wait until the channel is unlocked with
6055.Ic wait-for
6056.Fl U .
6057.El
6058.Sh EXIT MESSAGES
6059When a
6060.Nm
6061client detaches, it prints a message.
6062This may be one of:
6063.Bl -tag -width Ds
6064.It detached (from session ...)
6065The client was detached normally.
6066.It detached and SIGHUP
6067The client was detached and its parent sent the
6068.Dv SIGHUP
6069signal (for example with
6070.Ic detach-client
6071.Fl P ) .
6072.It lost tty
6073The client's
6074.Xr tty 4
6075or
6076.Xr pty 4
6077was unexpectedly destroyed.
6078.It terminated
6079The client was killed with
6080.Dv SIGTERM .
6081.It too far behind
6082The client is in control mode and became unable to keep up with the data from
6083.Nm .
6084.It exited
6085The server exited when it had no sessions.
6086.It server exited
6087The server exited when it received
6088.Dv SIGTERM .
6089.It server exited unexpectedly
6090The server crashed or otherwise exited without telling the client the reason.
6091.El
6092.Sh TERMINFO EXTENSIONS
6093.Nm
6094understands some unofficial extensions to
6095.Xr terminfo 5 .
6096It is not normally necessary to set these manually, instead the
6097.Ic terminal-features
6098option should be used.
6099.Bl -tag -width Ds
6100.It Em \&AX
6101An existing extension that tells
6102.Nm
6103the terminal supports default colours.
6104.It Em \&Bidi
6105Tell
6106.Nm
6107that the terminal supports the VTE bidirectional text extensions.
6108.It Em \&Cs , Cr
6109Set the cursor colour.
6110The first takes a single string argument and is used to set the colour;
6111the second takes no arguments and restores the default cursor colour.
6112If set, a sequence such as this may be used
6113to change the cursor colour from inside
6114.Nm :
6115.Bd -literal -offset indent
6116$ printf '\e033]12;red\e033\e\e'
6117.Ed
6118.It Em \&Cmg, \&Clmg, \&Dsmg , \&Enmg
6119Set, clear, disable or enable DECSLRM margins.
6120These are set automatically if the terminal reports it is
6121.Em VT420
6122compatible.
6123.It Em \&Dsbp , \&Enbp
6124Disable and enable bracketed paste.
6125These are set automatically if the
6126.Em XT
6127capability is present.
6128.It Em \&Dseks , \&Eneks
6129Disable and enable extended keys.
6130.It Em \&Dsfcs , \&Enfcs
6131Disable and enable focus reporting.
6132These are set automatically if the
6133.Em XT
6134capability is present.
6135.It Em \&Rect
6136Tell
6137.Nm
6138that the terminal supports rectangle operations.
6139.It Em \&Smol
6140Enable the overline attribute.
6141.It Em \&Smulx
6142Set a styled underscore.
6143The single parameter is one of: 0 for no underscore, 1 for normal
6144underscore, 2 for double underscore, 3 for curly underscore, 4 for dotted
6145underscore and 5 for dashed underscore.
6146.It Em \&Setulc , \&ol
6147Set the underscore colour or reset to the default.
6148The argument is (red * 65536) + (green * 256) + blue where each is between 0
6149and 255.
6150.It Em \&Ss , Se
6151Set or reset the cursor style.
6152If set, a sequence such as this may be used
6153to change the cursor to an underline:
6154.Bd -literal -offset indent
6155$ printf '\e033[4 q'
6156.Ed
6157.Pp
6158If
6159.Em Se
6160is not set, \&Ss with argument 0 will be used to reset the cursor style instead.
6161.It Em \&Sync
6162Start (parameter is 1) or end (parameter is 2) a synchronized update.
6163.It Em \&Tc
6164Indicate that the terminal supports the
6165.Ql direct colour
6166RGB escape sequence (for example, \ee[38;2;255;255;255m).
6167.Pp
6168If supported, this is used for the initialize colour escape sequence (which
6169may be enabled by adding the
6170.Ql initc
6171and
6172.Ql ccc
6173capabilities to the
6174.Nm
6175.Xr terminfo 5
6176entry).
6177.Pp
6178This is equivalent to the
6179.Em RGB
6180.Xr terminfo 5
6181capability.
6182.It Em \&Ms
6183Store the current buffer in the host terminal's selection (clipboard).
6184See the
6185.Em set-clipboard
6186option above and the
6187.Xr xterm 1
6188man page.
6189.It Em \&XT
6190This is an existing extension capability that tmux uses to mean that the
6191terminal supports the
6192.Xr xterm 1
6193title set sequences and to automatically set some of the capabilities above.
6194.El
6195.Sh CONTROL MODE
6196.Nm
6197offers a textual interface called
6198.Em control mode .
6199This allows applications to communicate with
6200.Nm
6201using a simple text-only protocol.
6202.Pp
6203In control mode, a client sends
6204.Nm
6205commands or command sequences terminated by newlines on standard input.
6206Each command will produce one block of output on standard output.
6207An output block consists of a
6208.Em %begin
6209line followed by the output (which may be empty).
6210The output block ends with a
6211.Em %end
6212or
6213.Em %error .
6214.Em %begin
6215and matching
6216.Em %end
6217or
6218.Em %error
6219have three arguments: an integer time (as seconds from epoch), command number and
6220flags (currently not used).
6221For example:
6222.Bd -literal -offset indent
6223%begin 1363006971 2 1
62240: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active)
6225%end 1363006971 2 1
6226.Ed
6227.Pp
6228The
6229.Ic refresh-client
6230.Fl C
6231command may be used to set the size of a client in control mode.
6232.Pp
6233In control mode,
6234.Nm
6235outputs notifications.
6236A notification will never occur inside an output block.
6237.Pp
6238The following notifications are defined:
6239.Bl -tag -width Ds
6240.It Ic %client-detached Ar client
6241The client has detached.
6242.It Ic %client-session-changed Ar client session-id name
6243The client is now attached to the session with ID
6244.Ar session-id ,
6245which is named
6246.Ar name .
6247.It Ic %continue Ar pane-id
6248The pane has been continued after being paused (if the
6249.Ar pause-after
6250flag is set, see
6251.Ic refresh-client
6252.Fl A ) .
6253.It Ic %exit Op Ar reason
6254The
6255.Nm
6256client is exiting immediately, either because it is not attached to any session
6257or an error occurred.
6258If present,
6259.Ar reason
6260describes why the client exited.
6261.It Ic %extended-output Ar pane-id Ar age Ar ... \&  : Ar value
6262New form of
6263.Ic %output
6264sent when the
6265.Ar pause-after
6266flag is set.
6267.Ar age
6268is the time in milliseconds for which tmux had buffered the output before it was sent.
6269Any subsequent arguments up until a single
6270.Ql \&:
6271are for future use and should be ignored.
6272.It Ic %layout-change Ar window-id Ar window-layout Ar window-visible-layout Ar window-flags
6273The layout of a window with ID
6274.Ar window-id
6275changed.
6276The new layout is
6277.Ar window-layout .
6278The window's visible layout is
6279.Ar window-visible-layout
6280and the window flags are
6281.Ar window-flags .
6282.It Ic %output Ar pane-id Ar value
6283A window pane produced output.
6284.Ar value
6285escapes non-printable characters and backslash as octal \\xxx.
6286.It Ic %pane-mode-changed Ar pane-id
6287The pane with ID
6288.Ar pane-id
6289has changed mode.
6290.It Ic %pause Ar pane-id
6291The pane has been paused (if the
6292.Ar pause-after
6293flag is set).
6294.It Ic %session-changed Ar session-id Ar name
6295The client is now attached to the session with ID
6296.Ar session-id ,
6297which is named
6298.Ar name .
6299.It Ic %session-renamed Ar name
6300The current session was renamed to
6301.Ar name .
6302.It Ic %session-window-changed Ar session-id Ar window-id
6303The session with ID
6304.Ar session-id
6305changed its active window to the window with ID
6306.Ar window-id .
6307.It Ic %sessions-changed
6308A session was created or destroyed.
6309.It Xo Ic %subscription-changed
6310.Ar name
6311.Ar session-id
6312.Ar window-id
6313.Ar window-index
6314.Ar pane-id ... \&  :
6315.Ar value
6316.Xc
6317The value of the format associated with subscription
6318.Ar name
6319has changed to
6320.Ar value .
6321See
6322.Ic refresh-client
6323.Fl B .
6324Any arguments after
6325.Ar pane-id
6326up until a single
6327.Ql \&:
6328are for future use and should be ignored.
6329.It Ic %unlinked-window-add Ar window-id
6330The window with ID
6331.Ar window-id
6332was created but is not linked to the current session.
6333.It Ic %window-add Ar window-id
6334The window with ID
6335.Ar window-id
6336was linked to the current session.
6337.It Ic %window-close Ar window-id
6338The window with ID
6339.Ar window-id
6340closed.
6341.It Ic %window-pane-changed Ar window-id Ar pane-id
6342The active pane in the window with ID
6343.Ar window-id
6344changed to the pane with ID
6345.Ar pane-id .
6346.It Ic %window-renamed Ar window-id Ar name
6347The window with ID
6348.Ar window-id
6349was renamed to
6350.Ar name .
6351.El
6352.Sh ENVIRONMENT
6353When
6354.Nm
6355is started, it inspects the following environment variables:
6356.Bl -tag -width LC_CTYPE
6357.It Ev EDITOR
6358If the command specified in this variable contains the string
6359.Ql vi
6360and
6361.Ev VISUAL
6362is unset, use vi-style key bindings.
6363Overridden by the
6364.Ic mode-keys
6365and
6366.Ic status-keys
6367options.
6368.It Ev HOME
6369The user's login directory.
6370If unset, the
6371.Xr passwd 5
6372database is consulted.
6373.It Ev LC_CTYPE
6374The character encoding
6375.Xr locale 1 .
6376It is used for two separate purposes.
6377For output to the terminal, UTF-8 is used if the
6378.Fl u
6379option is given or if
6380.Ev LC_CTYPE
6381contains
6382.Qq UTF-8
6383or
6384.Qq UTF8 .
6385Otherwise, only ASCII characters are written and non-ASCII characters
6386are replaced with underscores
6387.Pq Ql _ .
6388For input,
6389.Nm
6390always runs with a UTF-8 locale.
6391If en_US.UTF-8 is provided by the operating system it is used and
6392.Ev LC_CTYPE
6393is ignored for input.
6394Otherwise,
6395.Ev LC_CTYPE
6396tells
6397.Nm
6398what the UTF-8 locale is called on the current system.
6399If the locale specified by
6400.Ev LC_CTYPE
6401is not available or is not a UTF-8 locale,
6402.Nm
6403exits with an error message.
6404.It Ev LC_TIME
6405The date and time format
6406.Xr locale 1 .
6407It is used for locale-dependent
6408.Xr strftime 3
6409format specifiers.
6410.It Ev PWD
6411The current working directory to be set in the global environment.
6412This may be useful if it contains symbolic links.
6413If the value of the variable does not match the current working
6414directory, the variable is ignored and the result of
6415.Xr getcwd 3
6416is used instead.
6417.It Ev SHELL
6418The absolute path to the default shell for new windows.
6419See the
6420.Ic default-shell
6421option for details.
6422.It Ev TMUX_TMPDIR
6423The parent directory of the directory containing the server sockets.
6424See the
6425.Fl L
6426option for details.
6427.It Ev VISUAL
6428If the command specified in this variable contains the string
6429.Ql vi ,
6430use vi-style key bindings.
6431Overridden by the
6432.Ic mode-keys
6433and
6434.Ic status-keys
6435options.
6436.El
6437.Sh FILES
6438.Bl -tag -width "/etc/tmux.confXXX" -compact
6439.It Pa ~/.tmux.conf
6440Default
6441.Nm
6442configuration file.
6443.It Pa /etc/tmux.conf
6444System-wide configuration file.
6445.El
6446.Sh EXAMPLES
6447To create a new
6448.Nm
6449session running
6450.Xr vi 1 :
6451.Pp
6452.Dl $ tmux new-session vi
6453.Pp
6454Most commands have a shorter form, known as an alias.
6455For new-session, this is
6456.Ic new :
6457.Pp
6458.Dl $ tmux new vi
6459.Pp
6460Alternatively, the shortest unambiguous form of a command is accepted.
6461If there are several options, they are listed:
6462.Bd -literal -offset indent
6463$ tmux n
6464ambiguous command: n, could be: new-session, new-window, next-window
6465.Ed
6466.Pp
6467Within an active session, a new window may be created by typing
6468.Ql C-b c
6469(Ctrl
6470followed by the
6471.Ql b
6472key
6473followed by the
6474.Ql c
6475key).
6476.Pp
6477Windows may be navigated with:
6478.Ql C-b 0
6479(to select window 0),
6480.Ql C-b 1
6481(to select window 1), and so on;
6482.Ql C-b n
6483to select the next window; and
6484.Ql C-b p
6485to select the previous window.
6486.Pp
6487A session may be detached using
6488.Ql C-b d
6489(or by an external event such as
6490.Xr ssh 1
6491disconnection) and reattached with:
6492.Pp
6493.Dl $ tmux attach-session
6494.Pp
6495Typing
6496.Ql C-b \&?
6497lists the current key bindings in the current window; up and down may be used
6498to navigate the list or
6499.Ql q
6500to exit from it.
6501.Pp
6502Commands to be run when the
6503.Nm
6504server is started may be placed in the
6505.Pa ~/.tmux.conf
6506configuration file.
6507Common examples include:
6508.Pp
6509Changing the default prefix key:
6510.Bd -literal -offset indent
6511set-option -g prefix C-a
6512unbind-key C-b
6513bind-key C-a send-prefix
6514.Ed
6515.Pp
6516Turning the status line off, or changing its colour:
6517.Bd -literal -offset indent
6518set-option -g status off
6519set-option -g status-style bg=blue
6520.Ed
6521.Pp
6522Setting other options, such as the default command,
6523or locking after 30 minutes of inactivity:
6524.Bd -literal -offset indent
6525set-option -g default-command "exec /bin/ksh"
6526set-option -g lock-after-time 1800
6527.Ed
6528.Pp
6529Creating new key bindings:
6530.Bd -literal -offset indent
6531bind-key b set-option status
6532bind-key / command-prompt "split-window 'exec man %%'"
6533bind-key S command-prompt "new-window -n %1 'ssh %1'"
6534.Ed
6535.Sh SEE ALSO
6536.Xr pty 4
6537.Sh AUTHORS
6538.An Nicholas Marriott Aq Mt nicholas.marriott@gmail.com
6539