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