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