Replace ## by # in format.
[tmux-openbsd.git] / tmux.1
bloba2404b4fa0853982c93665e7a2d7fa732ed3ed35
1 .\" $OpenBSD$
2 .\"
3 .\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
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$
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 28lCquv
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 Ar command Op Ar flags
32 .Ek
33 .Sh DESCRIPTION
34 .Nm
35 is a terminal multiplexer:
36 it enables a number of terminals to be created, accessed, and
37 controlled from a single screen.
38 .Nm
39 may be detached from a screen
40 and continue running in the background,
41 then later reattached.
42 .Pp
43 When
44 .Nm
45 is started it creates a new
46 .Em session
47 with a single
48 .Em window
49 and displays it on screen.
50 A status line at the bottom of the screen
51 shows information on the current session
52 and is used to enter interactive commands.
53 .Pp
54 A session is a single collection of
55 .Em pseudo terminals
56 under the management of
57 .Nm .
58 Each session has one or more
59 windows linked to it.
60 A window occupies the entire screen
61 and may be split into rectangular panes,
62 each of which is a separate pseudo terminal
63 (the
64 .Xr pty 4
65 manual page documents the technical details of pseudo terminals).
66 Any number of
67 .Nm
68 instances may connect to the same session,
69 and any number of windows may be present in the same session.
70 Once all sessions are killed,
71 .Nm
72 exits.
73 .Pp
74 Each session is persistent and will survive accidental disconnection
75 (such as
76 .Xr ssh 1
77 connection timeout) or intentional detaching (with the
78 .Ql C-b d
79 key strokes).
80 .Nm
81 may be reattached using:
82 .Pp
83 .Dl $ tmux attach
84 .Pp
86 .Nm ,
87 a session is displayed on screen by a
88 .Em client
89 and all sessions are managed by a single
90 .Em server .
91 The server and each client are separate processes which communicate through a
92 socket in
93 .Pa /tmp .
94 .Pp
95 The options are as follows:
96 .Bl -tag -width "XXXXXXXXXXXX"
97 .It Fl 2
98 Force
99 .Nm
100 to assume the terminal supports 256 colours.
101 .It Fl C
102 Start in control mode (see the
103 .Sx CONTROL MODE
104 section).
105 Given twice
106 .Xo ( Fl CC ) Xc
107 disables echo.
108 .It Fl c Ar shell-command
109 Execute
110 .Ar shell-command
111 using the default shell.
112 If necessary, the
114 server will be started to retrieve the
115 .Ic default-shell
116 option.
117 This option is for compatibility with
118 .Xr sh 1
119 when
121 is used as a login shell.
122 .It Fl f Ar file
123 Specify an alternative configuration file.
124 By default,
126 loads the system configuration file from
127 .Pa /etc/tmux.conf ,
128 if present, then looks for a user configuration file at
129 .Pa ~/.tmux.conf .
131 The configuration file is a set of
133 commands which are executed in sequence when the server is first started.
135 loads configuration files once when the server process has started.
137 .Ic source-file
138 command may be used to load a file later.
141 shows any error messages from commands in configuration files in the first
142 session created, and continues to process the rest of the configuration file.
143 .It Fl L Ar socket-name
145 stores the server socket in a directory under
146 .Ev TMUX_TMPDIR ,
147 .Ev TMPDIR
148 if it is unset, or
149 .Pa /tmp
150 if both are unset.
151 The default socket is named
152 .Em default .
153 This option allows a different socket name to be specified, allowing several
154 independent
156 servers to be run.
157 Unlike
158 .Fl S
159 a full path is not necessary: the sockets are all created in the same
160 directory.
162 If the socket is accidentally removed, the
163 .Dv SIGUSR1
164 signal may be sent to the
166 server process to recreate it.
167 .It Fl l
168 Behave as a login shell.
169 This flag currently has no effect and is for compatibility with other shells
170 when using tmux as a login shell.
171 .It Fl q
172 Set the
173 .Ic quiet
174 server option to prevent the server sending various informational messages.
175 .It Fl S Ar socket-path
176 Specify a full alternative path to the server socket.
178 .Fl S
179 is specified, the default socket directory is not used and any
180 .Fl L
181 flag is ignored.
182 .It Fl u
184 attempts to guess if the terminal is likely to support UTF-8 by checking the
185 first of the
186 .Ev LC_ALL ,
187 .Ev LC_CTYPE
189 .Ev LANG
190 environment variables to be set for the string "UTF-8".
191 This is not always correct: the
192 .Fl u
193 flag explicitly informs
195 that UTF-8 is supported.
197 If the server is started from a client passed
198 .Fl u
199 or where UTF-8 is detected, the
200 .Ic utf8
202 .Ic status-utf8
203 options are enabled in the global window and session options respectively.
204 .It Fl v
205 Request verbose logging.
206 This option may be specified multiple times for increasing verbosity.
207 Log messages will be saved into
208 .Pa tmux-client-PID.log
210 .Pa tmux-server-PID.log
211 files in the current directory, where
212 .Em PID
213 is the PID of the server or client process.
214 .It Ar command Op Ar flags
215 This specifies one of a set of commands used to control
216 .Nm ,
217 as described in the following sections.
218 If no commands are specified, the
219 .Ic new-session
220 command is assumed.
222 .Sh KEY BINDINGS
224 may be controlled from an attached client by using a key combination of a
225 prefix key,
226 .Ql C-b
227 (Ctrl-b) by default, followed by a command key.
229 The default command key bindings are:
231 .Bl -tag -width "XXXXXXXXXX" -offset indent -compact
232 .It C-b
233 Send the prefix key (C-b) through to the application.
234 .It C-o
235 Rotate the panes in the current window forwards.
236 .It C-z
237 Suspend the
239 client.
240 .It !
241 Break the current pane out of the window.
242 .It \&"
243 Split the current pane into two, top and bottom.
244 .It #
245 List all paste buffers.
246 .It $
247 Rename the current session.
248 .It %
249 Split the current pane into two, left and right.
250 .It &
251 Kill the current window.
252 .It '
253 Prompt for a window index to select.
254 .It ,
255 Rename the current window.
256 .It -
257 Delete the most recently copied buffer of text.
258 .It .
259 Prompt for an index to move the current window.
260 .It 0 to 9
261 Select windows 0 to 9.
262 .It :
263 Enter the
265 command prompt.
266 .It ;
267 Move to the previously active pane.
268 .It =
269 Choose which buffer to paste interactively from a list.
270 .It \&?
271 List all key bindings.
272 .It D
273 Choose a client to detach.
274 .It \&[
275 Enter copy mode to copy text or view the history.
276 .It \&]
277 Paste the most recently copied buffer of text.
278 .It c
279 Create a new window.
280 .It d
281 Detach the current client.
282 .It f
283 Prompt to search for text in open windows.
284 .It i
285 Display some information about the current window.
286 .It l
287 Move to the previously selected window.
288 .It n
289 Change to the next window.
290 .It o
291 Select the next pane in the current window.
292 .It p
293 Change to the previous window.
294 .It q
295 Briefly display pane indexes.
296 .It r
297 Force redraw of the attached client.
298 .It s
299 Select a new session for the attached client interactively.
300 .It L
301 Switch the attached client back to the last session.
302 .It t
303 Show the time.
304 .It w
305 Choose the current window interactively.
306 .It x
307 Kill the current pane.
308 .It {
309 Swap the current pane with the previous pane.
310 .It }
311 Swap the current pane with the next pane.
312 .It ~
313 Show previous messages from
314 .Nm ,
315 if any.
316 .It Page Up
317 Enter copy mode and scroll one page up.
318 .It Up, Down
319 .It Left, Right
320 Change to the pane above, below, to the left, or to the right of the current
321 pane.
322 .It M-1 to M-5
323 Arrange panes in one of the five preset layouts: even-horizontal,
324 even-vertical, main-horizontal, main-vertical, or tiled.
325 .It M-n
326 Move to the next window with a bell or activity marker.
327 .It M-o
328 Rotate the panes in the current window backwards.
329 .It M-p
330 Move to the previous window with a bell or activity marker.
331 .It C-Up, C-Down
332 .It C-Left, C-Right
333 Resize the current pane in steps of one cell.
334 .It M-Up, M-Down
335 .It M-Left, M-Right
336 Resize the current pane in steps of five cells.
339 Key bindings may be changed with the
340 .Ic bind-key
342 .Ic unbind-key
343 commands.
344 .Sh COMMANDS
345 This section contains a list of the commands supported by
346 .Nm .
347 Most commands accept the optional
348 .Fl t
349 argument with one of
350 .Ar target-client ,
351 .Ar target-session
352 .Ar target-window ,
354 .Ar target-pane .
355 These specify the client, session, window or pane which a command should affect.
356 .Ar target-client
357 is the name of the
358 .Xr pty 4
359 file to which the client is connected, for example either of
360 .Pa /dev/ttyp1
362 .Pa ttyp1
363 for the client attached to
364 .Pa /dev/ttyp1 .
365 If no client is specified, the current client is chosen, if possible, or an
366 error is reported.
367 Clients may be listed with the
368 .Ic list-clients
369 command.
371 .Ar target-session
372 is the session id prefixed with a $, the name of a session (as listed by the
373 .Ic list-sessions
374 command), or the name of a client with the same syntax as
375 .Ar target-client ,
376 in which case the session attached to the client is used.
377 When looking for the session name,
379 initially searches for an exact match; if none is found, the session names
380 are checked for any for which
381 .Ar target-session
382 is a prefix or for which it matches as an
383 .Xr fnmatch 3
384 pattern.
385 If a single match is found, it is used as the target session; multiple matches
386 produce an error.
387 If a session is omitted, the current session is used if available; if no
388 current session is available, the most recently used is chosen.
390 .Ar target-window
391 specifies a window in the form
392 .Em session Ns \&: Ns Em window .
393 .Em session
394 follows the same rules as for
395 .Ar target-session ,
397 .Em window
398 is looked for in order: as a window index, for example mysession:1;
399 as a window ID, such as @1;
400 as an exact window name, such as mysession:mywindow; then as an
401 .Xr fnmatch 3
402 pattern or the start of a window name, such as mysession:mywin* or
403 mysession:mywin.
404 An empty window name specifies the next unused index if appropriate (for
405 example the
406 .Ic new-window
408 .Ic link-window
409 commands)
410 otherwise the current window in
411 .Em session
412 is chosen.
413 The special character
414 .Ql \&!
415 uses the last (previously current) window,
416 .Ql ^
417 selects the highest numbered window,
418 .Ql $
419 selects the lowest numbered window, and
420 .Ql +
422 .Ql -
423 select the next window or the previous window by number.
424 When the argument does not contain a colon,
426 first attempts to parse it as window; if that fails, an attempt is made to
427 match a session.
429 .Ar target-pane
430 takes a similar form to
431 .Ar target-window
432 but with the optional addition of a period followed by a pane index, for
433 example: mysession:mywindow.1.
434 If the pane index is omitted, the currently active pane in the specified
435 window is used.
436 If neither a colon nor period appears,
438 first attempts to use the argument as a pane index; if that fails, it is looked
439 up as for
440 .Ar target-window .
442 .Ql +
444 .Ql -
445 indicate the next or previous pane index, respectively.
446 One of the strings
447 .Em top ,
448 .Em bottom ,
449 .Em left ,
450 .Em right ,
451 .Em top-left ,
452 .Em top-right ,
453 .Em bottom-left
455 .Em bottom-right
456 may be used instead of a pane index.
458 The special characters
459 .Ql +
461 .Ql -
462 may be followed by an offset, for example:
463 .Bd -literal -offset indent
464 select-window -t:+2
467 When dealing with a session that doesn't contain sequential window indexes,
468 they will be correctly skipped.
471 also gives each pane created in a server an identifier consisting of a
472 .Ql %
473 and a number, starting from zero.
474 A pane's identifier is unique for the life of the
476 server and is passed to the child process of the pane in the
477 .Ev TMUX_PANE
478 environment variable.
479 It may be used alone to target a pane or the window containing it.
481 .Ar shell-command
482 arguments are
483 .Xr sh 1
484 commands.
485 These must be passed as a single item, which typically means quoting them, for
486 example:
487 .Bd -literal -offset indent
488 new-window 'vi /etc/passwd'
491 .Ar command
492 .Op Ar arguments
493 refers to a
495 command, passed with the command and arguments separately, for example:
496 .Bd -literal -offset indent
497 bind-key F1 set-window-option force-width 81
500 Or if using
501 .Xr sh 1 :
502 .Bd -literal -offset indent
503 $ tmux bind-key F1 set-window-option force-width 81
506 Multiple commands may be specified together as part of a
507 .Em command sequence .
508 Each command should be separated by spaces and a semicolon;
509 commands are executed sequentially from left to right and
510 lines ending with a backslash continue on to the next line,
511 except when escaped by another backslash.
512 A literal semicolon may be included by escaping it with a backslash (for
513 example, when specifying a command sequence to
514 .Ic bind-key ) .
516 Example
518 commands include:
519 .Bd -literal -offset indent
520 refresh-client -t/dev/ttyp2
522 rename-session -tfirst newname
524 set-window-option -t:0 monitor-activity on
526 new-window ; split-window -d
528 bind-key R source-file ~/.tmux.conf \e; \e
529         display-message "source-file done"
532 Or from
533 .Xr sh 1 :
534 .Bd -literal -offset indent
535 $ tmux kill-window -t :1
537 $ tmux new-window \e; split-window -d
539 $ tmux new-session -d 'vi /etc/passwd' \e; split-window -d \e; attach
541 .Sh CLIENTS AND SESSIONS
544 server manages clients, sessions, windows and panes.
545 Clients are attached to sessions to interact with them, either
546 when they are created with the
547 .Ic new-session
548 command, or later with the
549 .Ic attach-session
550 command.
551 Each session has one or more windows
552 .Em linked
553 into it.
554 Windows may be linked to multiple sessions and are made up of one or
555 more panes,
556 each of which contains a pseudo terminal.
557 Commands for creating, linking and otherwise manipulating windows
558 are covered
559 in the
560 .Sx WINDOWS AND PANES
561 section.
563 The following commands are available to manage clients and sessions:
564 .Bl -tag -width Ds
565 .It Xo Ic attach-session
566 .Op Fl dr
567 .Op Fl c Ar working-directory
568 .Op Fl t Ar target-session
570 .D1 (alias: Ic attach )
571 If run from outside
572 .Nm ,
573 create a new client in the current terminal and attach it to
574 .Ar target-session .
575 If used from inside, switch the current client.
577 .Fl d
578 is specified, any other clients attached to the session are detached.
579 .Fl r
580 signifies the client is read-only (only keys bound to the
581 .Ic detach-client
583 .Ic switch-client
584 commands have any effect)
586 If no server is started,
587 .Ic attach-session
588 will attempt to start it; this will fail unless sessions are created in the
589 configuration file.
592 .Ar target-session
593 rules for
594 .Ic attach-session
595 are slightly adjusted: if
597 needs to select the most recently used session, it will prefer the most
598 recently used
599 .Em unattached
600 session.
602 .Fl c
603 will set the session working directory (used for new windows) to
604 .Ar working-directory .
605 .It Xo Ic detach-client
606 .Op Fl P
607 .Op Fl a
608 .Op Fl s Ar target-session
609 .Op Fl t Ar target-client
611 .D1 (alias: Ic detach )
612 Detach the current client if bound to a key, the client specified with
613 .Fl t ,
614 or all clients currently attached to the session specified by
615 .Fl s .
617 .Fl a
618 option kills all but the client given with
619 .Fl t .
621 .Fl P
622 is given, send SIGHUP to the parent process of the client, typically causing it
623 to exit.
624 .It Ic has-session Op Fl t Ar target-session
625 .D1 (alias: Ic has )
626 Report an error and exit with 1 if the specified session does not exist.
627 If it does exist, exit with 0.
628 .It Ic kill-server
629 Kill the
631 server and clients and destroy all sessions.
632 .It Xo Ic kill-session
633 .Op Fl a
634 .Op Fl t Ar target-session
636 Destroy the given session, closing any windows linked to it and no other
637 sessions, and detaching all clients attached to it.
639 .Fl a
640 is given, all sessions but the specified one is killed.
641 .It Xo Ic list-clients
642 .Op Fl F Ar format
643 .Op Fl t Ar target-session
645 .D1 (alias: Ic lsc )
646 List all clients attached to the server.
647 For the meaning of the
648 .Fl F
649 flag, see the
650 .Sx FORMATS
651 section.
653 .Ar target-session
654 is specified, list only clients connected to that session.
655 .It Ic list-commands
656 .D1 (alias: Ic lscm )
657 List the syntax of all commands supported by
658 .Nm .
659 .It Ic list-sessions Op Fl F Ar format
660 .D1 (alias: Ic ls )
661 List all sessions managed by the server.
662 For the meaning of the
663 .Fl F
664 flag, see the
665 .Sx FORMATS
666 section.
667 .It Ic lock-client Op Fl t Ar target-client
668 .D1 (alias: Ic lockc )
669 Lock
670 .Ar target-client ,
671 see the
672 .Ic lock-server
673 command.
674 .It Ic lock-session Op Fl t Ar target-session
675 .D1 (alias: Ic locks )
676 Lock all clients attached to
677 .Ar target-session .
678 .It Xo Ic new-session
679 .Op Fl AdDP
680 .Op Fl c Ar start-directory
681 .Op Fl F Ar format
682 .Op Fl n Ar window-name
683 .Op Fl s Ar session-name
684 .Op Fl t Ar target-session
685 .Op Fl x Ar width
686 .Op Fl y Ar height
687 .Op Ar shell-command
689 .D1 (alias: Ic new )
690 Create a new session with name
691 .Ar session-name .
693 The new session is attached to the current terminal unless
694 .Fl d
695 is given.
696 .Ar window-name
698 .Ar shell-command
699 are the name of and shell command to execute in the initial window.
701 .Fl d
702 is used,
703 .Fl x
705 .Fl y
706 specify the size of the initial window (80 by 24 if not given).
708 If run from a terminal, any
709 .Xr termios 4
710 special characters are saved and used for new windows in the new session.
713 .Fl A
714 flag makes
715 .Ic new-session
716 behave like
717 .Ic attach-session
719 .Ar session-name
720 already exists; in the case,
721 .Fl D
722 behaves like
723 .Fl d
725 .Ic attach-session .
728 .Fl t
729 is given, the new session is
730 .Em grouped
731 with
732 .Ar target-session .
733 This means they share the same set of windows - all windows from
734 .Ar target-session
735 are linked to the new session and any subsequent new windows or windows being
736 closed are applied to both sessions.
737 The current and previous window and any session options remain independent and
738 either session may be killed without affecting the other.
739 Giving
740 .Fl n
742 .Ar shell-command
743 are invalid if
744 .Fl t
745 is used.
748 .Fl P
749 option prints information about the new session after it has been created.
750 By default, it uses the format
751 .Ql #{session_name}:
752 but a different format may be specified with
753 .Fl F .
754 .It Xo Ic refresh-client
755 .Op Fl S
756 .Op Fl t Ar target-client
758 .D1 (alias: Ic refresh )
759 Refresh the current client if bound to a key, or a single client if one is given
760 with
761 .Fl t .
763 .Fl S
764 is specified, only update the client's status bar.
765 .It Xo Ic rename-session
766 .Op Fl t Ar target-session
767 .Ar new-name
769 .D1 (alias: Ic rename )
770 Rename the session to
771 .Ar new-name .
772 .It Xo Ic show-messages
773 .Op Fl t Ar target-client
775 .D1 (alias: Ic showmsgs )
776 Any messages displayed on the status line are saved in a per-client message
777 log, up to a maximum of the limit set by the
778 .Ar message-limit
779 session option for the session attached to that client.
780 This command displays the log for
781 .Ar target-client .
782 .It Ic source-file Ar path
783 .D1 (alias: Ic source )
784 Execute commands from
785 .Ar path .
786 .It Ic start-server
787 .D1 (alias: Ic start )
788 Start the
790 server, if not already running, without creating any sessions.
791 .It Xo Ic suspend-client
792 .Op Fl t Ar target-client
794 .D1 (alias: Ic suspendc )
795 Suspend a client by sending
796 .Dv SIGTSTP
797 (tty stop).
798 .It Xo Ic switch-client
799 .Op Fl lnpr
800 .Op Fl c Ar target-client
801 .Op Fl t Ar target-session
803 .D1 (alias: Ic switchc )
804 Switch the current session for client
805 .Ar target-client
807 .Ar target-session .
809 .Fl l ,
810 .Fl n
812 .Fl p
813 is used, the client is moved to the last, next or previous session
814 respectively.
815 .Fl r
816 toggles whether a client is read-only (see the
817 .Ic attach-session
818 command).
820 .Sh WINDOWS AND PANES
823 window may be in one of several modes.
824 The default permits direct access to the terminal attached to the window.
825 The other is copy mode, which permits a section of a window or its
826 history to be copied to a
827 .Em paste buffer
828 for later insertion into another window.
829 This mode is entered with the
830 .Ic copy-mode
831 command, bound to
832 .Ql \&[
833 by default.
834 It is also entered when a command that produces output, such as
835 .Ic list-keys ,
836 is executed from a key binding.
838 The keys available depend on whether emacs or vi mode is selected
839 (see the
840 .Ic mode-keys
841 option).
842 The following keys are supported as appropriate for the mode:
843 .Bl -column "FunctionXXXXXXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent
844 .It Sy "Function" Ta Sy "vi" Ta Sy "emacs"
845 .It Li "Back to indentation" Ta "^" Ta "M-m"
846 .It Li "Bottom of history" Ta "G" Ta "M-<"
847 .It Li "Clear selection" Ta "Escape" Ta "C-g"
848 .It Li "Copy selection" Ta "Enter" Ta "M-w"
849 .It Li "Cursor down" Ta "j" Ta "Down"
850 .It Li "Cursor left" Ta "h" Ta "Left"
851 .It Li "Cursor right" Ta "l" Ta "Right"
852 .It Li "Cursor to bottom line" Ta "L" Ta ""
853 .It Li "Cursor to middle line" Ta "M" Ta "M-r"
854 .It Li "Cursor to top line" Ta "H" Ta "M-R"
855 .It Li "Cursor up" Ta "k" Ta "Up"
856 .It Li "Delete entire line" Ta "d" Ta "C-u"
857 .It Li "Delete/Copy to end of line" Ta "D" Ta "C-k"
858 .It Li "End of line" Ta "$" Ta "C-e"
859 .It Li "Go to line" Ta ":" Ta "g"
860 .It Li "Half page down" Ta "C-d" Ta "M-Down"
861 .It Li "Half page up" Ta "C-u" Ta "M-Up"
862 .It Li "Jump forward" Ta "f" Ta "f"
863 .It Li "Jump to forward" Ta "t" Ta ""
864 .It Li "Jump backward" Ta "F" Ta "F"
865 .It Li "Jump to backward" Ta "T" Ta ""
866 .It Li "Jump again" Ta ";" Ta ";"
867 .It Li "Jump again in reverse" Ta "," Ta ","
868 .It Li "Next page" Ta "C-f" Ta "Page down"
869 .It Li "Next space" Ta "W" Ta ""
870 .It Li "Next space, end of word" Ta "E" Ta ""
871 .It Li "Next word" Ta "w" Ta ""
872 .It Li "Next word end" Ta "e" Ta "M-f"
873 .It Li "Other end of selection" Ta "o" Ta ""
874 .It Li "Paste buffer" Ta "p" Ta "C-y"
875 .It Li "Previous page" Ta "C-b" Ta "Page up"
876 .It Li "Previous word" Ta "b" Ta "M-b"
877 .It Li "Previous space" Ta "B" Ta ""
878 .It Li "Quit mode" Ta "q" Ta "Escape"
879 .It Li "Rectangle toggle" Ta "v" Ta "R"
880 .It Li "Scroll down" Ta "C-Down or C-e" Ta "C-Down"
881 .It Li "Scroll up" Ta "C-Up or C-y" Ta "C-Up"
882 .It Li "Search again" Ta "n" Ta "n"
883 .It Li "Search again in reverse" Ta "N" Ta "N"
884 .It Li "Search backward" Ta "?" Ta "C-r"
885 .It Li "Search forward" Ta "/" Ta "C-s"
886 .It Li "Start of line" Ta "0" Ta "C-a"
887 .It Li "Start selection" Ta "Space" Ta "C-Space"
888 .It Li "Top of history" Ta "g" Ta "M->"
889 .It Li "Transpose characters" Ta "" Ta "C-t"
892 The next and previous word keys use space and the
893 .Ql - ,
894 .Ql _
896 .Ql @
897 characters as word delimiters by default, but this can be adjusted by
898 setting the
899 .Em word-separators
900 session option.
901 Next word moves to the start of the next word, next word end to the end of the
902 next word and previous word to the start of the previous word.
903 The three next and previous space keys work similarly but use a space alone as
904 the word separator.
906 The jump commands enable quick movement within a line.
907 For instance, typing
908 .Ql f
909 followed by
910 .Ql /
911 will move the cursor to the next
912 .Ql /
913 character on the current line.
915 .Ql \&;
916 will then jump to the next occurrence.
918 Commands in copy mode may be prefaced by an optional repeat count.
919 With vi key bindings, a prefix is entered using the number keys; with
920 emacs, the Alt (meta) key and a number begins prefix entry.
921 For example, to move the cursor forward by ten words, use
922 .Ql M-1 0 M-f
923 in emacs mode, and
924 .Ql 10w
925 in vi.
927 When copying the selection, the repeat count indicates the buffer index to
928 replace, if used.
930 Mode key bindings are defined in a set of named tables:
931 .Em vi-edit
933 .Em emacs-edit
934 for keys used when line editing at the command prompt;
935 .Em vi-choice
937 .Em emacs-choice
938 for keys used when choosing from lists (such as produced by the
939 .Ic choose-window
940 command); and
941 .Em vi-copy
943 .Em emacs-copy
944 used in copy mode.
945 The tables may be viewed with the
946 .Ic list-keys
947 command and keys modified or removed with
948 .Ic bind-key
950 .Ic unbind-key .
951 One command accepts an argument,
952 .Ic copy-pipe ,
953 which copies the selection and pipes it to a command.
954 For example the following will bind
955 .Ql C-q
956 to copy the selection into
957 .Pa /tmp
958 as well as the paste buffer:
959 .Bd -literal -offset indent
960 bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"
963 The paste buffer key pastes the first line from the top paste buffer on the
964 stack.
966 The synopsis for the
967 .Ic copy-mode
968 command is:
969 .Bl -tag -width Ds
970 .It Xo Ic copy-mode
971 .Op Fl u
972 .Op Fl t Ar target-pane
974 Enter copy mode.
976 .Fl u
977 option scrolls one page up.
980 Each window displayed by
982 may be split into one or more
983 .Em panes ;
984 each pane takes up a certain area of the display and is a separate terminal.
985 A window may be split into panes using the
986 .Ic split-window
987 command.
988 Windows may be split horizontally (with the
989 .Fl h
990 flag) or vertically.
991 Panes may be resized with the
992 .Ic resize-pane
993 command (bound to
994 .Ql C-up ,
995 .Ql C-down
996 .Ql C-left
998 .Ql C-right
999 by default), the current pane may be changed with the
1000 .Ic select-pane
1001 command and the
1002 .Ic rotate-window
1004 .Ic swap-pane
1005 commands may be used to swap panes without changing their position.
1006 Panes are numbered beginning from zero in the order they are created.
1008 A number of preset
1009 .Em layouts
1010 are available.
1011 These may be selected with the
1012 .Ic select-layout
1013 command or cycled with
1014 .Ic next-layout
1015 (bound to
1016 .Ql Space
1017 by default); once a layout is chosen, panes within it may be moved and resized
1018 as normal.
1020 The following layouts are supported:
1021 .Bl -tag -width Ds
1022 .It Ic even-horizontal
1023 Panes are spread out evenly from left to right across the window.
1024 .It Ic even-vertical
1025 Panes are spread evenly from top to bottom.
1026 .It Ic main-horizontal
1027 A large (main) pane is shown at the top of the window and the remaining panes
1028 are spread from left to right in the leftover space at the bottom.
1029 Use the
1030 .Em main-pane-height
1031 window option to specify the height of the top pane.
1032 .It Ic main-vertical
1033 Similar to
1034 .Ic main-horizontal
1035 but the large pane is placed on the left and the others spread from top to
1036 bottom along the right.
1037 See the
1038 .Em main-pane-width
1039 window option.
1040 .It Ic tiled
1041 Panes are spread out as evenly as possible over the window in both rows and
1042 columns.
1045 In addition,
1046 .Ic select-layout
1047 may be used to apply a previously used layout - the
1048 .Ic list-windows
1049 command displays the layout of each window in a form suitable for use with
1050 .Ic select-layout .
1051 For example:
1052 .Bd -literal -offset indent
1053 $ tmux list-windows
1054 0: ksh [159x48]
1055     layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0}
1056 $ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0}
1060 automatically adjusts the size of the layout for the current window size.
1061 Note that a layout cannot be applied to a window with more panes than that
1062 from which the layout was originally defined.
1064 Commands related to windows and panes are as follows:
1065 .Bl -tag -width Ds
1066 .It Xo Ic break-pane
1067 .Op Fl dP
1068 .Op Fl F Ar format
1069 .Op Fl t Ar target-pane
1071 .D1 (alias: Ic breakp )
1072 Break
1073 .Ar target-pane
1074 off from its containing window to make it the only pane in a new window.
1076 .Fl d
1077 is given, the new window does not become the current window.
1079 .Fl P
1080 option prints information about the new window after it has been created.
1081 By default, it uses the format
1082 .Ql #{session_name}:#{window_index}
1083 but a different format may be specified with
1084 .Fl F .
1085 .It Xo Ic capture-pane
1086 .Op Fl aepPq
1087 .Op Fl b Ar buffer-index
1088 .Op Fl E Ar end-line
1089 .Op Fl S Ar start-line
1090 .Op Fl t Ar target-pane
1092 .D1 (alias: Ic capturep )
1093 Capture the contents of a pane.
1095 .Fl p
1096 is given, the output goes to stdout, otherwise to the buffer specified with
1097 .Fl b
1098 or a new buffer if omitted.
1100 .Fl a
1101 is given, the alternate screen is used, and the history is not accessible.
1102 If no alternate screen exists, an error will be returned unless
1103 .Fl q
1104 is given.
1106 .Fl e
1107 is given, the output includes escape sequences for text and background
1108 attributes.
1109 .Fl C
1110 also escapes non-printable characters as octal \exxx.
1111 .Fl J
1112 joins wrapped lines and preserves trailing spaces at each line's end.
1113 .Fl P
1114 captures only any output that the pane has received that is the beginning of an
1115 as-yet incomplete escape sequence.
1117 .Fl S
1119 .Fl E
1120 specify the starting and ending line numbers, zero is the first line of the
1121 visible pane and negative numbers are lines in the history.
1122 The default is to capture only the visible contents of the pane.
1123 .It Xo
1124 .Ic choose-client
1125 .Op Fl F Ar format
1126 .Op Fl t Ar target-window
1127 .Op Ar template
1129 Put a window into client choice mode, allowing a client to be selected
1130 interactively from a list.
1131 After a client is chosen,
1132 .Ql %%
1133 is replaced by the client
1134 .Xr pty 4
1135 path in
1136 .Ar template
1137 and the result executed as a command.
1139 .Ar template
1140 is not given, "detach-client -t '%%'" is used.
1141 For the meaning of the
1142 .Fl F
1143 flag, see the
1144 .Sx FORMATS
1145 section.
1146 This command works only if at least one client is attached.
1147 .It Xo
1148 .Ic choose-list
1149 .Op Fl l Ar items
1150 .Op Fl t Ar target-window
1151 .Op Ar template
1153 Put a window into list choice mode, allowing
1154 .Ar items
1155 to be selected.
1156 .Ar items
1157 can be a comma-separated list to display more than one item.
1158 If an item has spaces, that entry must be quoted.
1159 After an item is chosen,
1160 .Ql %%
1161 is replaced by the chosen item in the
1162 .Ar template
1163 and the result is executed as a command.
1165 .Ar template
1166 is not given, "run-shell '%%'" is used.
1167 .Ar items
1168 also accepts format specifiers.
1169 For the meaning of this see the
1170 .Sx FORMATS
1171 section.
1172 This command works only if at least one client is attached.
1173 .It Xo
1174 .Ic choose-session
1175 .Op Fl F Ar format
1176 .Op Fl t Ar target-window
1177 .Op Ar template
1179 Put a window into session choice mode, where a session may be selected
1180 interactively from a list.
1181 When one is chosen,
1182 .Ql %%
1183 is replaced by the session name in
1184 .Ar template
1185 and the result executed as a command.
1187 .Ar template
1188 is not given, "switch-client -t '%%'" is used.
1189 For the meaning of the
1190 .Fl F
1191 flag, see the
1192 .Sx FORMATS
1193 section.
1194 This command works only if at least one client is attached.
1195 .It Xo
1196 .Ic choose-tree
1197 .Op Fl suw
1198 .Op Fl b Ar session-template
1199 .Op Fl c Ar window-template
1200 .Op Fl S Ar format
1201 .Op Fl W Ar format
1202 .Op Fl t Ar target-window
1204 Put a window into tree choice mode, where either sessions or windows may be
1205 selected interactively from a list.
1206 By default, windows belonging to a session are indented to show their
1207 relationship to a session.
1209 Note that the
1210 .Ic choose-window
1212 .Ic choose-session
1213 commands are wrappers around
1214 .Ic choose-tree .
1217 .Fl s
1218 is given, will show sessions.
1220 .Fl w
1221 is given, will show windows.
1223 By default, the tree is collapsed and sessions must be expanded to windows
1224 with the right arrow key.
1226 .Fl u
1227 option will start with all sessions expanded instead.
1230 .Fl b
1231 is given, will override the default session command.
1232 Note that
1233 .Ql %%
1234 can be used and will be replaced with the session name.
1235 The default option if not specified is "switch-client -t '%%'".
1237 .Fl c
1238 is given, will override the default window command.
1239 Like
1240 .Fl b ,
1241 .Ql %%
1242 can be used and will be replaced with the session name and window index.
1243 When a window is chosen from the list, the session command is run before the
1244 window command.
1247 .Fl S
1248 is given will display the specified format instead of the default session
1249 format.
1251 .Fl W
1252 is given will display the specified format instead of the default window
1253 format.
1254 For the meaning of the
1255 .Fl s
1257 .Fl w
1258 options, see the
1259 .Sx FORMATS
1260 section.
1262 This command works only if at least one client is attached.
1263 .It Xo
1264 .Ic choose-window
1265 .Op Fl F Ar format
1266 .Op Fl t Ar target-window
1267 .Op Ar template
1269 Put a window into window choice mode, where a window may be chosen
1270 interactively from a list.
1271 After a window is selected,
1272 .Ql %%
1273 is replaced by the session name and window index in
1274 .Ar template
1275 and the result executed as a command.
1277 .Ar template
1278 is not given, "select-window -t '%%'" is used.
1279 For the meaning of the
1280 .Fl F
1281 flag, see the
1282 .Sx FORMATS
1283 section.
1284 This command works only if at least one client is attached.
1285 .It Ic display-panes Op Fl t Ar target-client
1286 .D1 (alias: Ic displayp)
1287 Display a visible indicator of each pane shown by
1288 .Ar target-client .
1289 See the
1290 .Ic display-panes-time ,
1291 .Ic display-panes-colour ,
1293 .Ic display-panes-active-colour
1294 session options.
1295 While the indicator is on screen, a pane may be selected with the
1296 .Ql 0
1298 .Ql 9
1299 keys.
1300 .It Xo Ic find-window
1301 .Op Fl CNT
1302 .Op Fl F Ar format
1303 .Op Fl t Ar target-window
1304 .Ar match-string
1306 .D1 (alias: Ic findw )
1307 Search for the
1308 .Xr fnmatch 3
1309 pattern
1310 .Ar match-string
1311 in window names, titles, and visible content (but not history).
1312 The flags control matching behavior:
1313 .Fl C
1314 matches only visible window contents,
1315 .Fl N
1316 matches only the window name and
1317 .Fl T
1318 matches only the window title.
1319 The default is
1320 .Fl CNT .
1321 If only one window is matched, it'll be automatically selected,
1322 otherwise a choice list is shown.
1323 For the meaning of the
1324 .Fl F
1325 flag, see the
1326 .Sx FORMATS
1327 section.
1328 This command works only if at least one client is attached.
1329 .It Xo Ic join-pane
1330 .Op Fl bdhv
1331 .Oo Fl l
1332 .Ar size |
1333 .Fl p Ar percentage Oc
1334 .Op Fl s Ar src-pane
1335 .Op Fl t Ar dst-pane
1337 .D1 (alias: Ic joinp )
1338 Like
1339 .Ic split-window ,
1340 but instead of splitting
1341 .Ar dst-pane
1342 and creating a new pane, split it and move
1343 .Ar src-pane
1344 into the space.
1345 This can be used to reverse
1346 .Ic break-pane .
1348 .Fl b
1349 option causes
1350 .Ar src-pane
1351 to be joined to left of or above
1352 .Ar dst-pane .
1353 .It Xo Ic kill-pane
1354 .Op Fl a
1355 .Op Fl t Ar target-pane
1357 .D1 (alias: Ic killp )
1358 Destroy the given pane.
1359 If no panes remain in the containing window, it is also destroyed.
1361 .Fl a
1362 option kills all but the pane given with
1363 .Fl t .
1364 .It Xo Ic kill-window
1365 .Op Fl a
1366 .Op Fl t Ar target-window
1368 .D1 (alias: Ic killw )
1369 Kill the current window or the window at
1370 .Ar target-window ,
1371 removing it from any sessions to which it is linked.
1373 .Fl a
1374 option kills all but the window given with
1375 .Fl t .
1376 .It Ic last-pane Op Fl t Ar target-window
1377 .D1 (alias: Ic lastp )
1378 Select the last (previously selected) pane.
1379 .It Ic last-window Op Fl t Ar target-session
1380 .D1 (alias: Ic last )
1381 Select the last (previously selected) window.
1382 If no
1383 .Ar target-session
1384 is specified, select the last window of the current session.
1385 .It Xo Ic link-window
1386 .Op Fl dk
1387 .Op Fl s Ar src-window
1388 .Op Fl t Ar dst-window
1390 .D1 (alias: Ic linkw )
1391 Link the window at
1392 .Ar src-window
1393 to the specified
1394 .Ar dst-window .
1396 .Ar dst-window
1397 is specified and no such window exists, the
1398 .Ar src-window
1399 is linked there.
1401 .Fl k
1402 is given and
1403 .Ar dst-window
1404 exists, it is killed, otherwise an error is generated.
1406 .Fl d
1407 is given, the newly linked window is not selected.
1408 .It Xo Ic list-panes
1409 .Op Fl as
1410 .Op Fl F Ar format
1411 .Op Fl t Ar target
1413 .D1 (alias: Ic lsp )
1415 .Fl a
1416 is given,
1417 .Ar target
1418 is ignored and all panes on the server are listed.
1420 .Fl s
1421 is given,
1422 .Ar target
1423 is a session (or the current session).
1424 If neither is given,
1425 .Ar target
1426 is a window (or the current window).
1427 For the meaning of the
1428 .Fl F
1429 flag, see the
1430 .Sx FORMATS
1431 section.
1432 .It Xo Ic list-windows
1433 .Op Fl a
1434 .Op Fl F Ar format
1435 .Op Fl t Ar target-session
1437 .D1 (alias: Ic lsw )
1439 .Fl a
1440 is given, list all windows on the server.
1441 Otherwise, list windows in the current session or in
1442 .Ar target-session .
1443 For the meaning of the
1444 .Fl F
1445 flag, see the
1446 .Sx FORMATS
1447 section.
1448 .It Xo Ic move-pane
1449 .Op Fl bdhv
1450 .Oo Fl l
1451 .Ar size |
1452 .Fl p Ar percentage Oc
1453 .Op Fl s Ar src-pane
1454 .Op Fl t Ar dst-pane
1456 .D1 (alias: Ic movep )
1457 Like
1458 .Ic join-pane ,
1460 .Ar src-pane
1462 .Ar dst-pane
1463 may belong to the same window.
1464 .It Xo Ic move-window
1465 .Op Fl rdk
1466 .Op Fl s Ar src-window
1467 .Op Fl t Ar dst-window
1469 .D1 (alias: Ic movew )
1470 This is similar to
1471 .Ic link-window ,
1472 except the window at
1473 .Ar src-window
1474 is moved to
1475 .Ar dst-window .
1476 With
1477 .Fl r ,
1478 all windows in the session are renumbered in sequential order, respecting
1480 .Ic base-index
1481 option.
1482 .It Xo Ic new-window
1483 .Op Fl adkP
1484 .Op Fl c Ar start-directory
1485 .Op Fl F Ar format
1486 .Op Fl n Ar window-name
1487 .Op Fl t Ar target-window
1488 .Op Ar shell-command
1490 .D1 (alias: Ic neww )
1491 Create a new window.
1492 With
1493 .Fl a ,
1494 the new window is inserted at the next index up from the specified
1495 .Ar target-window ,
1496 moving windows up if necessary,
1497 otherwise
1498 .Ar target-window
1499 is the new window location.
1502 .Fl d
1503 is given, the session does not make the new window the current window.
1504 .Ar target-window
1505 represents the window to be created; if the target already exists an error is
1506 shown, unless the
1507 .Fl k
1508 flag is used, in which case it is destroyed.
1509 .Ar shell-command
1510 is the command to execute.
1512 .Ar shell-command
1513 is not specified, the value of the
1514 .Ic default-command
1515 option is used.
1516 .Fl c
1517 specifies the working directory in which the new window is created.
1519 When the shell command completes, the window closes.
1520 See the
1521 .Ic remain-on-exit
1522 option to change this behaviour.
1525 .Ev TERM
1526 environment variable must be set to
1527 .Dq screen
1528 for all programs running
1529 .Em inside
1530 .Nm .
1531 New windows will automatically have
1532 .Dq TERM=screen
1533 added to their environment, but care must be taken not to reset this in shell
1534 start-up files.
1537 .Fl P
1538 option prints information about the new window after it has been created.
1539 By default, it uses the format
1540 .Ql #{session_name}:#{window_index}
1541 but a different format may be specified with
1542 .Fl F .
1543 .It Ic next-layout Op Fl t Ar target-window
1544 .D1 (alias: Ic nextl )
1545 Move a window to the next layout and rearrange the panes to fit.
1546 .It Xo Ic next-window
1547 .Op Fl a
1548 .Op Fl t Ar target-session
1550 .D1 (alias: Ic next )
1551 Move to the next window in the session.
1553 .Fl a
1554 is used, move to the next window with an alert.
1555 .It Xo Ic pipe-pane
1556 .Op Fl o
1557 .Op Fl t Ar target-pane
1558 .Op Ar shell-command
1560 .D1 (alias: Ic pipep )
1561 Pipe any output sent by the program in
1562 .Ar target-pane
1563 to a shell command.
1564 A pane may only be piped to one command at a time, any existing pipe is
1565 closed before
1566 .Ar shell-command
1567 is executed.
1569 .Ar shell-command
1570 string may contain the special character sequences supported by the
1571 .Ic status-left
1572 option.
1573 If no
1574 .Ar shell-command
1575 is given, the current pipe (if any) is closed.
1578 .Fl o
1579 option only opens a new pipe if no previous pipe exists, allowing a pipe to
1580 be toggled with a single key, for example:
1581 .Bd -literal -offset indent
1582 bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'
1584 .It Xo Ic previous-layout
1585 .Op Fl t Ar target-window
1587 .D1 (alias: Ic prevl )
1588 Move to the previous layout in the session.
1589 .It Xo Ic previous-window
1590 .Op Fl a
1591 .Op Fl t Ar target-session
1593 .D1 (alias: Ic prev )
1594 Move to the previous window in the session.
1595 With
1596 .Fl a ,
1597 move to the previous window with an alert.
1598 .It Xo Ic rename-window
1599 .Op Fl t Ar target-window
1600 .Ar new-name
1602 .D1 (alias: Ic renamew )
1603 Rename the current window, or the window at
1604 .Ar target-window
1605 if specified, to
1606 .Ar new-name .
1607 .It Xo Ic resize-pane
1608 .Op Fl DLRUZ
1609 .Op Fl t Ar target-pane
1610 .Op Fl x Ar width
1611 .Op Fl y Ar height
1612 .Op Ar adjustment
1614 .D1 (alias: Ic resizep )
1615 Resize a pane, up, down, left or right by
1616 .Ar adjustment
1617 with
1618 .Fl U ,
1619 .Fl D ,
1620 .Fl L
1622 .Fl R ,
1624 to an absolute size
1625 with
1626 .Fl x
1628 .Fl y .
1630 .Ar adjustment
1631 is given in lines or cells (the default is 1).
1633 With
1634 .Fl Z ,
1635 the active pane is toggled between zoomed (occupying the whole of the window)
1636 and unzoomed (its normal position in the layout).
1637 .It Xo Ic respawn-pane
1638 .Op Fl k
1639 .Op Fl t Ar target-pane
1640 .Op Ar shell-command
1642 .D1 (alias: Ic respawnp )
1643 Reactivate a pane in which the command has exited (see the
1644 .Ic remain-on-exit
1645 window option).
1647 .Ar shell-command
1648 is not given, the command used when the pane was created is executed.
1649 The pane must be already inactive, unless
1650 .Fl k
1651 is given, in which case any existing command is killed.
1652 .It Xo Ic respawn-window
1653 .Op Fl k
1654 .Op Fl t Ar target-window
1655 .Op Ar shell-command
1657 .D1 (alias: Ic respawnw )
1658 Reactivate a window in which the command has exited (see the
1659 .Ic remain-on-exit
1660 window option).
1662 .Ar shell-command
1663 is not given, the command used when the window was created is executed.
1664 The window must be already inactive, unless
1665 .Fl k
1666 is given, in which case any existing command is killed.
1667 .It Xo Ic rotate-window
1668 .Op Fl DU
1669 .Op Fl t Ar target-window
1671 .D1 (alias: Ic rotatew )
1672 Rotate the positions of the panes within a window, either upward (numerically
1673 lower) with
1674 .Fl U
1675 or downward (numerically higher).
1676 .It Xo Ic select-layout
1677 .Op Fl np
1678 .Op Fl t Ar target-window
1679 .Op Ar layout-name
1681 .D1 (alias: Ic selectl )
1682 Choose a specific layout for a window.
1684 .Ar layout-name
1685 is not given, the last preset layout used (if any) is reapplied.
1686 .Fl n
1688 .Fl p
1689 are equivalent to the
1690 .Ic next-layout
1692 .Ic previous-layout
1693 commands.
1694 .It Xo Ic select-pane
1695 .Op Fl lDLRU
1696 .Op Fl t Ar target-pane
1698 .D1 (alias: Ic selectp )
1699 Make pane
1700 .Ar target-pane
1701 the active pane in window
1702 .Ar target-window .
1703 If one of
1704 .Fl D ,
1705 .Fl L ,
1706 .Fl R ,
1708 .Fl U
1709 is used, respectively the pane below, to the left, to the right, or above the
1710 target pane is used.
1711 .Fl l
1712 is the same as using the
1713 .Ic last-pane
1714 command.
1715 .It Xo Ic select-window
1716 .Op Fl lnpT
1717 .Op Fl t Ar target-window
1719 .D1 (alias: Ic selectw )
1720 Select the window at
1721 .Ar target-window .
1722 .Fl l ,
1723 .Fl n
1725 .Fl p
1726 are equivalent to the
1727 .Ic last-window ,
1728 .Ic next-window
1730 .Ic previous-window
1731 commands.
1733 .Fl T
1734 is given and the selected window is already the current window,
1735 the command behaves like
1736 .Ic last-window .
1737 .It Xo Ic split-window
1738 .Op Fl dhvP
1739 .Op Fl c Ar start-directory
1740 .Oo Fl l
1741 .Ar size |
1742 .Fl p Ar percentage Oc
1743 .Op Fl t Ar target-pane
1744 .Op Ar shell-command
1745 .Op Fl F Ar format
1747 .D1 (alias: Ic splitw )
1748 Create a new pane by splitting
1749 .Ar target-pane :
1750 .Fl h
1751 does a horizontal split and
1752 .Fl v
1753 a vertical split; if neither is specified,
1754 .Fl v
1755 is assumed.
1757 .Fl l
1759 .Fl p
1760 options specify the size of the new pane in lines (for vertical split) or in
1761 cells (for horizontal split), or as a percentage, respectively.
1762 All other options have the same meaning as for the
1763 .Ic new-window
1764 command.
1765 .It Xo Ic swap-pane
1766 .Op Fl dDU
1767 .Op Fl s Ar src-pane
1768 .Op Fl t Ar dst-pane
1770 .D1 (alias: Ic swapp )
1771 Swap two panes.
1773 .Fl U
1774 is used and no source pane is specified with
1775 .Fl s ,
1776 .Ar dst-pane
1777 is swapped with the previous pane (before it numerically);
1778 .Fl D
1779 swaps with the next pane (after it numerically).
1780 .Fl d
1781 instructs
1783 not to change the active pane.
1784 .It Xo Ic swap-window
1785 .Op Fl d
1786 .Op Fl s Ar src-window
1787 .Op Fl t Ar dst-window
1789 .D1 (alias: Ic swapw )
1790 This is similar to
1791 .Ic link-window ,
1792 except the source and destination windows are swapped.
1793 It is an error if no window exists at
1794 .Ar src-window .
1795 .It Xo Ic unlink-window
1796 .Op Fl k
1797 .Op Fl t Ar target-window
1799 .D1 (alias: Ic unlinkw )
1800 Unlink
1801 .Ar target-window .
1802 Unless
1803 .Fl k
1804 is given, a window may be unlinked only if it is linked to multiple sessions -
1805 windows may not be linked to no sessions;
1807 .Fl k
1808 is specified and the window is linked to only one session, it is unlinked and
1809 destroyed.
1811 .Sh KEY BINDINGS
1813 allows a command to be bound to most keys, with or without a prefix key.
1814 When specifying keys, most represent themselves (for example
1815 .Ql A
1817 .Ql Z ) .
1818 Ctrl keys may be prefixed with
1819 .Ql C-
1821 .Ql ^ ,
1822 and Alt (meta) with
1823 .Ql M- .
1824 In addition, the following special key names are accepted:
1825 .Em Up ,
1826 .Em Down ,
1827 .Em Left ,
1828 .Em Right ,
1829 .Em BSpace ,
1830 .Em BTab ,
1831 .Em DC
1832 (Delete),
1833 .Em End ,
1834 .Em Enter ,
1835 .Em Escape ,
1836 .Em F1
1838 .Em F20 ,
1839 .Em Home ,
1840 .Em IC
1841 (Insert),
1842 .Em NPage/PageDown/PgDn ,
1843 .Em PPage/PageUp/PgUp ,
1844 .Em Space ,
1846 .Em Tab .
1847 Note that to bind the
1848 .Ql \&"
1850 .Ql '
1851 keys, quotation marks are necessary, for example:
1852 .Bd -literal -offset indent
1853 bind-key '"' split-window
1854 bind-key "'" new-window
1857 Commands related to key bindings are as follows:
1858 .Bl -tag -width Ds
1859 .It Xo Ic bind-key
1860 .Op Fl cnr
1861 .Op Fl t Ar key-table
1862 .Ar key Ar command Op Ar arguments
1864 .D1 (alias: Ic bind )
1865 Bind key
1866 .Ar key
1868 .Ar command .
1869 By default (without
1870 .Fl t )
1871 the primary key bindings are modified (those normally activated with the prefix
1872 key); in this case, if
1873 .Fl n
1874 is specified, it is not necessary to use the prefix key,
1875 .Ar command
1876 is bound to
1877 .Ar key
1878 alone.
1880 .Fl r
1881 flag indicates this key may repeat, see the
1882 .Ic repeat-time
1883 option.
1886 .Fl t
1887 is present,
1888 .Ar key
1889 is bound in
1890 .Ar key-table :
1891 the binding for command mode with
1892 .Fl c
1893 or for normal mode without.
1894 To view the default bindings and possible commands, see the
1895 .Ic list-keys
1896 command.
1897 .It Ic list-keys Op Fl t Ar key-table
1898 .D1 (alias: Ic lsk )
1899 List all key bindings.
1900 Without
1901 .Fl t
1902 the primary key bindings - those executed when preceded by the prefix key -
1903 are printed.
1905 With
1906 .Fl t ,
1907 the key bindings in
1908 .Ar key-table
1909 are listed; this may be one of:
1910 .Em vi-edit ,
1911 .Em emacs-edit ,
1912 .Em vi-choice ,
1913 .Em emacs-choice ,
1914 .Em vi-copy
1916 .Em emacs-copy .
1917 .It Xo Ic send-keys
1918 .Op Fl lR
1919 .Op Fl t Ar target-pane
1920 .Ar key Ar ...
1922 .D1 (alias: Ic send )
1923 Send a key or keys to a window.
1924 Each argument
1925 .Ar key
1926 is the name of the key (such as
1927 .Ql C-a
1929 .Ql npage
1930 ) to send; if the string is not recognised as a key, it is sent as a series of
1931 characters.
1933 .Fl l
1934 flag disables key name lookup and sends the keys literally.
1935 All arguments are sent sequentially from first to last.
1937 .Fl R
1938 flag causes the terminal state to be reset.
1939 .It Xo Ic send-prefix
1940 .Op Fl 2
1941 .Op Fl t Ar target-pane
1943 Send the prefix key, or with
1944 .Fl 2
1945 the secondary prefix key, to a window as if it was pressed.
1946 .It Xo Ic unbind-key
1947 .Op Fl acn
1948 .Op Fl t Ar key-table
1949 .Ar key
1951 .D1 (alias: Ic unbind )
1952 Unbind the command bound to
1953 .Ar key .
1954 Without
1955 .Fl t
1956 the primary key bindings are modified; in this case, if
1957 .Fl n
1958 is specified, the command bound to
1959 .Ar key
1960 without a prefix (if any) is removed.
1962 .Fl a
1963 is present, all key bindings are removed.
1966 .Fl t
1967 is present,
1968 .Ar key
1970 .Ar key-table
1971 is unbound: the binding for command mode with
1972 .Fl c
1973 or for normal mode without.
1975 .Sh OPTIONS
1976 The appearance and behaviour of
1978 may be modified by changing the value of various options.
1979 There are three types of option:
1980 .Em server options ,
1981 .Em session options
1983 .Em window options .
1987 server has a set of global options which do not apply to any particular
1988 window or session.
1989 These are altered with the
1990 .Ic set-option
1991 .Fl s
1992 command, or displayed with the
1993 .Ic show-options
1994 .Fl s
1995 command.
1997 In addition, each individual session may have a set of session options, and
1998 there is a separate set of global session options.
1999 Sessions which do not have a particular option configured inherit the value
2000 from the global session options.
2001 Session options are set or unset with the
2002 .Ic set-option
2003 command and may be listed with the
2004 .Ic show-options
2005 command.
2006 The available server and session options are listed under the
2007 .Ic set-option
2008 command.
2010 Similarly, a set of window options is attached to each window, and there is
2011 a set of global window options from which any unset options are inherited.
2012 Window options are altered with the
2013 .Ic set-window-option
2014 command and can be listed with the
2015 .Ic show-window-options
2016 command.
2017 All window options are documented with the
2018 .Ic set-window-option
2019 command.
2022 also supports user options which are prefixed with a
2023 .Ql \&@ .
2024 User options may have any name, so long as they are prefixed with
2025 .Ql \&@ ,
2026 and be set to any string.
2027 For example
2028 .Bd -literal -offset indent
2029 $ tmux setw -q @foo "abc123"
2030 $ tmux showw -v @foo
2031 abc123
2034 Commands which set options are as follows:
2035 .Bl -tag -width Ds
2036 .It Xo Ic set-option
2037 .Op Fl agoqsuw
2038 .Op Fl t Ar target-session | Ar target-window
2039 .Ar option Ar value
2041 .D1 (alias: Ic set )
2042 Set a window option with
2043 .Fl w
2044 (equivalent to the
2045 .Ic set-window-option
2046 command),
2047 a server option with
2048 .Fl s ,
2049 otherwise a session option.
2052 .Fl g
2053 is specified, the global session or window option is set.
2054 With
2055 .Fl a ,
2056 and if the option expects a string,
2057 .Ar value
2058 is appended to the existing setting.
2060 .Fl u
2061 flag unsets an option, so a session inherits the option from the global
2062 options.
2063 It is not possible to unset a global option.
2066 .Fl o
2067 flag prevents setting an option that is already set.
2070 .Fl q
2071 flag suppresses the informational message (as if the
2072 .Ic quiet
2073 server option was set).
2075 Available window options are listed under
2076 .Ic set-window-option .
2078 .Ar value
2079 depends on the option and may be a number, a string, or a flag (on, off, or
2080 omitted to toggle).
2082 Available server options are:
2083 .Bl -tag -width Ds
2084 .It Ic buffer-limit Ar number
2085 Set the number of buffers; as new buffers are added to the top of the stack,
2086 old ones are removed from the bottom if necessary to maintain this maximum
2087 length.
2088 .It Ic escape-time Ar time
2089 Set the time in milliseconds for which
2091 waits after an escape is input to determine if it is part of a function or meta
2092 key sequences.
2093 The default is 500 milliseconds.
2094 .It Xo Ic exit-unattached
2095 .Op Ic on | off
2097 If enabled, the server will exit when there are no attached clients.
2098 .It Xo Ic focus-events
2099 .Op Ic on | off
2101 When enabled, focus events are requested from the terminal if supported and
2102 passed through to applications running in
2103 .Nm .
2104 Attached clients should be detached and attached again after changing this
2105 option.
2106 .It Xo Ic quiet
2107 .Op Ic on | off
2109 Enable or disable the display of various informational messages (see also the
2110 .Fl q
2111 command line flag).
2112 .It Xo Ic set-clipboard
2113 .Op Ic on | off
2115 Attempt to set the terminal clipboard content using the
2116 \ee]52;...\e007
2117 .Xr xterm 1
2118 escape sequences.
2119 This option is on by default if there is an
2120 .Em \&Ms
2121 entry in the
2122 .Xr terminfo 5
2123 description for the client terminal.
2124 Note that this feature needs to be enabled in
2125 .Xr xterm 1
2126 by setting the resource:
2127 .Bd -literal -offset indent
2128 disallowedWindowOps: 20,21,SetXprop
2131 Or changing this property from the
2132 .Xr xterm 1
2133 interactive menu when required.
2136 Available session options are:
2137 .Bl -tag -width Ds
2138 .It Ic assume-paste-time Ar milliseconds
2139 If keys are entered faster than one in
2140 .Ar milliseconds ,
2141 they are assumed to have been pasted rather than typed and
2143 key bindings are not processed.
2144 The default is one millisecond and zero disables.
2145 .It Ic base-index Ar index
2146 Set the base index from which an unused index should be searched when a new
2147 window is created.
2148 The default is zero.
2149 .It Xo Ic bell-action
2150 .Op Ic any | none | current
2152 Set action on window bell.
2153 .Ic any
2154 means a bell in any window linked to a session causes a bell in the current
2155 window of that session,
2156 .Ic none
2157 means all bells are ignored and
2158 .Ic current
2159 means only bells in windows other than the current window are ignored.
2160 .It Xo Ic bell-on-alert
2161 .Op Ic on | off
2163 If on, ring the terminal bell when an alert
2164 occurs.
2165 .It Ic default-command Ar shell-command
2166 Set the command used for new windows (if not specified when the window is
2167 created) to
2168 .Ar shell-command ,
2169 which may be any
2170 .Xr sh 1
2171 command.
2172 The default is an empty string, which instructs
2174 to create a login shell using the value of the
2175 .Ic default-shell
2176 option.
2177 .It Ic default-shell Ar path
2178 Specify the default shell.
2179 This is used as the login shell for new windows when the
2180 .Ic default-command
2181 option is set to empty, and must be the full path of the executable.
2182 When started
2184 tries to set a default value from the first suitable of the
2185 .Ev SHELL
2186 environment variable, the shell returned by
2187 .Xr getpwuid 3 ,
2189 .Pa /bin/sh .
2190 This option should be configured when
2192 is used as a login shell.
2193 .It Ic default-terminal Ar terminal
2194 Set the default terminal for new windows created in this session - the
2195 default value of the
2196 .Ev TERM
2197 environment variable.
2200 to work correctly, this
2201 .Em must
2202 be set to
2203 .Ql screen
2204 or a derivative of it.
2205 .It Xo Ic destroy-unattached
2206 .Op Ic on | off
2208 If enabled and the session is no longer attached to any clients, it is
2209 destroyed.
2210 .It Xo Ic detach-on-destroy
2211 .Op Ic on | off
2213 If on (the default), the client is detached when the session it is attached to
2214 is destroyed.
2215 If off, the client is switched to the most recently active of the remaining
2216 sessions.
2217 .It Ic display-panes-active-colour Ar colour
2218 Set the colour used by the
2219 .Ic display-panes
2220 command to show the indicator for the active pane.
2221 .It Ic display-panes-colour Ar colour
2222 Set the colour used by the
2223 .Ic display-panes
2224 command to show the indicators for inactive panes.
2225 .It Ic display-panes-time Ar time
2226 Set the time in milliseconds for which the indicators shown by the
2227 .Ic display-panes
2228 command appear.
2229 .It Ic display-time Ar time
2230 Set the amount of time for which status line messages and other on-screen
2231 indicators are displayed.
2232 .Ar time
2233 is in milliseconds.
2234 .It Ic history-limit Ar lines
2235 Set the maximum number of lines held in window history.
2236 This setting applies only to new windows - existing window histories are not
2237 resized and retain the limit at the point they were created.
2238 .It Ic lock-after-time Ar number
2239 Lock the session (like the
2240 .Ic lock-session
2241 command) after
2242 .Ar number
2243 seconds of inactivity, or the entire server (all sessions) if the
2244 .Ic lock-server
2245 option is set.
2246 The default is not to lock (set to 0).
2247 .It Ic lock-command Ar shell-command
2248 Command to run when locking each client.
2249 The default is to run
2250 .Xr lock 1
2251 with
2252 .Fl np .
2253 .It Xo Ic lock-server
2254 .Op Ic on | off
2256 If this option is
2257 .Ic on
2258 (the default),
2259 instead of each session locking individually as each has been
2260 idle for
2261 .Ic lock-after-time ,
2262 the entire server will lock after
2263 .Em all
2264 sessions would have locked.
2265 This has no effect as a session option; it must be set as a global option.
2266 .It Ic message-attr Ar attributes
2267 Set status line message attributes, where
2268 .Ar attributes
2269 is either
2270 .Ic none
2271 or a comma-delimited list of one or more of:
2272 .Ic bright
2274 .Ic bold ) ,
2275 .Ic dim ,
2276 .Ic underscore ,
2277 .Ic blink ,
2278 .Ic reverse ,
2279 .Ic hidden ,
2281 .Ic italics .
2282 .It Ic message-bg Ar colour
2283 Set status line message background colour, where
2284 .Ar colour
2285 is one of:
2286 .Ic black ,
2287 .Ic red ,
2288 .Ic green ,
2289 .Ic yellow ,
2290 .Ic blue ,
2291 .Ic magenta ,
2292 .Ic cyan ,
2293 .Ic white ,
2294 aixterm bright variants (if supported:
2295 .Ic brightred ,
2296 .Ic brightgreen ,
2297 and so on),
2298 .Ic colour0
2300 .Ic colour255
2301 from the 256-colour set,
2302 .Ic default ,
2303 or a hexadecimal RGB string such as
2304 .Ql #ffffff ,
2305 which chooses the closest match from the default 256-colour set.
2306 .It Ic message-command-attr Ar attributes
2307 Set status line message attributes when in command mode.
2308 .It Ic message-command-bg Ar colour
2309 Set status line message background colour when in command mode.
2310 .It Ic message-command-fg Ar colour
2311 Set status line message foreground colour when in command mode.
2312 .It Ic message-fg Ar colour
2313 Set status line message foreground colour.
2314 .It Ic message-limit Ar number
2315 Set the number of error or information messages to save in the message log for
2316 each client.
2317 The default is 20.
2318 .It Xo Ic mouse-resize-pane
2319 .Op Ic on | off
2321 If on,
2323 captures the mouse and allows panes to be resized by dragging on their borders.
2324 .It Xo Ic mouse-select-pane
2325 .Op Ic on | off
2327 If on,
2329 captures the mouse and when a window is split into multiple panes the mouse may
2330 be used to select the current pane.
2331 The mouse click is also passed through to the application as normal.
2332 .It Xo Ic mouse-select-window
2333 .Op Ic on | off
2335 If on, clicking the mouse on a window name in the status line will select that
2336 window.
2337 .It Xo Ic mouse-utf8
2338 .Op Ic on | off
2340 If enabled, request mouse input as UTF-8 on UTF-8 terminals.
2341 .It Ic pane-active-border-bg Ar colour
2342 .It Ic pane-active-border-fg Ar colour
2343 Set the pane border colour for the currently active pane.
2344 .It Ic pane-border-bg Ar colour
2345 .It Ic pane-border-fg Ar colour
2346 Set the pane border colour for panes aside from the active pane.
2347 .It Ic prefix Ar key
2348 Set the key accepted as a prefix key.
2349 .It Ic prefix2 Ar key
2350 Set a secondary key accepted as a prefix key.
2351 .It Xo Ic renumber-windows
2352 .Op Ic on | off
2354 If on, when a window is closed in a session, automatically renumber the other
2355 windows in numerical order.
2356 This respects the
2357 .Ic base-index
2358 option if it has been set.
2359 If off, do not renumber the windows.
2360 .It Ic repeat-time Ar time
2361 Allow multiple commands to be entered without pressing the prefix-key again
2362 in the specified
2363 .Ar time
2364 milliseconds (the default is 500).
2365 Whether a key repeats may be set when it is bound using the
2366 .Fl r
2367 flag to
2368 .Ic bind-key .
2369 Repeat is enabled for the default keys bound to the
2370 .Ic resize-pane
2371 command.
2372 .It Xo Ic set-remain-on-exit
2373 .Op Ic on | off
2375 Set the
2376 .Ic remain-on-exit
2377 window option for any windows first created in this session.
2378 When this option is true, windows in which the running program has
2379 exited do not close, instead remaining open but inactivate.
2380 Use the
2381 .Ic respawn-window
2382 command to reactivate such a window, or the
2383 .Ic kill-window
2384 command to destroy it.
2385 .It Xo Ic set-titles
2386 .Op Ic on | off
2388 Attempt to set the client terminal title using the
2389 .Em tsl
2391 .Em fsl
2392 .Xr terminfo 5
2393 entries if they exist.
2395 automatically sets these to the \ee]2;...\e007 sequence if
2396 the terminal appears to be an xterm.
2397 This option is off by default.
2398 Note that elinks
2399 will only attempt to set the window title if the STY environment
2400 variable is set.
2401 .It Ic set-titles-string Ar string
2402 String used to set the window title if
2403 .Ic set-titles
2404 is on.
2405 Character sequences are replaced as for the
2406 .Ic status-left
2407 option.
2408 .It Xo Ic status
2409 .Op Ic on | off
2411 Show or hide the status line.
2412 .It Ic status-attr Ar attributes
2413 Set status line attributes.
2414 .It Ic status-bg Ar colour
2415 Set status line background colour.
2416 .It Ic status-fg Ar colour
2417 Set status line foreground colour.
2418 .It Ic status-interval Ar interval
2419 Update the status bar every
2420 .Ar interval
2421 seconds.
2422 By default, updates will occur every 15 seconds.
2423 A setting of zero disables redrawing at interval.
2424 .It Xo Ic status-justify
2425 .Op Ic left | centre | right
2427 Set the position of the window list component of the status line: left, centre
2428 or right justified.
2429 .It Xo Ic status-keys
2430 .Op Ic vi | emacs
2432 Use vi or emacs-style
2433 key bindings in the status line, for example at the command prompt.
2434 The default is emacs, unless the
2435 .Ev VISUAL
2437 .Ev EDITOR
2438 environment variables are set and contain the string
2439 .Ql vi .
2440 .It Ic status-left Ar string
2441 Display
2442 .Ar string
2443 (by default the session name) to the left of the status bar.
2444 .Ar string
2445 will be passed through
2446 .Xr strftime 3
2447 and formats (see
2448 .Sx FORMATS Ns )
2449 will be expanded.
2450 It may also contain any of the following special character sequences:
2451 .Bl -column "Character pair" "Replaced with" -offset indent
2452 .It Sy "Character pair" Ta Sy "Replaced with"
2453 .It Li "#(shell-command)" Ta "First line of the command's output"
2454 .It Li "#[attributes]" Ta "Colour or attribute change"
2455 .It Li "##" Ta "A literal" Ql #
2458 The #(shell-command) form executes
2459 .Ql shell-command
2460 and inserts the first line of its output.
2461 Note that shell commands are only executed once at the interval specified by
2463 .Ic status-interval
2464 option: if the status line is redrawn in the meantime, the previous result is
2465 used.
2466 Shell commands are executed with the
2468 global environment set (see the
2469 .Sx ENVIRONMENT
2470 section).
2472 For details on how the names and titles can be set see the
2473 .Sx "NAMES AND TITLES"
2474 section.
2476 #[attributes] allows a comma-separated list of attributes to be specified,
2477 these may be
2478 .Ql fg=colour
2479 to set the foreground colour,
2480 .Ql bg=colour
2481 to set the background colour, the name of one of the attributes (listed under
2483 .Ic message-attr
2484 option) to turn an attribute on, or an attribute prefixed with
2485 .Ql no
2486 to turn one off, for example
2487 .Ic nobright .
2488 Examples are:
2489 .Bd -literal -offset indent
2490 #(sysctl vm.loadavg)
2491 #[fg=yellow,bold]#(apm -l)%%#[default] [#S]
2494 Where appropriate, special character sequences may be prefixed with a number to
2495 specify the maximum length, for example
2496 .Ql #24T .
2498 By default, UTF-8 in
2499 .Ar string
2500 is not interpreted, to enable UTF-8, use the
2501 .Ic status-utf8
2502 option.
2503 .It Ic status-left-attr Ar attributes
2504 Set the attribute of the left part of the status line.
2505 .It Ic status-left-bg Ar colour
2506 Set the background colour of the left part of the status line.
2507 .It Ic status-left-fg Ar colour
2508 Set the foreground colour of the left part of the status line.
2509 .It Ic status-left-length Ar length
2510 Set the maximum
2511 .Ar length
2512 of the left component of the status bar.
2513 The default is 10.
2514 .It Xo Ic status-position
2515 .Op Ic top | bottom
2517 Set the position of the status line.
2518 .It Ic status-right Ar string
2519 Display
2520 .Ar string
2521 to the right of the status bar.
2522 By default, the current window title in double quotes, the date and the time
2523 are shown.
2524 As with
2525 .Ic status-left ,
2526 .Ar string
2527 will be passed to
2528 .Xr strftime 3 ,
2529 character pairs are replaced, and UTF-8 is dependent on the
2530 .Ic status-utf8
2531 option.
2532 .It Ic status-right-attr Ar attributes
2533 Set the attribute of the right part of the status line.
2534 .It Ic status-right-bg Ar colour
2535 Set the background colour of the right part of the status line.
2536 .It Ic status-right-fg Ar colour
2537 Set the foreground colour of the right part of the status line.
2538 .It Ic status-right-length Ar length
2539 Set the maximum
2540 .Ar length
2541 of the right component of the status bar.
2542 The default is 40.
2543 .It Xo Ic status-utf8
2544 .Op Ic on | off
2546 Instruct
2548 to treat top-bit-set characters in the
2549 .Ic status-left
2551 .Ic status-right
2552 strings as UTF-8; notably, this is important for wide characters.
2553 This option defaults to off.
2554 .It Ic terminal-overrides Ar string
2555 Contains a list of entries which override terminal descriptions read using
2556 .Xr terminfo 5 .
2557 .Ar string
2558 is a comma-separated list of items each a colon-separated string made up of a
2559 terminal type pattern (matched using
2560 .Xr fnmatch 3 )
2561 and a set of
2562 .Em name=value
2563 entries.
2565 For example, to set the
2566 .Ql clear
2567 .Xr terminfo 5
2568 entry to
2569 .Ql \ee[H\ee[2J
2570 for all terminal types and the
2571 .Ql dch1
2572 entry to
2573 .Ql \ee[P
2574 for the
2575 .Ql rxvt
2576 terminal type, the option could be set to the string:
2577 .Bd -literal -offset indent
2578 "*:clear=\ee[H\ee[2J,rxvt:dch1=\ee[P"
2581 The terminal entry value is passed through
2582 .Xr strunvis 3
2583 before interpretation.
2584 The default value forcibly corrects the
2585 .Ql colors
2586 entry for terminals which support 88 or 256 colours:
2587 .Bd -literal -offset indent
2588 "*88col*:colors=88,*256col*:colors=256,xterm*:XT"
2590 .It Ic update-environment Ar variables
2591 Set a space-separated string containing a list of environment variables to be
2592 copied into the session environment when a new session is created or an
2593 existing session is attached.
2594 Any variables that do not exist in the source environment are set to be
2595 removed from the session environment (as if
2596 .Fl r
2597 was given to the
2598 .Ic set-environment
2599 command).
2600 The default is
2601 "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID
2602 XAUTHORITY".
2603 .It Xo Ic visual-activity
2604 .Op Ic on | off
2606 If on, display a status line message when activity occurs in a window
2607 for which the
2608 .Ic monitor-activity
2609 window option is enabled.
2610 .It Xo Ic visual-bell
2611 .Op Ic on | off
2613 If this option is on, a message is shown on a bell instead of it being passed
2614 through to the terminal (which normally makes a sound).
2615 Also see the
2616 .Ic bell-action
2617 option.
2618 .It Xo Ic visual-content
2619 .Op Ic on | off
2621 Like
2622 .Ic visual-activity ,
2623 display a message when content is present in a window
2624 for which the
2625 .Ic monitor-content
2626 window option is enabled.
2627 .It Xo Ic visual-silence
2628 .Op Ic on | off
2631 .Ic monitor-silence
2632 is enabled, prints a message after the interval has expired on a given window.
2633 .It Ic word-separators Ar string
2634 Sets the session's conception of what characters are considered word
2635 separators, for the purposes of the next and previous word commands in
2636 copy mode.
2637 The default is
2638 .Ql \ -_@ .
2640 .It Xo Ic set-window-option
2641 .Op Fl agoqu
2642 .Op Fl t Ar target-window
2643 .Ar option Ar value
2645 .D1 (alias: Ic setw )
2646 Set a window option.
2648 .Fl a ,
2649 .Fl g ,
2650 .Fl o ,
2651 .Fl q
2653 .Fl u
2654 flags work similarly to the
2655 .Ic set-option
2656 command.
2658 Supported window options are:
2660 .Bl -tag -width Ds -compact
2661 .It Xo Ic aggressive-resize
2662 .Op Ic on | off
2664 Aggressively resize the chosen window.
2665 This means that
2667 will resize the window to the size of the smallest session for which it is the
2668 current window, rather than the smallest session to which it is attached.
2669 The window may resize when the current window is changed on another sessions;
2670 this option is good for full-screen programs which support
2671 .Dv SIGWINCH
2672 and poor for interactive programs such as shells.
2674 .It Xo Ic allow-rename
2675 .Op Ic on | off
2677 Allow programs to change the window name using a terminal escape
2678 sequence (\\033k...\\033\\\\).
2679 The default is on.
2681 .It Xo Ic alternate-screen
2682 .Op Ic on | off
2684 This option configures whether programs running inside
2686 may use the terminal alternate screen feature, which allows the
2687 .Em smcup
2689 .Em rmcup
2690 .Xr terminfo 5
2691 capabilities.
2692 The alternate screen feature preserves the contents of the window when an
2693 interactive application starts and restores it on exit, so that any output
2694 visible before the application starts reappears unchanged after it exits.
2695 The default is on.
2697 .It Xo Ic automatic-rename
2698 .Op Ic on | off
2700 Control automatic window renaming.
2701 When this setting is enabled,
2703 will rename the window automatically using the format specified by
2704 .Ic automatic-rename-format .
2705 This flag is automatically disabled for an individual window when a name
2706 is specified at creation with
2707 .Ic new-window
2709 .Ic new-session ,
2710 or later with
2711 .Ic rename-window ,
2712 or with a terminal escape sequence.
2713 It may be switched off globally with:
2714 .Bd -literal -offset indent
2715 set-window-option -g automatic-rename off
2718 .It Ic automatic-rename-format Ar format
2719 The format (see
2720 .Sx FORMATS )
2721 used when the
2722 .Ic automatic-rename
2723 option is enabled.
2725 .It Ic c0-change-interval Ar interval
2726 .It Ic c0-change-trigger Ar trigger
2727 These two options configure a simple form of rate limiting for a pane.
2730 sees more than
2731 .Ar trigger
2732 C0 sequences that modify the screen (for example, carriage returns, linefeeds
2733 or backspaces) in one millisecond, it will stop updating the pane immediately and
2734 instead redraw it entirely every
2735 .Ar interval
2736 milliseconds.
2737 This helps to prevent fast output (such as
2738 .Xr yes 1 )
2739 overwhelming the terminal.
2740 The default is a trigger of 250 and an interval of 100.
2741 A trigger of zero disables the rate limiting.
2743 .It Ic clock-mode-colour Ar colour
2744 Set clock colour.
2746 .It Xo Ic clock-mode-style
2747 .Op Ic 12 | 24
2749 Set clock hour format.
2751 .It Ic force-height Ar height
2752 .It Ic force-width Ar width
2753 Prevent
2755 from resizing a window to greater than
2756 .Ar width
2758 .Ar height .
2759 A value of zero restores the default unlimited setting.
2761 .It Ic main-pane-height Ar height
2762 .It Ic main-pane-width Ar width
2763 Set the width or height of the main (left or top) pane in the
2764 .Ic main-horizontal
2766 .Ic main-vertical
2767 layouts.
2769 .It Ic mode-attr Ar attributes
2770 Set window modes attributes.
2772 .It Ic mode-bg Ar colour
2773 Set window modes background colour.
2775 .It Ic mode-fg Ar colour
2776 Set window modes foreground colour.
2778 .It Xo Ic mode-keys
2779 .Op Ic vi | emacs
2781 Use vi or emacs-style key bindings in copy and choice modes.
2782 As with the
2783 .Ic status-keys
2784 option, the default is emacs, unless
2785 .Ev VISUAL
2787 .Ev EDITOR
2788 contains
2789 .Ql vi .
2791 .It Xo Ic mode-mouse
2792 .Op Ic on | off | copy-mode
2794 Mouse state in modes.
2795 If on, the mouse may be used to enter copy mode and copy a selection by
2796 dragging, to enter copy mode and scroll with the mouse wheel, or to select an
2797 option in choice mode.
2798 If set to
2799 .Em copy-mode ,
2800 the mouse behaves as set to on, but cannot be used to enter copy
2801 mode.
2803 .It Xo Ic monitor-activity
2804 .Op Ic on | off
2806 Monitor for activity in the window.
2807 Windows with activity are highlighted in the status line.
2809 .It Ic monitor-content Ar match-string
2810 Monitor content in the window.
2811 When
2812 .Xr fnmatch 3
2813 pattern
2814 .Ar match-string
2815 appears in the window, it is highlighted in the status line.
2817 .It Xo Ic monitor-silence
2818 .Op Ic interval
2820 Monitor for silence (no activity) in the window within
2821 .Ic interval
2822 seconds.
2823 Windows that have been silent for the interval are highlighted in the
2824 status line.
2825 An interval of zero disables the monitoring.
2827 .It Ic other-pane-height Ar height
2828 Set the height of the other panes (not the main pane) in the
2829 .Ic main-horizontal
2830 layout.
2831 If this option is set to 0 (the default), it will have no effect.
2832 If both the
2833 .Ic main-pane-height
2835 .Ic other-pane-height
2836 options are set, the main pane will grow taller to make the other panes the
2837 specified height, but will never shrink to do so.
2839 .It Ic other-pane-width Ar width
2840 Like
2841 .Ic other-pane-height ,
2842 but set the width of other panes in the
2843 .Ic main-vertical
2844 layout.
2846 .It Ic pane-base-index Ar index
2847 Like
2848 .Ic base-index ,
2849 but set the starting index for pane numbers.
2851 .It Xo Ic remain-on-exit
2852 .Op Ic on | off
2854 A window with this flag set is not destroyed when the program running in it
2855 exits.
2856 The window may be reactivated with the
2857 .Ic respawn-window
2858 command.
2860 .It Xo Ic synchronize-panes
2861 .Op Ic on | off
2863 Duplicate input to any pane to all other panes in the same window (only
2864 for panes that are not in any special mode).
2866 .It Xo Ic utf8
2867 .Op Ic on | off
2869 Instructs
2871 to expect UTF-8 sequences to appear in this window.
2873 .It Ic window-status-bell-attr Ar attributes
2874 Set status line attributes for windows which have a bell alert.
2876 .It Ic window-status-bell-bg Ar colour
2877 Set status line background colour for windows with a bell alert.
2879 .It Ic window-status-bell-fg Ar colour
2880 Set status line foreground colour for windows with a bell alert.
2882 .It Ic window-status-content-attr Ar attributes
2883 Set status line attributes for windows which have a content alert.
2885 .It Ic window-status-content-bg Ar colour
2886 Set status line background colour for windows with a content alert.
2888 .It Ic window-status-content-fg Ar colour
2889 Set status line foreground colour for windows with a content alert.
2891 .It Ic window-status-activity-attr Ar attributes
2892 Set status line attributes for windows which have an activity (or silence) alert.
2894 .It Ic window-status-activity-bg Ar colour
2895 Set status line background colour for windows with an activity alert.
2897 .It Ic window-status-activity-fg Ar colour
2898 Set status line foreground colour for windows with an activity alert.
2900 .It Ic window-status-attr Ar attributes
2901 Set status line attributes for a single window.
2903 .It Ic window-status-bg Ar colour
2904 Set status line background colour for a single window.
2906 .It Ic window-status-current-attr Ar attributes
2907 Set status line attributes for the currently active window.
2909 .It Ic window-status-current-bg Ar colour
2910 Set status line background colour for the currently active window.
2912 .It Ic window-status-current-fg Ar colour
2913 Set status line foreground colour for the currently active window.
2915 .It Ic window-status-current-format Ar string
2916 Like
2917 .Ar window-status-format ,
2918 but is the format used when the window is the current window.
2920 .It Ic window-status-last-attr Ar attributes
2921 Set status line attributes for the last active window.
2923 .It Ic window-status-last-bg Ar colour
2924 Set status line background colour for the last active window.
2926 .It Ic window-status-last-fg Ar colour
2927 Set status line foreground colour for the last active window.
2929 .It Ic window-status-fg Ar colour
2930 Set status line foreground colour for a single window.
2932 .It Ic window-status-format Ar string
2933 Set the format in which the window is displayed in the status line window list.
2934 See the
2935 .Ar status-left
2936 option for details of special character sequences available.
2937 The default is
2938 .Ql #I:#W#F .
2940 .It Ic window-status-separator Ar string
2941 Sets the separator drawn between windows in the status line.
2942 The default is a single space character.
2944 .It Xo Ic xterm-keys
2945 .Op Ic on | off
2947 If this option is set,
2949 will generate
2950 .Xr xterm 1 -style
2951 function key sequences; these have a number included to indicate modifiers such
2952 as Shift, Alt or Ctrl.
2953 The default is off.
2955 .It Xo Ic wrap-search
2956 .Op Ic on | off
2958 If this option is set, searches will wrap around the end of the pane contents.
2959 The default is on.
2961 .It Xo Ic show-options
2962 .Op Fl gqsvw
2963 .Op Fl t Ar target-session | Ar target-window
2964 .Op Ar option
2966 .D1 (alias: Ic show )
2967 Show the window options (or a single window option if given) with
2968 .Fl w
2969 (equivalent to
2970 .Ic show-window-options ) ,
2971 the server options with
2972 .Fl s ,
2973 otherwise the session options for
2974 .Ar target session .
2975 Global session or window options are listed if
2976 .Fl g
2977 is used.
2978 .Fl v
2979 shows only the option value, not the name.
2981 .Fl q
2982 is set, no error will be returned if
2983 .Ar option
2984 is unset.
2985 .It Xo Ic show-window-options
2986 .Op Fl gv
2987 .Op Fl t Ar target-window
2988 .Op Ar option
2990 .D1 (alias: Ic showw )
2991 List the window options or a single option for
2992 .Ar target-window ,
2993 or the global window options if
2994 .Fl g
2995 is used.
2996 .Fl v
2997 shows only the option value, not the name.
2999 .Sh FORMATS
3000 Certain commands accept the
3001 .Fl F
3002 flag with a
3003 .Ar format
3004 argument.
3005 This is a string which controls the output format of the command.
3006 Replacement variables are enclosed in
3007 .Ql #{
3009 .Ql } ,
3010 for example
3011 .Ql #{session_name} .
3012 Some variables also have an shorter alias such as
3013 .Ql #S .
3014 .Ql ##
3015 is replaced by a single
3016 .Ql # .
3017 Conditionals are also accepted by prefixing with
3018 .Ql \&?
3019 and separating two alternatives with a comma;
3020 if the specified variable exists and is not zero, the first alternative
3021 is chosen, otherwise the second is used.
3022 For example
3023 .Ql #{?session_attached,attached,not attached}
3024 will include the string
3025 .Ql attached
3026 if the session is attached and the string
3027 .Ql not attached
3028 if it is unattached.
3029 A limit may be placed on the length of the resultant string by prefixing it
3030 by an
3031 .Ql = ,
3032 a number and a colon, so
3033 .Ql #{=10:pane_title}
3034 will include at most the first 10 characters of the pane title.
3036 The following variables are available, where appropriate:
3037 .Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX"
3038 .It Sy "Variable name" Ta Sy "Alias" Ta Sy "Replaced with"
3039 .It Li "alternate_on" Ta "" Ta "If pane is in alternate screen"
3040 .It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen"
3041 .It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen"
3042 .It Li "buffer_sample" Ta "" Ta "First 50 characters from buffer"
3043 .It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes"
3044 .It Li "client_activity" Ta "" Ta "Integer time client last had activity"
3045 .It Li "client_activity_string" Ta "" Ta "String time client last had activity"
3046 .It Li "client_created" Ta "" Ta "Integer time client created"
3047 .It Li "client_created_string" Ta "" Ta "String time client created"
3048 .It Li "client_height" Ta "" Ta "Height of client"
3049 .It Li "client_last_session" Ta "" Ta "Name of the client's last session"
3050 .It Li "client_prefix" Ta "" Ta "1 if prefix key has been pressed"
3051 .It Li "client_readonly" Ta "" Ta "1 if client is readonly"
3052 .It Li "client_session" Ta "" Ta "Name of the client's session"
3053 .It Li "client_termname" Ta "" Ta "Terminal name of client"
3054 .It Li "client_tty" Ta "" Ta "Pseudo terminal of client"
3055 .It Li "client_utf8" Ta "" Ta "1 if client supports utf8"
3056 .It Li "client_width" Ta "" Ta "Width of client"
3057 .It Li "cursor_flag" Ta "" Ta "Pane cursor flag"
3058 .It Li "cursor_x" Ta "" Ta "Cursor X position in pane"
3059 .It Li "cursor_y" Ta "" Ta "Cursor Y position in pane"
3060 .It Li "history_bytes" Ta "" Ta "Number of bytes in window history"
3061 .It Li "history_limit" Ta "" Ta "Maximum window history lines"
3062 .It Li "history_size" Ta "" Ta "Size of history in bytes"
3063 .It Li "host" Ta "#H" Ta "Hostname of local host"
3064 .It Li "host_short" Ta "#h" Ta "Hostname of local host (no domain name)"
3065 .It Li "insert_flag" Ta "" Ta "Pane insert flag"
3066 .It Li "keypad_cursor_flag" Ta "" Ta "Pane keypad cursor flag"
3067 .It Li "keypad_flag" Ta "" Ta "Pane keypad flag"
3068 .It Li "line" Ta "" Ta "Line number in the list"
3069 .It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag"
3070 .It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag"
3071 .It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag"
3072 .It Li "mouse_utf8_flag" Ta "" Ta "Pane mouse UTF-8 flag"
3073 .It Li "pane_active" Ta "" Ta "1 if active pane"
3074 .It Li "pane_current_command" Ta "" Ta "Current command if available"
3075 .It Li "pane_dead" Ta "" Ta "1 if pane is dead"
3076 .It Li "pane_height" Ta "" Ta "Height of pane"
3077 .It Li "pane_id" Ta "#D" Ta "Unique pane ID"
3078 .It Li "pane_in_mode" Ta "" Ta "If pane is in a mode"
3079 .It Li "pane_synchronized" Ta "" Ta "If pane is synchronized"
3080 .It Li "pane_index" Ta "#P" Ta "Index of pane"
3081 .It Li "pane_pid" Ta "" Ta "PID of first process in pane"
3082 .It Li "pane_start_command" Ta "" Ta "Command pane started with"
3083 .It Li "pane_start_path" Ta "" Ta "Path pane started with"
3084 .It Li "pane_tabs" Ta "" Ta "Pane tab positions"
3085 .It Li "pane_title" Ta "#T" Ta "Title of pane"
3086 .It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane"
3087 .It Li "pane_width" Ta "" Ta "Width of pane"
3088 .It Li "saved_cursor_x" Ta "" Ta "Saved cursor X in pane"
3089 .It Li "saved_cursor_y" Ta "" Ta "Saved cursor Y in pane"
3090 .It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane"
3091 .It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane"
3092 .It Li "session_attached" Ta "" Ta "1 if session attached"
3093 .It Li "session_created" Ta "" Ta "Integer time session created"
3094 .It Li "session_created_string" Ta "" Ta "String time session created"
3095 .It Li "session_group" Ta "" Ta "Number of session group"
3096 .It Li "session_grouped" Ta "" Ta "1 if session in a group"
3097 .It Li "session_height" Ta "" Ta "Height of session"
3098 .It Li "session_id" Ta "" Ta "Unique session ID"
3099 .It Li "session_name" Ta "#S" Ta "Name of session"
3100 .It Li "session_width" Ta "" Ta "Width of session"
3101 .It Li "session_windows" Ta "" Ta "Number of windows in session"
3102 .It Li "window_active" Ta "" Ta "1 if window active"
3103 .It Li "window_activity_flag" Ta "" Ta "1 if window has activity alert"
3104 .It Li "window_bell_flag" Ta "" Ta "1 if window has bell"
3105 .It Li "window_content_flag" Ta "" Ta "1 if window has content alert"
3106 .It Li "window_find_matches" Ta "" Ta "Matched data from the find-window"
3107 .It Li "window_flags" Ta "#F" Ta "Window flags"
3108 .It Li "window_height" Ta "" Ta "Height of window"
3109 .It Li "window_id" Ta "" Ta "Unique window ID"
3110 .It Li "window_index" Ta "#I" Ta "Index of window"
3111 .It Li "window_layout" Ta "" Ta "Window layout description"
3112 .It Li "window_name" Ta "#W" Ta "Name of window"
3113 .It Li "window_panes" Ta "" Ta "Number of panes in window"
3114 .It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert"
3115 .It Li "window_width" Ta "" Ta "Width of window"
3116 .It Li "wrap_flag" Ta "" Ta "Pane wrap flag"
3118 .Sh NAMES AND TITLES
3120 distinguishes between names and titles.
3121 Windows and sessions have names, which may be used to specify them in targets
3122 and are displayed in the status line and various lists: the name is the
3124 identifier for a window or session.
3125 Only panes have titles.
3126 A pane's title is typically set by the program running inside the pane and
3127 is not modified by
3128 .Nm .
3129 It is the same mechanism used to set for example the
3130 .Xr xterm 1
3131 window title in an
3132 .Xr X 7
3133 window manager.
3134 Windows themselves do not have titles - a window's title is the title of its
3135 active pane.
3137 itself may set the title of the terminal in which the client is running, see
3139 .Ic set-titles
3140 option.
3142 A session's name is set with the
3143 .Ic new-session
3145 .Ic rename-session
3146 commands.
3147 A window's name is set with one of:
3148 .Bl -enum -width Ds
3150 A command argument (such as
3151 .Fl n
3153 .Ic new-window
3155 .Ic new-session ) .
3157 An escape sequence:
3158 .Bd -literal -offset indent
3159 $ printf '\e033kWINDOW_NAME\e033\e\e'
3162 Automatic renaming, which sets the name to the active command in the window's
3163 active pane.
3164 See the
3165 .Ic automatic-rename
3166 option.
3169 When a pane is first created, its title is the hostname.
3170 A pane's title can be set via the OSC title setting sequence, for example:
3171 .Bd -literal -offset indent
3172 $ printf '\e033]2;My Title\e033\e\e'
3174 .Sh ENVIRONMENT
3175 When the server is started,
3177 copies the environment into the
3178 .Em global environment ;
3179 in addition, each session has a
3180 .Em session environment .
3181 When a window is created, the session and global environments are merged.
3182 If a variable exists in both, the value from the session environment is used.
3183 The result is the initial environment passed to the new process.
3186 .Ic update-environment
3187 session option may be used to update the session environment from the client
3188 when a new session is created or an old reattached.
3190 also initialises the
3191 .Ev TMUX
3192 variable with some internal information to allow commands to be executed
3193 from inside, and the
3194 .Ev TERM
3195 variable with the correct terminal setting of
3196 .Ql screen .
3198 Commands to alter and view the environment are:
3199 .Bl -tag -width Ds
3200 .It Xo Ic set-environment
3201 .Op Fl gru
3202 .Op Fl t Ar target-session
3203 .Ar name Op Ar value
3205 .D1 (alias: Ic setenv )
3206 Set or unset an environment variable.
3208 .Fl g
3209 is used, the change is made in the global environment; otherwise, it is applied
3210 to the session environment for
3211 .Ar target-session .
3213 .Fl u
3214 flag unsets a variable.
3215 .Fl r
3216 indicates the variable is to be removed from the environment before starting a
3217 new process.
3218 .It Xo Ic show-environment
3219 .Op Fl g
3220 .Op Fl t Ar target-session
3221 .Op Ar variable
3223 .D1 (alias: Ic showenv )
3224 Display the environment for
3225 .Ar target-session
3226 or the global environment with
3227 .Fl g .
3229 .Ar variable
3230 is omitted, all variables are shown.
3231 Variables removed from the environment are prefixed with
3232 .Ql - .
3234 .Sh STATUS LINE
3236 includes an optional status line which is displayed in the bottom line of each
3237 terminal.
3238 By default, the status line is enabled (it may be disabled with the
3239 .Ic status
3240 session option) and contains, from left-to-right: the name of the current
3241 session in square brackets; the window list; the title of the active pane
3242 in double quotes; and the time and date.
3244 The status line is made of three parts: configurable left and right sections
3245 (which may contain dynamic content such as the time or output from a shell
3246 command, see the
3247 .Ic status-left ,
3248 .Ic status-left-length ,
3249 .Ic status-right ,
3251 .Ic status-right-length
3252 options below), and a central window list.
3253 By default, the window list shows the index, name and (if any) flag of the
3254 windows present in the current session in ascending numerical order.
3255 It may be customised with the
3256 .Ar window-status-format
3258 .Ar window-status-current-format
3259 options.
3260 The flag is one of the following symbols appended to the window name:
3261 .Bl -column "Symbol" "Meaning" -offset indent
3262 .It Sy "Symbol" Ta Sy "Meaning"
3263 .It Li "*" Ta "Denotes the current window."
3264 .It Li "-" Ta "Marks the last window (previously selected)."
3265 .It Li "#" Ta "Window is monitored and activity has been detected."
3266 .It Li "!" Ta "A bell has occurred in the window."
3267 .It Li "+" Ta "Window is monitored for content and it has appeared."
3268 .It Li "~" Ta "The window has been silent for the monitor-silence interval."
3269 .It Li "Z" Ta "The window's active pane is zoomed."
3272 The # symbol relates to the
3273 .Ic monitor-activity
3274 and + to the
3275 .Ic monitor-content
3276 window options.
3277 The window name is printed in inverted colours if an alert (bell, activity or
3278 content) is present.
3280 The colour and attributes of the status line may be configured, the entire
3281 status line using the
3282 .Ic status-attr ,
3283 .Ic status-fg
3285 .Ic status-bg
3286 session options and individual windows using the
3287 .Ic window-status-attr ,
3288 .Ic window-status-fg
3290 .Ic window-status-bg
3291 window options.
3293 The status line is automatically refreshed at interval if it has changed, the
3294 interval may be controlled with the
3295 .Ic status-interval
3296 session option.
3298 Commands related to the status line are as follows:
3299 .Bl -tag -width Ds
3300 .It Xo Ic command-prompt
3301 .Op Fl I Ar inputs
3302 .Op Fl p Ar prompts
3303 .Op Fl t Ar target-client
3304 .Op Ar template
3306 Open the command prompt in a client.
3307 This may be used from inside
3309 to execute commands interactively.
3312 .Ar template
3313 is specified, it is used as the command.
3314 If present,
3315 .Fl I
3316 is a comma-separated list of the initial text for each prompt.
3318 .Fl p
3319 is given,
3320 .Ar prompts
3321 is a comma-separated list of prompts which are displayed in order; otherwise
3322 a single prompt is displayed, constructed from
3323 .Ar template
3324 if it is present, or
3325 .Ql \&:
3326 if not.
3328 Both
3329 .Ar inputs
3331 .Ar prompts
3332 may contain the special character sequences supported by the
3333 .Ic status-left
3334 option.
3336 Before the command is executed, the first occurrence of the string
3337 .Ql %%
3338 and all occurrences of
3339 .Ql %1
3340 are replaced by the response to the first prompt, the second
3341 .Ql %%
3342 and all
3343 .Ql %2
3344 are replaced with the response to the second prompt, and so on for further
3345 prompts.
3346 Up to nine prompt responses may be replaced
3348 .Ql %1
3350 .Ql %9
3351 .Pc .
3352 .It Xo Ic confirm-before
3353 .Op Fl p Ar prompt
3354 .Op Fl t Ar target-client
3355 .Ar command
3357 .D1 (alias: Ic confirm )
3358 Ask for confirmation before executing
3359 .Ar command .
3361 .Fl p
3362 is given,
3363 .Ar prompt
3364 is the prompt to display; otherwise a prompt is constructed from
3365 .Ar command .
3366 It may contain the special character sequences supported by the
3367 .Ic status-left
3368 option.
3370 This command works only from inside
3371 .Nm .
3372 .It Xo Ic display-message
3373 .Op Fl p
3374 .Op Fl c Ar target-client
3375 .Op Fl t Ar target-pane
3376 .Op Ar message
3378 .D1 (alias: Ic display )
3379 Display a message.
3381 .Fl p
3382 is given, the output is printed to stdout, otherwise it is displayed in the
3383 .Ar target-client
3384 status line.
3385 The format of
3386 .Ar message
3387 is described in the
3388 .Sx FORMATS
3389 section; information is taken from
3390 .Ar target-pane
3392 .Fl t
3393 is given, otherwise the active pane for the session attached to
3394 .Ar target-client .
3396 .Sh BUFFERS
3398 maintains a stack of
3399 .Em paste buffers .
3400 Up to the value of the
3401 .Ic buffer-limit
3402 option are kept; when a new buffer is added, the buffer at the bottom of the
3403 stack is removed.
3404 Buffers may be added using
3405 .Ic copy-mode
3406 or the
3407 .Ic set-buffer
3408 command, and pasted into a window using the
3409 .Ic paste-buffer
3410 command.
3412 A configurable history buffer is also maintained for each window.
3413 By default, up to 2000 lines are kept; this can be altered with the
3414 .Ic history-limit
3415 option (see the
3416 .Ic set-option
3417 command above).
3419 The buffer commands are as follows:
3420 .Bl -tag -width Ds
3421 .It Xo
3422 .Ic choose-buffer
3423 .Op Fl F Ar format
3424 .Op Fl t Ar target-window
3425 .Op Ar template
3427 Put a window into buffer choice mode, where a buffer may be chosen
3428 interactively from a list.
3429 After a buffer is selected,
3430 .Ql %%
3431 is replaced by the buffer index in
3432 .Ar template
3433 and the result executed as a command.
3435 .Ar template
3436 is not given, "paste-buffer -b '%%'" is used.
3437 For the meaning of the
3438 .Fl F
3439 flag, see the
3440 .Sx FORMATS
3441 section.
3442 This command works only if at least one client is attached.
3443 .It Ic clear-history Op Fl t Ar target-pane
3444 .D1 (alias: Ic clearhist )
3445 Remove and free the history for the specified pane.
3446 .It Ic delete-buffer Op Fl b Ar buffer-index
3447 .D1 (alias: Ic deleteb )
3448 Delete the buffer at
3449 .Ar buffer-index ,
3450 or the top buffer if not specified.
3451 .It Xo Ic list-buffers
3452 .Op Fl F Ar format
3454 .D1 (alias: Ic lsb )
3455 List the global buffers.
3456 For the meaning of the
3457 .Fl F
3458 flag, see the
3459 .Sx FORMATS
3460 section.
3461 .It Xo Ic load-buffer
3462 .Op Fl b Ar buffer-index
3463 .Ar path
3465 .D1 (alias: Ic loadb )
3466 Load the contents of the specified paste buffer from
3467 .Ar path .
3468 .It Xo Ic paste-buffer
3469 .Op Fl dpr
3470 .Op Fl b Ar buffer-index
3471 .Op Fl s Ar separator
3472 .Op Fl t Ar target-pane
3474 .D1 (alias: Ic pasteb )
3475 Insert the contents of a paste buffer into the specified pane.
3476 If not specified, paste into the current one.
3477 With
3478 .Fl d ,
3479 also delete the paste buffer from the stack.
3480 When output, any linefeed (LF) characters in the paste buffer are replaced with
3481 a separator, by default carriage return (CR).
3482 A custom separator may be specified using the
3483 .Fl s
3484 flag.
3486 .Fl r
3487 flag means to do no replacement (equivalent to a separator of LF).
3489 .Fl p
3490 is specified, paste bracket control codes are inserted around the
3491 buffer if the application has requested bracketed paste mode.
3492 .It Xo Ic save-buffer
3493 .Op Fl a
3494 .Op Fl b Ar buffer-index
3495 .Ar path
3497 .D1 (alias: Ic saveb )
3498 Save the contents of the specified paste buffer to
3499 .Ar path .
3501 .Fl a
3502 option appends to rather than overwriting the file.
3503 .It Xo Ic set-buffer
3504 .Op Fl b Ar buffer-index
3505 .Ar data
3507 .D1 (alias: Ic setb )
3508 Set the contents of the specified buffer to
3509 .Ar data .
3510 .It Xo Ic show-buffer
3511 .Op Fl b Ar buffer-index
3513 .D1 (alias: Ic showb )
3514 Display the contents of the specified buffer.
3516 .Sh MISCELLANEOUS
3517 Miscellaneous commands are as follows:
3518 .Bl -tag -width Ds
3519 .It Ic clock-mode Op Fl t Ar target-pane
3520 Display a large clock.
3521 .It Xo Ic if-shell
3522 .Op Fl b
3523 .Op Fl t Ar target-pane
3524 .Ar shell-command command
3525 .Op Ar command
3527 .D1 (alias: Ic if )
3528 Execute the first
3529 .Ar command
3531 .Ar shell-command
3532 returns success or the second
3533 .Ar command
3534 otherwise.
3535 Before being executed, shell-command is expanded using the rules specified in the
3536 .Sx FORMATS
3537 section, including those relevant to
3538 .Ar target-pane .
3539 With
3540 .Fl b ,
3541 .Ar shell-command
3542 is run in the background.
3543 .It Ic lock-server
3544 .D1 (alias: Ic lock )
3545 Lock each client individually by running the command specified by the
3546 .Ic lock-command
3547 option.
3548 .It Xo Ic run-shell
3549 .Op Fl b
3550 .Op Fl t Ar target-pane
3551 .Ar shell-command
3553 .D1 (alias: Ic run )
3554 Execute
3555 .Ar shell-command
3556 in the background without creating a window.
3557 Before being executed, shell-command is expanded using the rules specified in
3559 .Sx FORMATS
3560 section.
3561 With
3562 .Fl b ,
3563 the command is run in the background.
3564 After it finishes, any output to stdout is displayed in copy mode (in the pane
3565 specified by
3566 .Fl t
3567 or the current pane if omitted).
3568 If the command doesn't return success, the exit status is also displayed.
3569 .It Ic server-info
3570 .D1 (alias: Ic info )
3571 Show server information and terminal details.
3572 .It Xo Ic wait-for
3573 .Op Fl L | S | U
3574 .Ar channel
3576 .D1 (alias: Ic wait )
3577 When used without options, prevents the client from exiting until woken using
3578 .Ic wait-for
3579 .Fl S
3580 with the same channel.
3581 When
3582 .Fl L
3583 is used, the channel is locked and any clients that try to lock the same
3584 channel are made to wait until the channel is unlocked with
3585 .Ic wait-for
3586 .Fl U .
3587 This command only works from outside
3588 .Nm .
3590 .Sh TERMINFO EXTENSIONS
3592 understands some extensions to
3593 .Xr terminfo 5 :
3594 .Bl -tag -width Ds
3595 .It Em Cs , Cr
3596 Set the cursor colour.
3597 The first takes a single string argument and is used to set the colour;
3598 the second takes no arguments and restores the default cursor colour.
3599 If set, a sequence such as this may be used
3600 to change the cursor colour from inside
3601 .Nm :
3602 .Bd -literal -offset indent
3603 $ printf '\e033]12;red\e033\e\e'
3605 .It Em \&Ss , Se
3606 Change the cursor style.
3607 If set, a sequence such as this may be used
3608 to change the cursor to an underline:
3609 .Bd -literal -offset indent
3610 $ printf '\e033[4 q'
3614 .Em Csr
3615 is set, it will be used to reset the cursor style instead
3617 .Em Cs .
3618 .It Em \&Ms
3619 This sequence can be used by
3621 to store the current buffer in the host terminal's selection (clipboard).
3622 See the
3623 .Em set-clipboard
3624 option above and the
3625 .Xr xterm 1
3626 man page.
3628 .Sh CONTROL MODE
3630 offers a textual interface called
3631 .Em control mode .
3632 This allows applications to communicate with
3634 using a simple text-only protocol.
3636 In control mode, a client sends
3638 commands or command sequences terminated by newlines on standard input.
3639 Each command will produce one block of output on standard output.
3640 An output block consists of a
3641 .Em %begin
3642 line followed by the output (which may be empty).
3643 The output block ends with a
3644 .Em %end
3646 .Em %error .
3647 .Em %begin
3648 and matching
3649 .Em %end
3651 .Em %error
3652 have two arguments: an integer time (as seconds from epoch) and command number.
3653 For example:
3654 .Bd -literal -offset indent
3655 %begin 1363006971 2
3656 0: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active)
3657 %end 1363006971 2
3660 In control mode,
3662 outputs notifications.
3663 A notification will never occur inside an output block.
3665 The following notifications are defined:
3666 .Bl -tag -width Ds
3667 .It Ic %exit Op Ar reason
3670 client is exiting immediately, either because it is not attached to any session
3671 or an error occurred.
3672 If present,
3673 .Ar reason
3674 describes why the client exited.
3675 .It Ic %layout-change Ar window-id Ar window-layout
3676 The layout of a window with ID
3677 .Ar window-id
3678 changed.
3679 The new layout is
3680 .Ar window-layout .
3681 .It Ic %output Ar pane-id Ar value
3682 A window pane produced output.
3683 .Ar value
3684 escapes non-printable characters and backslash as octal \\xxx.
3685 .It Ic %session-changed Ar session-id Ar name
3686 The client is now attached to the session with ID
3687 .Ar session-id ,
3688 which is named
3689 .Ar name .
3690 .It Ic %session-renamed Ar name
3691 The current session was renamed to
3692 .Ar name .
3693 .It Ic %sessions-changed
3694 A session was created or destroyed.
3695 .It Ic %unlinked-window-add Ar window-id
3696 The window with ID
3697 .Ar window-id
3698 was created but is not linked to the current session.
3699 .It Ic %window-add Ar window-id
3700 The window with ID
3701 .Ar window-id
3702 was linked to the current session.
3703 .It Ic %window-close Ar window-id
3704 The window with ID
3705 .Ar window-id
3706 closed.
3707 .It Ic %window-renamed Ar window-id Ar name
3708 The window with ID
3709 .Ar window-id
3710 was renamed to
3711 .Ar name .
3713 .Sh FILES
3714 .Bl -tag -width "/etc/tmux.confXXX" -compact
3715 .It Pa ~/.tmux.conf
3716 Default
3718 configuration file.
3719 .It Pa /etc/tmux.conf
3720 System-wide configuration file.
3722 .Sh EXAMPLES
3723 To create a new
3725 session running
3726 .Xr vi 1 :
3728 .Dl $ tmux new-session vi
3730 Most commands have a shorter form, known as an alias.
3731 For new-session, this is
3732 .Ic new :
3734 .Dl $ tmux new vi
3736 Alternatively, the shortest unambiguous form of a command is accepted.
3737 If there are several options, they are listed:
3738 .Bd -literal -offset indent
3739 $ tmux n
3740 ambiguous command: n, could be: new-session, new-window, next-window
3743 Within an active session, a new window may be created by typing
3744 .Ql C-b c
3745 (Ctrl
3746 followed by the
3747 .Ql b
3749 followed by the
3750 .Ql c
3751 key).
3753 Windows may be navigated with:
3754 .Ql C-b 0
3755 (to select window 0),
3756 .Ql C-b 1
3757 (to select window 1), and so on;
3758 .Ql C-b n
3759 to select the next window; and
3760 .Ql C-b p
3761 to select the previous window.
3763 A session may be detached using
3764 .Ql C-b d
3765 (or by an external event such as
3766 .Xr ssh 1
3767 disconnection) and reattached with:
3769 .Dl $ tmux attach-session
3771 Typing
3772 .Ql C-b \&?
3773 lists the current key bindings in the current window; up and down may be used
3774 to navigate the list or
3775 .Ql q
3776 to exit from it.
3778 Commands to be run when the
3780 server is started may be placed in the
3781 .Pa ~/.tmux.conf
3782 configuration file.
3783 Common examples include:
3785 Changing the default prefix key:
3786 .Bd -literal -offset indent
3787 set-option -g prefix C-a
3788 unbind-key C-b
3789 bind-key C-a send-prefix
3792 Turning the status line off, or changing its colour:
3793 .Bd -literal -offset indent
3794 set-option -g status off
3795 set-option -g status-bg blue
3798 Setting other options, such as the default command,
3799 or locking after 30 minutes of inactivity:
3800 .Bd -literal -offset indent
3801 set-option -g default-command "exec /bin/ksh"
3802 set-option -g lock-after-time 1800
3805 Creating new key bindings:
3806 .Bd -literal -offset indent
3807 bind-key b set-option status
3808 bind-key / command-prompt "split-window 'exec man %%'"
3809 bind-key S command-prompt "new-window -n %1 'ssh %1'"
3811 .Sh SEE ALSO
3812 .Xr pty 4
3813 .Sh AUTHORS
3814 .An Nicholas Marriott Aq Mt nicm@users.sourceforge.net