Alter how tmux handles the working directory to internally use file
[tmux-openbsd.git] / tmux.1
blobeb417da02cff22779f48e8ec00d5fb5a24cd54bd
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 "Paste buffer" Ta "p" Ta "C-y"
874 .It Li "Previous page" Ta "C-b" Ta "Page up"
875 .It Li "Previous word" Ta "b" Ta "M-b"
876 .It Li "Previous space" Ta "B" Ta ""
877 .It Li "Quit mode" Ta "q" Ta "Escape"
878 .It Li "Rectangle toggle" Ta "v" Ta "R"
879 .It Li "Scroll down" Ta "C-Down or C-e" Ta "C-Down"
880 .It Li "Scroll up" Ta "C-Up or C-y" Ta "C-Up"
881 .It Li "Search again" Ta "n" Ta "n"
882 .It Li "Search again in reverse" Ta "N" Ta "N"
883 .It Li "Search backward" Ta "?" Ta "C-r"
884 .It Li "Search forward" Ta "/" Ta "C-s"
885 .It Li "Start of line" Ta "0" Ta "C-a"
886 .It Li "Start selection" Ta "Space" Ta "C-Space"
887 .It Li "Top of history" Ta "g" Ta "M->"
888 .It Li "Transpose characters" Ta "" Ta "C-t"
891 The next and previous word keys use space and the
892 .Ql - ,
893 .Ql _
895 .Ql @
896 characters as word delimiters by default, but this can be adjusted by
897 setting the
898 .Em word-separators
899 session option.
900 Next word moves to the start of the next word, next word end to the end of the
901 next word and previous word to the start of the previous word.
902 The three next and previous space keys work similarly but use a space alone as
903 the word separator.
905 The jump commands enable quick movement within a line.
906 For instance, typing
907 .Ql f
908 followed by
909 .Ql /
910 will move the cursor to the next
911 .Ql /
912 character on the current line.
914 .Ql \&;
915 will then jump to the next occurrence.
917 Commands in copy mode may be prefaced by an optional repeat count.
918 With vi key bindings, a prefix is entered using the number keys; with
919 emacs, the Alt (meta) key and a number begins prefix entry.
920 For example, to move the cursor forward by ten words, use
921 .Ql M-1 0 M-f
922 in emacs mode, and
923 .Ql 10w
924 in vi.
926 When copying the selection, the repeat count indicates the buffer index to
927 replace, if used.
929 Mode key bindings are defined in a set of named tables:
930 .Em vi-edit
932 .Em emacs-edit
933 for keys used when line editing at the command prompt;
934 .Em vi-choice
936 .Em emacs-choice
937 for keys used when choosing from lists (such as produced by the
938 .Ic choose-window
939 command); and
940 .Em vi-copy
942 .Em emacs-copy
943 used in copy mode.
944 The tables may be viewed with the
945 .Ic list-keys
946 command and keys modified or removed with
947 .Ic bind-key
949 .Ic unbind-key .
950 One command accepts an argument,
951 .Ic copy-pipe ,
952 which copies the selection and pipes it to a command.
953 For example the following will bind
954 .Ql C-q
955 to copy the selection into
956 .Pa /tmp
957 as well as the paste buffer:
958 .Bd -literal -offset indent
959 bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"
962 The paste buffer key pastes the first line from the top paste buffer on the
963 stack.
965 The synopsis for the
966 .Ic copy-mode
967 command is:
968 .Bl -tag -width Ds
969 .It Xo Ic copy-mode
970 .Op Fl u
971 .Op Fl t Ar target-pane
973 Enter copy mode.
975 .Fl u
976 option scrolls one page up.
979 Each window displayed by
981 may be split into one or more
982 .Em panes ;
983 each pane takes up a certain area of the display and is a separate terminal.
984 A window may be split into panes using the
985 .Ic split-window
986 command.
987 Windows may be split horizontally (with the
988 .Fl h
989 flag) or vertically.
990 Panes may be resized with the
991 .Ic resize-pane
992 command (bound to
993 .Ql C-up ,
994 .Ql C-down
995 .Ql C-left
997 .Ql C-right
998 by default), the current pane may be changed with the
999 .Ic select-pane
1000 command and the
1001 .Ic rotate-window
1003 .Ic swap-pane
1004 commands may be used to swap panes without changing their position.
1005 Panes are numbered beginning from zero in the order they are created.
1007 A number of preset
1008 .Em layouts
1009 are available.
1010 These may be selected with the
1011 .Ic select-layout
1012 command or cycled with
1013 .Ic next-layout
1014 (bound to
1015 .Ql Space
1016 by default); once a layout is chosen, panes within it may be moved and resized
1017 as normal.
1019 The following layouts are supported:
1020 .Bl -tag -width Ds
1021 .It Ic even-horizontal
1022 Panes are spread out evenly from left to right across the window.
1023 .It Ic even-vertical
1024 Panes are spread evenly from top to bottom.
1025 .It Ic main-horizontal
1026 A large (main) pane is shown at the top of the window and the remaining panes
1027 are spread from left to right in the leftover space at the bottom.
1028 Use the
1029 .Em main-pane-height
1030 window option to specify the height of the top pane.
1031 .It Ic main-vertical
1032 Similar to
1033 .Ic main-horizontal
1034 but the large pane is placed on the left and the others spread from top to
1035 bottom along the right.
1036 See the
1037 .Em main-pane-width
1038 window option.
1039 .It Ic tiled
1040 Panes are spread out as evenly as possible over the window in both rows and
1041 columns.
1044 In addition,
1045 .Ic select-layout
1046 may be used to apply a previously used layout - the
1047 .Ic list-windows
1048 command displays the layout of each window in a form suitable for use with
1049 .Ic select-layout .
1050 For example:
1051 .Bd -literal -offset indent
1052 $ tmux list-windows
1053 0: ksh [159x48]
1054     layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0}
1055 $ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0}
1059 automatically adjusts the size of the layout for the current window size.
1060 Note that a layout cannot be applied to a window with more panes than that
1061 from which the layout was originally defined.
1063 Commands related to windows and panes are as follows:
1064 .Bl -tag -width Ds
1065 .It Xo Ic break-pane
1066 .Op Fl dP
1067 .Op Fl F Ar format
1068 .Op Fl t Ar target-pane
1070 .D1 (alias: Ic breakp )
1071 Break
1072 .Ar target-pane
1073 off from its containing window to make it the only pane in a new window.
1075 .Fl d
1076 is given, the new window does not become the current window.
1078 .Fl P
1079 option prints information about the new window after it has been created.
1080 By default, it uses the format
1081 .Ql #{session_name}:#{window_index}
1082 but a different format may be specified with
1083 .Fl F .
1084 .It Xo Ic capture-pane
1085 .Op Fl aepPq
1086 .Op Fl b Ar buffer-index
1087 .Op Fl E Ar end-line
1088 .Op Fl S Ar start-line
1089 .Op Fl t Ar target-pane
1091 .D1 (alias: Ic capturep )
1092 Capture the contents of a pane.
1094 .Fl p
1095 is given, the output goes to stdout, otherwise to the buffer specified with
1096 .Fl b
1097 or a new buffer if omitted.
1099 .Fl a
1100 is given, the alternate screen is used, and the history is not accessible.
1101 If no alternate screen exists, an error will be returned unless
1102 .Fl q
1103 is given.
1105 .Fl e
1106 is given, the output includes escape sequences for text and background
1107 attributes.
1108 .Fl C
1109 also escapes non-printable characters as octal \exxx.
1110 .Fl J
1111 joins wrapped lines and preserves trailing spaces at each line's end.
1112 .Fl P
1113 captures only any output that the pane has received that is the beginning of an
1114 as-yet incomplete escape sequence.
1116 .Fl S
1118 .Fl E
1119 specify the starting and ending line numbers, zero is the first line of the
1120 visible pane and negative numbers are lines in the history.
1121 The default is to capture only the visible contents of the pane.
1122 .It Xo
1123 .Ic choose-client
1124 .Op Fl F Ar format
1125 .Op Fl t Ar target-window
1126 .Op Ar template
1128 Put a window into client choice mode, allowing a client to be selected
1129 interactively from a list.
1130 After a client is chosen,
1131 .Ql %%
1132 is replaced by the client
1133 .Xr pty 4
1134 path in
1135 .Ar template
1136 and the result executed as a command.
1138 .Ar template
1139 is not given, "detach-client -t '%%'" is used.
1140 For the meaning of the
1141 .Fl F
1142 flag, see the
1143 .Sx FORMATS
1144 section.
1145 This command works only if at least one client is attached.
1146 .It Xo
1147 .Ic choose-list
1148 .Op Fl l Ar items
1149 .Op Fl t Ar target-window
1150 .Op Ar template
1152 Put a window into list choice mode, allowing
1153 .Ar items
1154 to be selected.
1155 .Ar items
1156 can be a comma-separated list to display more than one item.
1157 If an item has spaces, that entry must be quoted.
1158 After an item is chosen,
1159 .Ql %%
1160 is replaced by the chosen item in the
1161 .Ar template
1162 and the result is executed as a command.
1164 .Ar template
1165 is not given, "run-shell '%%'" is used.
1166 .Ar items
1167 also accepts format specifiers.
1168 For the meaning of this see the
1169 .Sx FORMATS
1170 section.
1171 This command works only if at least one client is attached.
1172 .It Xo
1173 .Ic choose-session
1174 .Op Fl F Ar format
1175 .Op Fl t Ar target-window
1176 .Op Ar template
1178 Put a window into session choice mode, where a session may be selected
1179 interactively from a list.
1180 When one is chosen,
1181 .Ql %%
1182 is replaced by the session name in
1183 .Ar template
1184 and the result executed as a command.
1186 .Ar template
1187 is not given, "switch-client -t '%%'" is used.
1188 For the meaning of the
1189 .Fl F
1190 flag, see the
1191 .Sx FORMATS
1192 section.
1193 This command works only if at least one client is attached.
1194 .It Xo
1195 .Ic choose-tree
1196 .Op Fl suw
1197 .Op Fl b Ar session-template
1198 .Op Fl c Ar window-template
1199 .Op Fl S Ar format
1200 .Op Fl W Ar format
1201 .Op Fl t Ar target-window
1203 Put a window into tree choice mode, where either sessions or windows may be
1204 selected interactively from a list.
1205 By default, windows belonging to a session are indented to show their
1206 relationship to a session.
1208 Note that the
1209 .Ic choose-window
1211 .Ic choose-session
1212 commands are wrappers around
1213 .Ic choose-tree .
1216 .Fl s
1217 is given, will show sessions.
1219 .Fl w
1220 is given, will show windows.
1222 By default, the tree is collapsed and sessions must be expanded to windows
1223 with the right arrow key.
1225 .Fl u
1226 option will start with all sessions expanded instead.
1229 .Fl b
1230 is given, will override the default session command.
1231 Note that
1232 .Ql %%
1233 can be used and will be replaced with the session name.
1234 The default option if not specified is "switch-client -t '%%'".
1236 .Fl c
1237 is given, will override the default window command.
1238 Like
1239 .Fl b ,
1240 .Ql %%
1241 can be used and will be replaced with the session name and window index.
1242 When a window is chosen from the list, the session command is run before the
1243 window command.
1246 .Fl S
1247 is given will display the specified format instead of the default session
1248 format.
1250 .Fl W
1251 is given will display the specified format instead of the default window
1252 format.
1253 For the meaning of the
1254 .Fl s
1256 .Fl w
1257 options, see the
1258 .Sx FORMATS
1259 section.
1261 This command works only if at least one client is attached.
1262 .It Xo
1263 .Ic choose-window
1264 .Op Fl F Ar format
1265 .Op Fl t Ar target-window
1266 .Op Ar template
1268 Put a window into window choice mode, where a window may be chosen
1269 interactively from a list.
1270 After a window is selected,
1271 .Ql %%
1272 is replaced by the session name and window index in
1273 .Ar template
1274 and the result executed as a command.
1276 .Ar template
1277 is not given, "select-window -t '%%'" is used.
1278 For the meaning of the
1279 .Fl F
1280 flag, see the
1281 .Sx FORMATS
1282 section.
1283 This command works only if at least one client is attached.
1284 .It Ic display-panes Op Fl t Ar target-client
1285 .D1 (alias: Ic displayp)
1286 Display a visible indicator of each pane shown by
1287 .Ar target-client .
1288 See the
1289 .Ic display-panes-time ,
1290 .Ic display-panes-colour ,
1292 .Ic display-panes-active-colour
1293 session options.
1294 While the indicator is on screen, a pane may be selected with the
1295 .Ql 0
1297 .Ql 9
1298 keys.
1299 .It Xo Ic find-window
1300 .Op Fl CNT
1301 .Op Fl F Ar format
1302 .Op Fl t Ar target-window
1303 .Ar match-string
1305 .D1 (alias: Ic findw )
1306 Search for the
1307 .Xr fnmatch 3
1308 pattern
1309 .Ar match-string
1310 in window names, titles, and visible content (but not history).
1311 The flags control matching behavior:
1312 .Fl C
1313 matches only visible window contents,
1314 .Fl N
1315 matches only the window name and
1316 .Fl T
1317 matches only the window title.
1318 The default is
1319 .Fl CNT .
1320 If only one window is matched, it'll be automatically selected,
1321 otherwise a choice list is shown.
1322 For the meaning of the
1323 .Fl F
1324 flag, see the
1325 .Sx FORMATS
1326 section.
1327 This command works only if at least one client is attached.
1328 .It Xo Ic join-pane
1329 .Op Fl bdhv
1330 .Oo Fl l
1331 .Ar size |
1332 .Fl p Ar percentage Oc
1333 .Op Fl s Ar src-pane
1334 .Op Fl t Ar dst-pane
1336 .D1 (alias: Ic joinp )
1337 Like
1338 .Ic split-window ,
1339 but instead of splitting
1340 .Ar dst-pane
1341 and creating a new pane, split it and move
1342 .Ar src-pane
1343 into the space.
1344 This can be used to reverse
1345 .Ic break-pane .
1347 .Fl b
1348 option causes
1349 .Ar src-pane
1350 to be joined to left of or above
1351 .Ar dst-pane .
1352 .It Xo Ic kill-pane
1353 .Op Fl a
1354 .Op Fl t Ar target-pane
1356 .D1 (alias: Ic killp )
1357 Destroy the given pane.
1358 If no panes remain in the containing window, it is also destroyed.
1360 .Fl a
1361 option kills all but the pane given with
1362 .Fl t .
1363 .It Xo Ic kill-window
1364 .Op Fl a
1365 .Op Fl t Ar target-window
1367 .D1 (alias: Ic killw )
1368 Kill the current window or the window at
1369 .Ar target-window ,
1370 removing it from any sessions to which it is linked.
1372 .Fl a
1373 option kills all but the window given with
1374 .Fl t .
1375 .It Ic last-pane Op Fl t Ar target-window
1376 .D1 (alias: Ic lastp )
1377 Select the last (previously selected) pane.
1378 .It Ic last-window Op Fl t Ar target-session
1379 .D1 (alias: Ic last )
1380 Select the last (previously selected) window.
1381 If no
1382 .Ar target-session
1383 is specified, select the last window of the current session.
1384 .It Xo Ic link-window
1385 .Op Fl dk
1386 .Op Fl s Ar src-window
1387 .Op Fl t Ar dst-window
1389 .D1 (alias: Ic linkw )
1390 Link the window at
1391 .Ar src-window
1392 to the specified
1393 .Ar dst-window .
1395 .Ar dst-window
1396 is specified and no such window exists, the
1397 .Ar src-window
1398 is linked there.
1400 .Fl k
1401 is given and
1402 .Ar dst-window
1403 exists, it is killed, otherwise an error is generated.
1405 .Fl d
1406 is given, the newly linked window is not selected.
1407 .It Xo Ic list-panes
1408 .Op Fl as
1409 .Op Fl F Ar format
1410 .Op Fl t Ar target
1412 .D1 (alias: Ic lsp )
1414 .Fl a
1415 is given,
1416 .Ar target
1417 is ignored and all panes on the server are listed.
1419 .Fl s
1420 is given,
1421 .Ar target
1422 is a session (or the current session).
1423 If neither is given,
1424 .Ar target
1425 is a window (or the current window).
1426 For the meaning of the
1427 .Fl F
1428 flag, see the
1429 .Sx FORMATS
1430 section.
1431 .It Xo Ic list-windows
1432 .Op Fl a
1433 .Op Fl F Ar format
1434 .Op Fl t Ar target-session
1436 .D1 (alias: Ic lsw )
1438 .Fl a
1439 is given, list all windows on the server.
1440 Otherwise, list windows in the current session or in
1441 .Ar target-session .
1442 For the meaning of the
1443 .Fl F
1444 flag, see the
1445 .Sx FORMATS
1446 section.
1447 .It Xo Ic move-pane
1448 .Op Fl bdhv
1449 .Oo Fl l
1450 .Ar size |
1451 .Fl p Ar percentage Oc
1452 .Op Fl s Ar src-pane
1453 .Op Fl t Ar dst-pane
1455 .D1 (alias: Ic movep )
1456 Like
1457 .Ic join-pane ,
1459 .Ar src-pane
1461 .Ar dst-pane
1462 may belong to the same window.
1463 .It Xo Ic move-window
1464 .Op Fl rdk
1465 .Op Fl s Ar src-window
1466 .Op Fl t Ar dst-window
1468 .D1 (alias: Ic movew )
1469 This is similar to
1470 .Ic link-window ,
1471 except the window at
1472 .Ar src-window
1473 is moved to
1474 .Ar dst-window .
1475 With
1476 .Fl r ,
1477 all windows in the session are renumbered in sequential order, respecting
1479 .Ic base-index
1480 option.
1481 .It Xo Ic new-window
1482 .Op Fl adkP
1483 .Op Fl c Ar start-directory
1484 .Op Fl F Ar format
1485 .Op Fl n Ar window-name
1486 .Op Fl t Ar target-window
1487 .Op Ar shell-command
1489 .D1 (alias: Ic neww )
1490 Create a new window.
1491 With
1492 .Fl a ,
1493 the new window is inserted at the next index up from the specified
1494 .Ar target-window ,
1495 moving windows up if necessary,
1496 otherwise
1497 .Ar target-window
1498 is the new window location.
1501 .Fl d
1502 is given, the session does not make the new window the current window.
1503 .Ar target-window
1504 represents the window to be created; if the target already exists an error is
1505 shown, unless the
1506 .Fl k
1507 flag is used, in which case it is destroyed.
1508 .Ar shell-command
1509 is the command to execute.
1511 .Ar shell-command
1512 is not specified, the value of the
1513 .Ic default-command
1514 option is used.
1515 .Fl c
1516 specifies the working directory in which the new window is created.
1518 When the shell command completes, the window closes.
1519 See the
1520 .Ic remain-on-exit
1521 option to change this behaviour.
1524 .Ev TERM
1525 environment variable must be set to
1526 .Dq screen
1527 for all programs running
1528 .Em inside
1529 .Nm .
1530 New windows will automatically have
1531 .Dq TERM=screen
1532 added to their environment, but care must be taken not to reset this in shell
1533 start-up files.
1536 .Fl P
1537 option prints information about the new window after it has been created.
1538 By default, it uses the format
1539 .Ql #{session_name}:#{window_index}
1540 but a different format may be specified with
1541 .Fl F .
1542 .It Ic next-layout Op Fl t Ar target-window
1543 .D1 (alias: Ic nextl )
1544 Move a window to the next layout and rearrange the panes to fit.
1545 .It Xo Ic next-window
1546 .Op Fl a
1547 .Op Fl t Ar target-session
1549 .D1 (alias: Ic next )
1550 Move to the next window in the session.
1552 .Fl a
1553 is used, move to the next window with an alert.
1554 .It Xo Ic pipe-pane
1555 .Op Fl o
1556 .Op Fl t Ar target-pane
1557 .Op Ar shell-command
1559 .D1 (alias: Ic pipep )
1560 Pipe any output sent by the program in
1561 .Ar target-pane
1562 to a shell command.
1563 A pane may only be piped to one command at a time, any existing pipe is
1564 closed before
1565 .Ar shell-command
1566 is executed.
1568 .Ar shell-command
1569 string may contain the special character sequences supported by the
1570 .Ic status-left
1571 option.
1572 If no
1573 .Ar shell-command
1574 is given, the current pipe (if any) is closed.
1577 .Fl o
1578 option only opens a new pipe if no previous pipe exists, allowing a pipe to
1579 be toggled with a single key, for example:
1580 .Bd -literal -offset indent
1581 bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'
1583 .It Xo Ic previous-layout
1584 .Op Fl t Ar target-window
1586 .D1 (alias: Ic prevl )
1587 Move to the previous layout in the session.
1588 .It Xo Ic previous-window
1589 .Op Fl a
1590 .Op Fl t Ar target-session
1592 .D1 (alias: Ic prev )
1593 Move to the previous window in the session.
1594 With
1595 .Fl a ,
1596 move to the previous window with an alert.
1597 .It Xo Ic rename-window
1598 .Op Fl t Ar target-window
1599 .Ar new-name
1601 .D1 (alias: Ic renamew )
1602 Rename the current window, or the window at
1603 .Ar target-window
1604 if specified, to
1605 .Ar new-name .
1606 .It Xo Ic resize-pane
1607 .Op Fl DLRUZ
1608 .Op Fl t Ar target-pane
1609 .Op Fl x Ar width
1610 .Op Fl y Ar height
1611 .Op Ar adjustment
1613 .D1 (alias: Ic resizep )
1614 Resize a pane, up, down, left or right by
1615 .Ar adjustment
1616 with
1617 .Fl U ,
1618 .Fl D ,
1619 .Fl L
1621 .Fl R ,
1623 to an absolute size
1624 with
1625 .Fl x
1627 .Fl y .
1629 .Ar adjustment
1630 is given in lines or cells (the default is 1).
1632 With
1633 .Fl Z ,
1634 the active pane is toggled between zoomed (occupying the whole of the window)
1635 and unzoomed (its normal position in the layout).
1636 .It Xo Ic respawn-pane
1637 .Op Fl k
1638 .Op Fl t Ar target-pane
1639 .Op Ar shell-command
1641 .D1 (alias: Ic respawnp )
1642 Reactivate a pane in which the command has exited (see the
1643 .Ic remain-on-exit
1644 window option).
1646 .Ar shell-command
1647 is not given, the command used when the pane was created is executed.
1648 The pane must be already inactive, unless
1649 .Fl k
1650 is given, in which case any existing command is killed.
1651 .It Xo Ic respawn-window
1652 .Op Fl k
1653 .Op Fl t Ar target-window
1654 .Op Ar shell-command
1656 .D1 (alias: Ic respawnw )
1657 Reactivate a window in which the command has exited (see the
1658 .Ic remain-on-exit
1659 window option).
1661 .Ar shell-command
1662 is not given, the command used when the window was created is executed.
1663 The window must be already inactive, unless
1664 .Fl k
1665 is given, in which case any existing command is killed.
1666 .It Xo Ic rotate-window
1667 .Op Fl DU
1668 .Op Fl t Ar target-window
1670 .D1 (alias: Ic rotatew )
1671 Rotate the positions of the panes within a window, either upward (numerically
1672 lower) with
1673 .Fl U
1674 or downward (numerically higher).
1675 .It Xo Ic select-layout
1676 .Op Fl np
1677 .Op Fl t Ar target-window
1678 .Op Ar layout-name
1680 .D1 (alias: Ic selectl )
1681 Choose a specific layout for a window.
1683 .Ar layout-name
1684 is not given, the last preset layout used (if any) is reapplied.
1685 .Fl n
1687 .Fl p
1688 are equivalent to the
1689 .Ic next-layout
1691 .Ic previous-layout
1692 commands.
1693 .It Xo Ic select-pane
1694 .Op Fl lDLRU
1695 .Op Fl t Ar target-pane
1697 .D1 (alias: Ic selectp )
1698 Make pane
1699 .Ar target-pane
1700 the active pane in window
1701 .Ar target-window .
1702 If one of
1703 .Fl D ,
1704 .Fl L ,
1705 .Fl R ,
1707 .Fl U
1708 is used, respectively the pane below, to the left, to the right, or above the
1709 target pane is used.
1710 .Fl l
1711 is the same as using the
1712 .Ic last-pane
1713 command.
1714 .It Xo Ic select-window
1715 .Op Fl lnpT
1716 .Op Fl t Ar target-window
1718 .D1 (alias: Ic selectw )
1719 Select the window at
1720 .Ar target-window .
1721 .Fl l ,
1722 .Fl n
1724 .Fl p
1725 are equivalent to the
1726 .Ic last-window ,
1727 .Ic next-window
1729 .Ic previous-window
1730 commands.
1732 .Fl T
1733 is given and the selected window is already the current window,
1734 the command behaves like
1735 .Ic last-window .
1736 .It Xo Ic split-window
1737 .Op Fl dhvP
1738 .Op Fl c Ar start-directory
1739 .Oo Fl l
1740 .Ar size |
1741 .Fl p Ar percentage Oc
1742 .Op Fl t Ar target-pane
1743 .Op Ar shell-command
1744 .Op Fl F Ar format
1746 .D1 (alias: Ic splitw )
1747 Create a new pane by splitting
1748 .Ar target-pane :
1749 .Fl h
1750 does a horizontal split and
1751 .Fl v
1752 a vertical split; if neither is specified,
1753 .Fl v
1754 is assumed.
1756 .Fl l
1758 .Fl p
1759 options specify the size of the new pane in lines (for vertical split) or in
1760 cells (for horizontal split), or as a percentage, respectively.
1761 All other options have the same meaning as for the
1762 .Ic new-window
1763 command.
1764 .It Xo Ic swap-pane
1765 .Op Fl dDU
1766 .Op Fl s Ar src-pane
1767 .Op Fl t Ar dst-pane
1769 .D1 (alias: Ic swapp )
1770 Swap two panes.
1772 .Fl U
1773 is used and no source pane is specified with
1774 .Fl s ,
1775 .Ar dst-pane
1776 is swapped with the previous pane (before it numerically);
1777 .Fl D
1778 swaps with the next pane (after it numerically).
1779 .Fl d
1780 instructs
1782 not to change the active pane.
1783 .It Xo Ic swap-window
1784 .Op Fl d
1785 .Op Fl s Ar src-window
1786 .Op Fl t Ar dst-window
1788 .D1 (alias: Ic swapw )
1789 This is similar to
1790 .Ic link-window ,
1791 except the source and destination windows are swapped.
1792 It is an error if no window exists at
1793 .Ar src-window .
1794 .It Xo Ic unlink-window
1795 .Op Fl k
1796 .Op Fl t Ar target-window
1798 .D1 (alias: Ic unlinkw )
1799 Unlink
1800 .Ar target-window .
1801 Unless
1802 .Fl k
1803 is given, a window may be unlinked only if it is linked to multiple sessions -
1804 windows may not be linked to no sessions;
1806 .Fl k
1807 is specified and the window is linked to only one session, it is unlinked and
1808 destroyed.
1810 .Sh KEY BINDINGS
1812 allows a command to be bound to most keys, with or without a prefix key.
1813 When specifying keys, most represent themselves (for example
1814 .Ql A
1816 .Ql Z ) .
1817 Ctrl keys may be prefixed with
1818 .Ql C-
1820 .Ql ^ ,
1821 and Alt (meta) with
1822 .Ql M- .
1823 In addition, the following special key names are accepted:
1824 .Em Up ,
1825 .Em Down ,
1826 .Em Left ,
1827 .Em Right ,
1828 .Em BSpace ,
1829 .Em BTab ,
1830 .Em DC
1831 (Delete),
1832 .Em End ,
1833 .Em Enter ,
1834 .Em Escape ,
1835 .Em F1
1837 .Em F20 ,
1838 .Em Home ,
1839 .Em IC
1840 (Insert),
1841 .Em NPage/PageDown/PgDn ,
1842 .Em PPage/PageUp/PgUp ,
1843 .Em Space ,
1845 .Em Tab .
1846 Note that to bind the
1847 .Ql \&"
1849 .Ql '
1850 keys, quotation marks are necessary, for example:
1851 .Bd -literal -offset indent
1852 bind-key '"' split-window
1853 bind-key "'" new-window
1856 Commands related to key bindings are as follows:
1857 .Bl -tag -width Ds
1858 .It Xo Ic bind-key
1859 .Op Fl cnr
1860 .Op Fl t Ar key-table
1861 .Ar key Ar command Op Ar arguments
1863 .D1 (alias: Ic bind )
1864 Bind key
1865 .Ar key
1867 .Ar command .
1868 By default (without
1869 .Fl t )
1870 the primary key bindings are modified (those normally activated with the prefix
1871 key); in this case, if
1872 .Fl n
1873 is specified, it is not necessary to use the prefix key,
1874 .Ar command
1875 is bound to
1876 .Ar key
1877 alone.
1879 .Fl r
1880 flag indicates this key may repeat, see the
1881 .Ic repeat-time
1882 option.
1885 .Fl t
1886 is present,
1887 .Ar key
1888 is bound in
1889 .Ar key-table :
1890 the binding for command mode with
1891 .Fl c
1892 or for normal mode without.
1893 To view the default bindings and possible commands, see the
1894 .Ic list-keys
1895 command.
1896 .It Ic list-keys Op Fl t Ar key-table
1897 .D1 (alias: Ic lsk )
1898 List all key bindings.
1899 Without
1900 .Fl t
1901 the primary key bindings - those executed when preceded by the prefix key -
1902 are printed.
1904 With
1905 .Fl t ,
1906 the key bindings in
1907 .Ar key-table
1908 are listed; this may be one of:
1909 .Em vi-edit ,
1910 .Em emacs-edit ,
1911 .Em vi-choice ,
1912 .Em emacs-choice ,
1913 .Em vi-copy
1915 .Em emacs-copy .
1916 .It Xo Ic send-keys
1917 .Op Fl lR
1918 .Op Fl t Ar target-pane
1919 .Ar key Ar ...
1921 .D1 (alias: Ic send )
1922 Send a key or keys to a window.
1923 Each argument
1924 .Ar key
1925 is the name of the key (such as
1926 .Ql C-a
1928 .Ql npage
1929 ) to send; if the string is not recognised as a key, it is sent as a series of
1930 characters.
1932 .Fl l
1933 flag disables key name lookup and sends the keys literally.
1934 All arguments are sent sequentially from first to last.
1936 .Fl R
1937 flag causes the terminal state to be reset.
1938 .It Xo Ic send-prefix
1939 .Op Fl 2
1940 .Op Fl t Ar target-pane
1942 Send the prefix key, or with
1943 .Fl 2
1944 the secondary prefix key, to a window as if it was pressed.
1945 .It Xo Ic unbind-key
1946 .Op Fl acn
1947 .Op Fl t Ar key-table
1948 .Ar key
1950 .D1 (alias: Ic unbind )
1951 Unbind the command bound to
1952 .Ar key .
1953 Without
1954 .Fl t
1955 the primary key bindings are modified; in this case, if
1956 .Fl n
1957 is specified, the command bound to
1958 .Ar key
1959 without a prefix (if any) is removed.
1961 .Fl a
1962 is present, all key bindings are removed.
1965 .Fl t
1966 is present,
1967 .Ar key
1969 .Ar key-table
1970 is unbound: the binding for command mode with
1971 .Fl c
1972 or for normal mode without.
1974 .Sh OPTIONS
1975 The appearance and behaviour of
1977 may be modified by changing the value of various options.
1978 There are three types of option:
1979 .Em server options ,
1980 .Em session options
1982 .Em window options .
1986 server has a set of global options which do not apply to any particular
1987 window or session.
1988 These are altered with the
1989 .Ic set-option
1990 .Fl s
1991 command, or displayed with the
1992 .Ic show-options
1993 .Fl s
1994 command.
1996 In addition, each individual session may have a set of session options, and
1997 there is a separate set of global session options.
1998 Sessions which do not have a particular option configured inherit the value
1999 from the global session options.
2000 Session options are set or unset with the
2001 .Ic set-option
2002 command and may be listed with the
2003 .Ic show-options
2004 command.
2005 The available server and session options are listed under the
2006 .Ic set-option
2007 command.
2009 Similarly, a set of window options is attached to each window, and there is
2010 a set of global window options from which any unset options are inherited.
2011 Window options are altered with the
2012 .Ic set-window-option
2013 command and can be listed with the
2014 .Ic show-window-options
2015 command.
2016 All window options are documented with the
2017 .Ic set-window-option
2018 command.
2021 also supports user options which are prefixed with a
2022 .Ql \&@ .
2023 User options may have any name, so long as they are prefixed with
2024 .Ql \&@ ,
2025 and be set to any string.
2026 For example
2027 .Bd -literal -offset indent
2028 $ tmux setw -q @foo "abc123"
2029 $ tmux showw -v @foo
2030 abc123
2033 Commands which set options are as follows:
2034 .Bl -tag -width Ds
2035 .It Xo Ic set-option
2036 .Op Fl agoqsuw
2037 .Op Fl t Ar target-session | Ar target-window
2038 .Ar option Ar value
2040 .D1 (alias: Ic set )
2041 Set a window option with
2042 .Fl w
2043 (equivalent to the
2044 .Ic set-window-option
2045 command),
2046 a server option with
2047 .Fl s ,
2048 otherwise a session option.
2051 .Fl g
2052 is specified, the global session or window option is set.
2053 With
2054 .Fl a ,
2055 and if the option expects a string,
2056 .Ar value
2057 is appended to the existing setting.
2059 .Fl u
2060 flag unsets an option, so a session inherits the option from the global
2061 options.
2062 It is not possible to unset a global option.
2065 .Fl o
2066 flag prevents setting an option that is already set.
2069 .Fl q
2070 flag suppresses the informational message (as if the
2071 .Ic quiet
2072 server option was set).
2074 Available window options are listed under
2075 .Ic set-window-option .
2077 .Ar value
2078 depends on the option and may be a number, a string, or a flag (on, off, or
2079 omitted to toggle).
2081 Available server options are:
2082 .Bl -tag -width Ds
2083 .It Ic buffer-limit Ar number
2084 Set the number of buffers; as new buffers are added to the top of the stack,
2085 old ones are removed from the bottom if necessary to maintain this maximum
2086 length.
2087 .It Ic escape-time Ar time
2088 Set the time in milliseconds for which
2090 waits after an escape is input to determine if it is part of a function or meta
2091 key sequences.
2092 The default is 500 milliseconds.
2093 .It Xo Ic exit-unattached
2094 .Op Ic on | off
2096 If enabled, the server will exit when there are no attached clients.
2097 .It Xo Ic focus-events
2098 .Op Ic on | off
2100 When enabled, focus events are requested from the terminal if supported and
2101 passed through to applications running in
2102 .Nm .
2103 Attached clients should be detached and attached again after changing this
2104 option.
2105 .It Xo Ic quiet
2106 .Op Ic on | off
2108 Enable or disable the display of various informational messages (see also the
2109 .Fl q
2110 command line flag).
2111 .It Xo Ic set-clipboard
2112 .Op Ic on | off
2114 Attempt to set the terminal clipboard content using the
2115 \ee]52;...\e007
2116 .Xr xterm 1
2117 escape sequences.
2118 This option is on by default if there is an
2119 .Em \&Ms
2120 entry in the
2121 .Xr terminfo 5
2122 description for the client terminal.
2123 Note that this feature needs to be enabled in
2124 .Xr xterm 1
2125 by setting the resource:
2126 .Bd -literal -offset indent
2127 disallowedWindowOps: 20,21,SetXprop
2130 Or changing this property from the
2131 .Xr xterm 1
2132 interactive menu when required.
2135 Available session options are:
2136 .Bl -tag -width Ds
2137 .It Ic assume-paste-time Ar milliseconds
2138 If keys are entered faster than one in
2139 .Ar milliseconds ,
2140 they are assumed to have been pasted rather than typed and
2142 key bindings are not processed.
2143 The default is one millisecond and zero disables.
2144 .It Ic base-index Ar index
2145 Set the base index from which an unused index should be searched when a new
2146 window is created.
2147 The default is zero.
2148 .It Xo Ic bell-action
2149 .Op Ic any | none | current
2151 Set action on window bell.
2152 .Ic any
2153 means a bell in any window linked to a session causes a bell in the current
2154 window of that session,
2155 .Ic none
2156 means all bells are ignored and
2157 .Ic current
2158 means only bells in windows other than the current window are ignored.
2159 .It Xo Ic bell-on-alert
2160 .Op Ic on | off
2162 If on, ring the terminal bell when an alert
2163 occurs.
2164 .It Ic default-command Ar shell-command
2165 Set the command used for new windows (if not specified when the window is
2166 created) to
2167 .Ar shell-command ,
2168 which may be any
2169 .Xr sh 1
2170 command.
2171 The default is an empty string, which instructs
2173 to create a login shell using the value of the
2174 .Ic default-shell
2175 option.
2176 .It Ic default-shell Ar path
2177 Specify the default shell.
2178 This is used as the login shell for new windows when the
2179 .Ic default-command
2180 option is set to empty, and must be the full path of the executable.
2181 When started
2183 tries to set a default value from the first suitable of the
2184 .Ev SHELL
2185 environment variable, the shell returned by
2186 .Xr getpwuid 3 ,
2188 .Pa /bin/sh .
2189 This option should be configured when
2191 is used as a login shell.
2192 .It Ic default-terminal Ar terminal
2193 Set the default terminal for new windows created in this session - the
2194 default value of the
2195 .Ev TERM
2196 environment variable.
2199 to work correctly, this
2200 .Em must
2201 be set to
2202 .Ql screen
2203 or a derivative of it.
2204 .It Xo Ic destroy-unattached
2205 .Op Ic on | off
2207 If enabled and the session is no longer attached to any clients, it is
2208 destroyed.
2209 .It Xo Ic detach-on-destroy
2210 .Op Ic on | off
2212 If on (the default), the client is detached when the session it is attached to
2213 is destroyed.
2214 If off, the client is switched to the most recently active of the remaining
2215 sessions.
2216 .It Ic display-panes-active-colour Ar colour
2217 Set the colour used by the
2218 .Ic display-panes
2219 command to show the indicator for the active pane.
2220 .It Ic display-panes-colour Ar colour
2221 Set the colour used by the
2222 .Ic display-panes
2223 command to show the indicators for inactive panes.
2224 .It Ic display-panes-time Ar time
2225 Set the time in milliseconds for which the indicators shown by the
2226 .Ic display-panes
2227 command appear.
2228 .It Ic display-time Ar time
2229 Set the amount of time for which status line messages and other on-screen
2230 indicators are displayed.
2231 .Ar time
2232 is in milliseconds.
2233 .It Ic history-limit Ar lines
2234 Set the maximum number of lines held in window history.
2235 This setting applies only to new windows - existing window histories are not
2236 resized and retain the limit at the point they were created.
2237 .It Ic lock-after-time Ar number
2238 Lock the session (like the
2239 .Ic lock-session
2240 command) after
2241 .Ar number
2242 seconds of inactivity, or the entire server (all sessions) if the
2243 .Ic lock-server
2244 option is set.
2245 The default is not to lock (set to 0).
2246 .It Ic lock-command Ar shell-command
2247 Command to run when locking each client.
2248 The default is to run
2249 .Xr lock 1
2250 with
2251 .Fl np .
2252 .It Xo Ic lock-server
2253 .Op Ic on | off
2255 If this option is
2256 .Ic on
2257 (the default),
2258 instead of each session locking individually as each has been
2259 idle for
2260 .Ic lock-after-time ,
2261 the entire server will lock after
2262 .Em all
2263 sessions would have locked.
2264 This has no effect as a session option; it must be set as a global option.
2265 .It Ic message-attr Ar attributes
2266 Set status line message attributes, where
2267 .Ar attributes
2268 is either
2269 .Ic none
2270 or a comma-delimited list of one or more of:
2271 .Ic bright
2273 .Ic bold ) ,
2274 .Ic dim ,
2275 .Ic underscore ,
2276 .Ic blink ,
2277 .Ic reverse ,
2278 .Ic hidden ,
2280 .Ic italics .
2281 .It Ic message-bg Ar colour
2282 Set status line message background colour, where
2283 .Ar colour
2284 is one of:
2285 .Ic black ,
2286 .Ic red ,
2287 .Ic green ,
2288 .Ic yellow ,
2289 .Ic blue ,
2290 .Ic magenta ,
2291 .Ic cyan ,
2292 .Ic white ,
2293 aixterm bright variants (if supported:
2294 .Ic brightred ,
2295 .Ic brightgreen ,
2296 and so on),
2297 .Ic colour0
2299 .Ic colour255
2300 from the 256-colour set,
2301 .Ic default ,
2302 or a hexadecimal RGB string such as
2303 .Ql #ffffff ,
2304 which chooses the closest match from the default 256-colour set.
2305 .It Ic message-command-attr Ar attributes
2306 Set status line message attributes when in command mode.
2307 .It Ic message-command-bg Ar colour
2308 Set status line message background colour when in command mode.
2309 .It Ic message-command-fg Ar colour
2310 Set status line message foreground colour when in command mode.
2311 .It Ic message-fg Ar colour
2312 Set status line message foreground colour.
2313 .It Ic message-limit Ar number
2314 Set the number of error or information messages to save in the message log for
2315 each client.
2316 The default is 20.
2317 .It Xo Ic mouse-resize-pane
2318 .Op Ic on | off
2320 If on,
2322 captures the mouse and allows panes to be resized by dragging on their borders.
2323 .It Xo Ic mouse-select-pane
2324 .Op Ic on | off
2326 If on,
2328 captures the mouse and when a window is split into multiple panes the mouse may
2329 be used to select the current pane.
2330 The mouse click is also passed through to the application as normal.
2331 .It Xo Ic mouse-select-window
2332 .Op Ic on | off
2334 If on, clicking the mouse on a window name in the status line will select that
2335 window.
2336 .It Xo Ic mouse-utf8
2337 .Op Ic on | off
2339 If enabled, request mouse input as UTF-8 on UTF-8 terminals.
2340 .It Ic pane-active-border-bg Ar colour
2341 .It Ic pane-active-border-fg Ar colour
2342 Set the pane border colour for the currently active pane.
2343 .It Ic pane-border-bg Ar colour
2344 .It Ic pane-border-fg Ar colour
2345 Set the pane border colour for panes aside from the active pane.
2346 .It Ic prefix Ar key
2347 Set the key accepted as a prefix key.
2348 .It Ic prefix2 Ar key
2349 Set a secondary key accepted as a prefix key.
2350 .It Xo Ic renumber-windows
2351 .Op Ic on | off
2353 If on, when a window is closed in a session, automatically renumber the other
2354 windows in numerical order.
2355 This respects the
2356 .Ic base-index
2357 option if it has been set.
2358 If off, do not renumber the windows.
2359 .It Ic repeat-time Ar time
2360 Allow multiple commands to be entered without pressing the prefix-key again
2361 in the specified
2362 .Ar time
2363 milliseconds (the default is 500).
2364 Whether a key repeats may be set when it is bound using the
2365 .Fl r
2366 flag to
2367 .Ic bind-key .
2368 Repeat is enabled for the default keys bound to the
2369 .Ic resize-pane
2370 command.
2371 .It Xo Ic set-remain-on-exit
2372 .Op Ic on | off
2374 Set the
2375 .Ic remain-on-exit
2376 window option for any windows first created in this session.
2377 When this option is true, windows in which the running program has
2378 exited do not close, instead remaining open but inactivate.
2379 Use the
2380 .Ic respawn-window
2381 command to reactivate such a window, or the
2382 .Ic kill-window
2383 command to destroy it.
2384 .It Xo Ic set-titles
2385 .Op Ic on | off
2387 Attempt to set the client terminal title using the
2388 .Em tsl
2390 .Em fsl
2391 .Xr terminfo 5
2392 entries if they exist.
2394 automatically sets these to the \ee]2;...\e007 sequence if
2395 the terminal appears to be an xterm.
2396 This option is off by default.
2397 Note that elinks
2398 will only attempt to set the window title if the STY environment
2399 variable is set.
2400 .It Ic set-titles-string Ar string
2401 String used to set the window title if
2402 .Ic set-titles
2403 is on.
2404 Character sequences are replaced as for the
2405 .Ic status-left
2406 option.
2407 .It Xo Ic status
2408 .Op Ic on | off
2410 Show or hide the status line.
2411 .It Ic status-attr Ar attributes
2412 Set status line attributes.
2413 .It Ic status-bg Ar colour
2414 Set status line background colour.
2415 .It Ic status-fg Ar colour
2416 Set status line foreground colour.
2417 .It Ic status-interval Ar interval
2418 Update the status bar every
2419 .Ar interval
2420 seconds.
2421 By default, updates will occur every 15 seconds.
2422 A setting of zero disables redrawing at interval.
2423 .It Xo Ic status-justify
2424 .Op Ic left | centre | right
2426 Set the position of the window list component of the status line: left, centre
2427 or right justified.
2428 .It Xo Ic status-keys
2429 .Op Ic vi | emacs
2431 Use vi or emacs-style
2432 key bindings in the status line, for example at the command prompt.
2433 The default is emacs, unless the
2434 .Ev VISUAL
2436 .Ev EDITOR
2437 environment variables are set and contain the string
2438 .Ql vi .
2439 .It Ic status-left Ar string
2440 Display
2441 .Ar string
2442 (by default the session name) to the left of the status bar.
2443 .Ar string
2444 will be passed through
2445 .Xr strftime 3
2446 and formats (see
2447 .Sx FORMATS Ns )
2448 will be expanded.
2449 It may also contain any of the following special character sequences:
2450 .Bl -column "Character pair" "Replaced with" -offset indent
2451 .It Sy "Character pair" Ta Sy "Replaced with"
2452 .It Li "#(shell-command)" Ta "First line of the command's output"
2453 .It Li "#[attributes]" Ta "Colour or attribute change"
2454 .It Li "##" Ta "A literal" Ql #
2457 The #(shell-command) form executes
2458 .Ql shell-command
2459 and inserts the first line of its output.
2460 Note that shell commands are only executed once at the interval specified by
2462 .Ic status-interval
2463 option: if the status line is redrawn in the meantime, the previous result is
2464 used.
2465 Shell commands are executed with the
2467 global environment set (see the
2468 .Sx ENVIRONMENT
2469 section).
2471 For details on how the names and titles can be set see the
2472 .Sx "NAMES AND TITLES"
2473 section.
2475 #[attributes] allows a comma-separated list of attributes to be specified,
2476 these may be
2477 .Ql fg=colour
2478 to set the foreground colour,
2479 .Ql bg=colour
2480 to set the background colour, the name of one of the attributes (listed under
2482 .Ic message-attr
2483 option) to turn an attribute on, or an attribute prefixed with
2484 .Ql no
2485 to turn one off, for example
2486 .Ic nobright .
2487 Examples are:
2488 .Bd -literal -offset indent
2489 #(sysctl vm.loadavg)
2490 #[fg=yellow,bold]#(apm -l)%%#[default] [#S]
2493 Where appropriate, special character sequences may be prefixed with a number to
2494 specify the maximum length, for example
2495 .Ql #24T .
2497 By default, UTF-8 in
2498 .Ar string
2499 is not interpreted, to enable UTF-8, use the
2500 .Ic status-utf8
2501 option.
2502 .It Ic status-left-attr Ar attributes
2503 Set the attribute of the left part of the status line.
2504 .It Ic status-left-bg Ar colour
2505 Set the background colour of the left part of the status line.
2506 .It Ic status-left-fg Ar colour
2507 Set the foreground colour of the left part of the status line.
2508 .It Ic status-left-length Ar length
2509 Set the maximum
2510 .Ar length
2511 of the left component of the status bar.
2512 The default is 10.
2513 .It Xo Ic status-position
2514 .Op Ic top | bottom
2516 Set the position of the status line.
2517 .It Ic status-right Ar string
2518 Display
2519 .Ar string
2520 to the right of the status bar.
2521 By default, the current window title in double quotes, the date and the time
2522 are shown.
2523 As with
2524 .Ic status-left ,
2525 .Ar string
2526 will be passed to
2527 .Xr strftime 3 ,
2528 character pairs are replaced, and UTF-8 is dependent on the
2529 .Ic status-utf8
2530 option.
2531 .It Ic status-right-attr Ar attributes
2532 Set the attribute of the right part of the status line.
2533 .It Ic status-right-bg Ar colour
2534 Set the background colour of the right part of the status line.
2535 .It Ic status-right-fg Ar colour
2536 Set the foreground colour of the right part of the status line.
2537 .It Ic status-right-length Ar length
2538 Set the maximum
2539 .Ar length
2540 of the right component of the status bar.
2541 The default is 40.
2542 .It Xo Ic status-utf8
2543 .Op Ic on | off
2545 Instruct
2547 to treat top-bit-set characters in the
2548 .Ic status-left
2550 .Ic status-right
2551 strings as UTF-8; notably, this is important for wide characters.
2552 This option defaults to off.
2553 .It Ic terminal-overrides Ar string
2554 Contains a list of entries which override terminal descriptions read using
2555 .Xr terminfo 5 .
2556 .Ar string
2557 is a comma-separated list of items each a colon-separated string made up of a
2558 terminal type pattern (matched using
2559 .Xr fnmatch 3 )
2560 and a set of
2561 .Em name=value
2562 entries.
2564 For example, to set the
2565 .Ql clear
2566 .Xr terminfo 5
2567 entry to
2568 .Ql \ee[H\ee[2J
2569 for all terminal types and the
2570 .Ql dch1
2571 entry to
2572 .Ql \ee[P
2573 for the
2574 .Ql rxvt
2575 terminal type, the option could be set to the string:
2576 .Bd -literal -offset indent
2577 "*:clear=\ee[H\ee[2J,rxvt:dch1=\ee[P"
2580 The terminal entry value is passed through
2581 .Xr strunvis 3
2582 before interpretation.
2583 The default value forcibly corrects the
2584 .Ql colors
2585 entry for terminals which support 88 or 256 colours:
2586 .Bd -literal -offset indent
2587 "*88col*:colors=88,*256col*:colors=256,xterm*:XT"
2589 .It Ic update-environment Ar variables
2590 Set a space-separated string containing a list of environment variables to be
2591 copied into the session environment when a new session is created or an
2592 existing session is attached.
2593 Any variables that do not exist in the source environment are set to be
2594 removed from the session environment (as if
2595 .Fl r
2596 was given to the
2597 .Ic set-environment
2598 command).
2599 The default is
2600 "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID
2601 XAUTHORITY".
2602 .It Xo Ic visual-activity
2603 .Op Ic on | off
2605 If on, display a status line message when activity occurs in a window
2606 for which the
2607 .Ic monitor-activity
2608 window option is enabled.
2609 .It Xo Ic visual-bell
2610 .Op Ic on | off
2612 If this option is on, a message is shown on a bell instead of it being passed
2613 through to the terminal (which normally makes a sound).
2614 Also see the
2615 .Ic bell-action
2616 option.
2617 .It Xo Ic visual-content
2618 .Op Ic on | off
2620 Like
2621 .Ic visual-activity ,
2622 display a message when content is present in a window
2623 for which the
2624 .Ic monitor-content
2625 window option is enabled.
2626 .It Xo Ic visual-silence
2627 .Op Ic on | off
2630 .Ic monitor-silence
2631 is enabled, prints a message after the interval has expired on a given window.
2632 .It Ic word-separators Ar string
2633 Sets the session's conception of what characters are considered word
2634 separators, for the purposes of the next and previous word commands in
2635 copy mode.
2636 The default is
2637 .Ql \ -_@ .
2639 .It Xo Ic set-window-option
2640 .Op Fl agoqu
2641 .Op Fl t Ar target-window
2642 .Ar option Ar value
2644 .D1 (alias: Ic setw )
2645 Set a window option.
2647 .Fl a ,
2648 .Fl g ,
2649 .Fl o ,
2650 .Fl q
2652 .Fl u
2653 flags work similarly to the
2654 .Ic set-option
2655 command.
2657 Supported window options are:
2659 .Bl -tag -width Ds -compact
2660 .It Xo Ic aggressive-resize
2661 .Op Ic on | off
2663 Aggressively resize the chosen window.
2664 This means that
2666 will resize the window to the size of the smallest session for which it is the
2667 current window, rather than the smallest session to which it is attached.
2668 The window may resize when the current window is changed on another sessions;
2669 this option is good for full-screen programs which support
2670 .Dv SIGWINCH
2671 and poor for interactive programs such as shells.
2673 .It Xo Ic allow-rename
2674 .Op Ic on | off
2676 Allow programs to change the window name using a terminal escape
2677 sequence (\\033k...\\033\\\\).
2678 The default is on.
2680 .It Xo Ic alternate-screen
2681 .Op Ic on | off
2683 This option configures whether programs running inside
2685 may use the terminal alternate screen feature, which allows the
2686 .Em smcup
2688 .Em rmcup
2689 .Xr terminfo 5
2690 capabilities.
2691 The alternate screen feature preserves the contents of the window when an
2692 interactive application starts and restores it on exit, so that any output
2693 visible before the application starts reappears unchanged after it exits.
2694 The default is on.
2696 .It Xo Ic automatic-rename
2697 .Op Ic on | off
2699 Control automatic window renaming.
2700 When this setting is enabled,
2702 will rename the window automatically using the format specified by
2703 .Ic automatic-rename-format .
2704 This flag is automatically disabled for an individual window when a name
2705 is specified at creation with
2706 .Ic new-window
2708 .Ic new-session ,
2709 or later with
2710 .Ic rename-window ,
2711 or with a terminal escape sequence.
2712 It may be switched off globally with:
2713 .Bd -literal -offset indent
2714 set-window-option -g automatic-rename off
2717 .It Ic automatic-rename-format Ar format
2718 The format (see
2719 .Sx FORMATS )
2720 used when the
2721 .Ic automatic-rename
2722 option is enabled.
2724 .It Ic c0-change-interval Ar interval
2725 .It Ic c0-change-trigger Ar trigger
2726 These two options configure a simple form of rate limiting for a pane.
2729 sees more than
2730 .Ar trigger
2731 C0 sequences that modify the screen (for example, carriage returns, linefeeds
2732 or backspaces) in one millisecond, it will stop updating the pane immediately and
2733 instead redraw it entirely every
2734 .Ar interval
2735 milliseconds.
2736 This helps to prevent fast output (such as
2737 .Xr yes 1
2738 overwhelming the terminal).
2739 The default is a trigger of 250 and an interval of 100.
2740 A trigger of zero disables the rate limiting.
2742 .It Ic clock-mode-colour Ar colour
2743 Set clock colour.
2745 .It Xo Ic clock-mode-style
2746 .Op Ic 12 | 24
2748 Set clock hour format.
2750 .It Ic force-height Ar height
2751 .It Ic force-width Ar width
2752 Prevent
2754 from resizing a window to greater than
2755 .Ar width
2757 .Ar height .
2758 A value of zero restores the default unlimited setting.
2760 .It Ic main-pane-height Ar height
2761 .It Ic main-pane-width Ar width
2762 Set the width or height of the main (left or top) pane in the
2763 .Ic main-horizontal
2765 .Ic main-vertical
2766 layouts.
2768 .It Ic mode-attr Ar attributes
2769 Set window modes attributes.
2771 .It Ic mode-bg Ar colour
2772 Set window modes background colour.
2774 .It Ic mode-fg Ar colour
2775 Set window modes foreground colour.
2777 .It Xo Ic mode-keys
2778 .Op Ic vi | emacs
2780 Use vi or emacs-style key bindings in copy and choice modes.
2781 As with the
2782 .Ic status-keys
2783 option, the default is emacs, unless
2784 .Ev VISUAL
2786 .Ev EDITOR
2787 contains
2788 .Ql vi .
2790 .It Xo Ic mode-mouse
2791 .Op Ic on | off | copy-mode
2793 Mouse state in modes.
2794 If on, the mouse may be used to enter copy mode and copy a selection by
2795 dragging, to enter copy mode and scroll with the mouse wheel, or to select an
2796 option in choice mode.
2797 If set to
2798 .Em copy-mode ,
2799 the mouse behaves as set to on, but cannot be used to enter copy
2800 mode.
2802 .It Xo Ic monitor-activity
2803 .Op Ic on | off
2805 Monitor for activity in the window.
2806 Windows with activity are highlighted in the status line.
2808 .It Ic monitor-content Ar match-string
2809 Monitor content in the window.
2810 When
2811 .Xr fnmatch 3
2812 pattern
2813 .Ar match-string
2814 appears in the window, it is highlighted in the status line.
2816 .It Xo Ic monitor-silence
2817 .Op Ic interval
2819 Monitor for silence (no activity) in the window within
2820 .Ic interval
2821 seconds.
2822 Windows that have been silent for the interval are highlighted in the
2823 status line.
2824 An interval of zero disables the monitoring.
2826 .It Ic other-pane-height Ar height
2827 Set the height of the other panes (not the main pane) in the
2828 .Ic main-horizontal
2829 layout.
2830 If this option is set to 0 (the default), it will have no effect.
2831 If both the
2832 .Ic main-pane-height
2834 .Ic other-pane-height
2835 options are set, the main pane will grow taller to make the other panes the
2836 specified height, but will never shrink to do so.
2838 .It Ic other-pane-width Ar width
2839 Like
2840 .Ic other-pane-height ,
2841 but set the width of other panes in the
2842 .Ic main-vertical
2843 layout.
2845 .It Ic pane-base-index Ar index
2846 Like
2847 .Ic base-index ,
2848 but set the starting index for pane numbers.
2850 .It Xo Ic remain-on-exit
2851 .Op Ic on | off
2853 A window with this flag set is not destroyed when the program running in it
2854 exits.
2855 The window may be reactivated with the
2856 .Ic respawn-window
2857 command.
2859 .It Xo Ic synchronize-panes
2860 .Op Ic on | off
2862 Duplicate input to any pane to all other panes in the same window (only
2863 for panes that are not in any special mode).
2865 .It Xo Ic utf8
2866 .Op Ic on | off
2868 Instructs
2870 to expect UTF-8 sequences to appear in this window.
2872 .It Ic window-status-bell-attr Ar attributes
2873 Set status line attributes for windows which have a bell alert.
2875 .It Ic window-status-bell-bg Ar colour
2876 Set status line background colour for windows with a bell alert.
2878 .It Ic window-status-bell-fg Ar colour
2879 Set status line foreground colour for windows with a bell alert.
2881 .It Ic window-status-content-attr Ar attributes
2882 Set status line attributes for windows which have a content alert.
2884 .It Ic window-status-content-bg Ar colour
2885 Set status line background colour for windows with a content alert.
2887 .It Ic window-status-content-fg Ar colour
2888 Set status line foreground colour for windows with a content alert.
2890 .It Ic window-status-activity-attr Ar attributes
2891 Set status line attributes for windows which have an activity (or silence) alert.
2893 .It Ic window-status-activity-bg Ar colour
2894 Set status line background colour for windows with an activity alert.
2896 .It Ic window-status-activity-fg Ar colour
2897 Set status line foreground colour for windows with an activity alert.
2899 .It Ic window-status-attr Ar attributes
2900 Set status line attributes for a single window.
2902 .It Ic window-status-bg Ar colour
2903 Set status line background colour for a single window.
2905 .It Ic window-status-current-attr Ar attributes
2906 Set status line attributes for the currently active window.
2908 .It Ic window-status-current-bg Ar colour
2909 Set status line background colour for the currently active window.
2911 .It Ic window-status-current-fg Ar colour
2912 Set status line foreground colour for the currently active window.
2914 .It Ic window-status-current-format Ar string
2915 Like
2916 .Ar window-status-format ,
2917 but is the format used when the window is the current window.
2919 .It Ic window-status-last-attr Ar attributes
2920 Set status line attributes for the last active window.
2922 .It Ic window-status-last-bg Ar colour
2923 Set status line background colour for the last active window.
2925 .It Ic window-status-last-fg Ar colour
2926 Set status line foreground colour for the last active window.
2928 .It Ic window-status-fg Ar colour
2929 Set status line foreground colour for a single window.
2931 .It Ic window-status-format Ar string
2932 Set the format in which the window is displayed in the status line window list.
2933 See the
2934 .Ar status-left
2935 option for details of special character sequences available.
2936 The default is
2937 .Ql #I:#W#F .
2939 .It Ic window-status-separator Ar string
2940 Sets the separator drawn between windows in the status line.
2941 The default is a single space character.
2943 .It Xo Ic xterm-keys
2944 .Op Ic on | off
2946 If this option is set,
2948 will generate
2949 .Xr xterm 1 -style
2950 function key sequences; these have a number included to indicate modifiers such
2951 as Shift, Alt or Ctrl.
2952 The default is off.
2954 .It Xo Ic wrap-search
2955 .Op Ic on | off
2957 If this option is set, searches will wrap around the end of the pane contents.
2958 The default is on.
2960 .It Xo Ic show-options
2961 .Op Fl gqsvw
2962 .Op Fl t Ar target-session | Ar target-window
2963 .Op Ar option
2965 .D1 (alias: Ic show )
2966 Show the window options (or a single window option if given) with
2967 .Fl w
2968 (equivalent to
2969 .Ic show-window-options ) ,
2970 the server options with
2971 .Fl s ,
2972 otherwise the session options for
2973 .Ar target session .
2974 Global session or window options are listed if
2975 .Fl g
2976 is used.
2977 .Fl v
2978 shows only the option value, not the name.
2980 .Fl q
2981 is set, no error will be returned if
2982 .Ar option
2983 is unset.
2984 .It Xo Ic show-window-options
2985 .Op Fl gv
2986 .Op Fl t Ar target-window
2987 .Op Ar option
2989 .D1 (alias: Ic showw )
2990 List the window options or a single option for
2991 .Ar target-window ,
2992 or the global window options if
2993 .Fl g
2994 is used.
2995 .Fl v
2996 shows only the option value, not the name.
2998 .Sh FORMATS
2999 Certain commands accept the
3000 .Fl F
3001 flag with a
3002 .Ar format
3003 argument.
3004 This is a string which controls the output format of the command.
3005 Replacement variables are enclosed in
3006 .Ql #{
3008 .Ql } ,
3009 for example
3010 .Ql #{session_name} .
3011 Some variables also have an shorter alias such as
3012 .Ql #S .
3013 Conditionals are also accepted by prefixing with
3014 .Ql \&?
3015 and separating two alternatives with a comma;
3016 if the specified variable exists and is not zero, the first alternative
3017 is chosen, otherwise the second is used.
3018 For example
3019 .Ql #{?session_attached,attached,not attached}
3020 will include the string
3021 .Ql attached
3022 if the session is attached and the string
3023 .Ql not attached
3024 if it is unattached.
3025 A limit may be placed on the length of the resultant string by prefixing it
3026 by an
3027 .Ql = ,
3028 a number and a colon, so
3029 .Ql #{=10:pane_title}
3030 will include at most the first 10 characters of the pane title.
3032 The following variables are available, where appropriate:
3033 .Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX"
3034 .It Sy "Variable name" Ta Sy "Alias" Ta Sy "Replaced with"
3035 .It Li "alternate_on" Ta "" Ta "If pane is in alternate screen"
3036 .It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen"
3037 .It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen"
3038 .It Li "buffer_sample" Ta "" Ta "First 50 characters from buffer"
3039 .It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes"
3040 .It Li "client_activity" Ta "" Ta "Integer time client last had activity"
3041 .It Li "client_activity_string" Ta "" Ta "String time client last had activity"
3042 .It Li "client_created" Ta "" Ta "Integer time client created"
3043 .It Li "client_created_string" Ta "" Ta "String time client created"
3044 .It Li "client_height" Ta "" Ta "Height of client"
3045 .It Li "client_last_session" Ta "" Ta "Name of the client's last session"
3046 .It Li "client_prefix" Ta "" Ta "1 if prefix key has been pressed"
3047 .It Li "client_readonly" Ta "" Ta "1 if client is readonly"
3048 .It Li "client_session" Ta "" Ta "Name of the client's session"
3049 .It Li "client_termname" Ta "" Ta "Terminal name of client"
3050 .It Li "client_tty" Ta "" Ta "Pseudo terminal of client"
3051 .It Li "client_utf8" Ta "" Ta "1 if client supports utf8"
3052 .It Li "client_width" Ta "" Ta "Width of client"
3053 .It Li "cursor_flag" Ta "" Ta "Pane cursor flag"
3054 .It Li "cursor_x" Ta "" Ta "Cursor X position in pane"
3055 .It Li "cursor_y" Ta "" Ta "Cursor Y position in pane"
3056 .It Li "history_bytes" Ta "" Ta "Number of bytes in window history"
3057 .It Li "history_limit" Ta "" Ta "Maximum window history lines"
3058 .It Li "history_size" Ta "" Ta "Size of history in bytes"
3059 .It Li "host" Ta "#H" Ta "Hostname of local host"
3060 .It Li "host_short" Ta "#h" Ta "Hostname of local host (no domain name)"
3061 .It Li "insert_flag" Ta "" Ta "Pane insert flag"
3062 .It Li "keypad_cursor_flag" Ta "" Ta "Pane keypad cursor flag"
3063 .It Li "keypad_flag" Ta "" Ta "Pane keypad flag"
3064 .It Li "line" Ta "" Ta "Line number in the list"
3065 .It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag"
3066 .It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag"
3067 .It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag"
3068 .It Li "mouse_utf8_flag" Ta "" Ta "Pane mouse UTF-8 flag"
3069 .It Li "pane_active" Ta "" Ta "1 if active pane"
3070 .It Li "pane_current_command" Ta "" Ta "Current command if available"
3071 .It Li "pane_current_path" Ta "" Ta "Current path if available"
3072 .It Li "pane_dead" Ta "" Ta "1 if pane is dead"
3073 .It Li "pane_height" Ta "" Ta "Height of pane"
3074 .It Li "pane_id" Ta "#D" Ta "Unique pane ID"
3075 .It Li "pane_in_mode" Ta "" Ta "If pane is in a mode"
3076 .It Li "pane_synchronized" Ta "" Ta "If pane is synchronized"
3077 .It Li "pane_index" Ta "#P" Ta "Index of pane"
3078 .It Li "pane_pid" Ta "" Ta "PID of first process in pane"
3079 .It Li "pane_start_command" Ta "" Ta "Command pane started with"
3080 .It Li "pane_start_path" Ta "" Ta "Path pane started with"
3081 .It Li "pane_tabs" Ta "" Ta "Pane tab positions"
3082 .It Li "pane_title" Ta "#T" Ta "Title of pane"
3083 .It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane"
3084 .It Li "pane_width" Ta "" Ta "Width of pane"
3085 .It Li "saved_cursor_x" Ta "" Ta "Saved cursor X in pane"
3086 .It Li "saved_cursor_y" Ta "" Ta "Saved cursor Y in pane"
3087 .It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane"
3088 .It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane"
3089 .It Li "session_attached" Ta "" Ta "1 if session attached"
3090 .It Li "session_created" Ta "" Ta "Integer time session created"
3091 .It Li "session_created_string" Ta "" Ta "String time session created"
3092 .It Li "session_group" Ta "" Ta "Number of session group"
3093 .It Li "session_grouped" Ta "" Ta "1 if session in a group"
3094 .It Li "session_height" Ta "" Ta "Height of session"
3095 .It Li "session_id" Ta "" Ta "Unique session ID"
3096 .It Li "session_name" Ta "#S" Ta "Name of session"
3097 .It Li "session_width" Ta "" Ta "Width of session"
3098 .It Li "session_windows" Ta "" Ta "Number of windows in session"
3099 .It Li "window_active" Ta "" Ta "1 if window active"
3100 .It Li "window_activity_flag" Ta "" Ta "1 if window has activity alert"
3101 .It Li "window_bell_flag" Ta "" Ta "1 if window has bell"
3102 .It Li "window_content_flag" Ta "" Ta "1 if window has content alert"
3103 .It Li "window_find_matches" Ta "" Ta "Matched data from the find-window"
3104 .It Li "window_flags" Ta "#F" Ta "Window flags"
3105 .It Li "window_height" Ta "" Ta "Height of window"
3106 .It Li "window_id" Ta "" Ta "Unique window ID"
3107 .It Li "window_index" Ta "#I" Ta "Index of window"
3108 .It Li "window_layout" Ta "" Ta "Window layout description"
3109 .It Li "window_name" Ta "#W" Ta "Name of window"
3110 .It Li "window_panes" Ta "" Ta "Number of panes in window"
3111 .It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert"
3112 .It Li "window_width" Ta "" Ta "Width of window"
3113 .It Li "wrap_flag" Ta "" Ta "Pane wrap flag"
3115 .Sh NAMES AND TITLES
3117 distinguishes between names and titles.
3118 Windows and sessions have names, which may be used to specify them in targets
3119 and are displayed in the status line and various lists: the name is the
3121 identifier for a window or session.
3122 Only panes have titles.
3123 A pane's title is typically set by the program running inside the pane and
3124 is not modified by
3125 .Nm .
3126 It is the same mechanism used to set for example the
3127 .Xr xterm 1
3128 window title in an
3129 .Xr X 7
3130 window manager.
3131 Windows themselves do not have titles - a window's title is the title of its
3132 active pane.
3134 itself may set the title of the terminal in which the client is running, see
3136 .Ic set-titles
3137 option.
3139 A session's name is set with the
3140 .Ic new-session
3142 .Ic rename-session
3143 commands.
3144 A window's name is set with one of:
3145 .Bl -enum -width Ds
3147 A command argument (such as
3148 .Fl n
3150 .Ic new-window
3152 .Ic new-session ) .
3154 An escape sequence:
3155 .Bd -literal -offset indent
3156 $ printf '\e033kWINDOW_NAME\e033\e\e'
3159 Automatic renaming, which sets the name to the active command in the window's
3160 active pane.
3161 See the
3162 .Ic automatic-rename
3163 option.
3166 When a pane is first created, its title is the hostname.
3167 A pane's title can be set via the OSC title setting sequence, for example:
3168 .Bd -literal -offset indent
3169 $ printf '\e033]2;My Title\e033\e\e'
3171 .Sh ENVIRONMENT
3172 When the server is started,
3174 copies the environment into the
3175 .Em global environment ;
3176 in addition, each session has a
3177 .Em session environment .
3178 When a window is created, the session and global environments are merged.
3179 If a variable exists in both, the value from the session environment is used.
3180 The result is the initial environment passed to the new process.
3183 .Ic update-environment
3184 session option may be used to update the session environment from the client
3185 when a new session is created or an old reattached.
3187 also initialises the
3188 .Ev TMUX
3189 variable with some internal information to allow commands to be executed
3190 from inside, and the
3191 .Ev TERM
3192 variable with the correct terminal setting of
3193 .Ql screen .
3195 Commands to alter and view the environment are:
3196 .Bl -tag -width Ds
3197 .It Xo Ic set-environment
3198 .Op Fl gru
3199 .Op Fl t Ar target-session
3200 .Ar name Op Ar value
3202 .D1 (alias: Ic setenv )
3203 Set or unset an environment variable.
3205 .Fl g
3206 is used, the change is made in the global environment; otherwise, it is applied
3207 to the session environment for
3208 .Ar target-session .
3210 .Fl u
3211 flag unsets a variable.
3212 .Fl r
3213 indicates the variable is to be removed from the environment before starting a
3214 new process.
3215 .It Xo Ic show-environment
3216 .Op Fl g
3217 .Op Fl t Ar target-session
3218 .Op Ar variable
3220 .D1 (alias: Ic showenv )
3221 Display the environment for
3222 .Ar target-session
3223 or the global environment with
3224 .Fl g .
3226 .Ar variable
3227 is omitted, all variables are shown.
3228 Variables removed from the environment are prefixed with
3229 .Ql - .
3231 .Sh STATUS LINE
3233 includes an optional status line which is displayed in the bottom line of each
3234 terminal.
3235 By default, the status line is enabled (it may be disabled with the
3236 .Ic status
3237 session option) and contains, from left-to-right: the name of the current
3238 session in square brackets; the window list; the title of the active pane
3239 in double quotes; and the time and date.
3241 The status line is made of three parts: configurable left and right sections
3242 (which may contain dynamic content such as the time or output from a shell
3243 command, see the
3244 .Ic status-left ,
3245 .Ic status-left-length ,
3246 .Ic status-right ,
3248 .Ic status-right-length
3249 options below), and a central window list.
3250 By default, the window list shows the index, name and (if any) flag of the
3251 windows present in the current session in ascending numerical order.
3252 It may be customised with the
3253 .Ar window-status-format
3255 .Ar window-status-current-format
3256 options.
3257 The flag is one of the following symbols appended to the window name:
3258 .Bl -column "Symbol" "Meaning" -offset indent
3259 .It Sy "Symbol" Ta Sy "Meaning"
3260 .It Li "*" Ta "Denotes the current window."
3261 .It Li "-" Ta "Marks the last window (previously selected)."
3262 .It Li "#" Ta "Window is monitored and activity has been detected."
3263 .It Li "!" Ta "A bell has occurred in the window."
3264 .It Li "+" Ta "Window is monitored for content and it has appeared."
3265 .It Li "~" Ta "The window has been silent for the monitor-silence interval."
3266 .It Li "Z" Ta "The window's active pane is zoomed."
3269 The # symbol relates to the
3270 .Ic monitor-activity
3271 and + to the
3272 .Ic monitor-content
3273 window options.
3274 The window name is printed in inverted colours if an alert (bell, activity or
3275 content) is present.
3277 The colour and attributes of the status line may be configured, the entire
3278 status line using the
3279 .Ic status-attr ,
3280 .Ic status-fg
3282 .Ic status-bg
3283 session options and individual windows using the
3284 .Ic window-status-attr ,
3285 .Ic window-status-fg
3287 .Ic window-status-bg
3288 window options.
3290 The status line is automatically refreshed at interval if it has changed, the
3291 interval may be controlled with the
3292 .Ic status-interval
3293 session option.
3295 Commands related to the status line are as follows:
3296 .Bl -tag -width Ds
3297 .It Xo Ic command-prompt
3298 .Op Fl I Ar inputs
3299 .Op Fl p Ar prompts
3300 .Op Fl t Ar target-client
3301 .Op Ar template
3303 Open the command prompt in a client.
3304 This may be used from inside
3306 to execute commands interactively.
3309 .Ar template
3310 is specified, it is used as the command.
3311 If present,
3312 .Fl I
3313 is a comma-separated list of the initial text for each prompt.
3315 .Fl p
3316 is given,
3317 .Ar prompts
3318 is a comma-separated list of prompts which are displayed in order; otherwise
3319 a single prompt is displayed, constructed from
3320 .Ar template
3321 if it is present, or
3322 .Ql \&:
3323 if not.
3325 Both
3326 .Ar inputs
3328 .Ar prompts
3329 may contain the special character sequences supported by the
3330 .Ic status-left
3331 option.
3333 Before the command is executed, the first occurrence of the string
3334 .Ql %%
3335 and all occurrences of
3336 .Ql %1
3337 are replaced by the response to the first prompt, the second
3338 .Ql %%
3339 and all
3340 .Ql %2
3341 are replaced with the response to the second prompt, and so on for further
3342 prompts.
3343 Up to nine prompt responses may be replaced
3345 .Ql %1
3347 .Ql %9
3348 .Pc .
3349 .It Xo Ic confirm-before
3350 .Op Fl p Ar prompt
3351 .Op Fl t Ar target-client
3352 .Ar command
3354 .D1 (alias: Ic confirm )
3355 Ask for confirmation before executing
3356 .Ar command .
3358 .Fl p
3359 is given,
3360 .Ar prompt
3361 is the prompt to display; otherwise a prompt is constructed from
3362 .Ar command .
3363 It may contain the special character sequences supported by the
3364 .Ic status-left
3365 option.
3367 This command works only from inside
3368 .Nm .
3369 .It Xo Ic display-message
3370 .Op Fl p
3371 .Op Fl c Ar target-client
3372 .Op Fl t Ar target-pane
3373 .Op Ar message
3375 .D1 (alias: Ic display )
3376 Display a message.
3378 .Fl p
3379 is given, the output is printed to stdout, otherwise it is displayed in the
3380 .Ar target-client
3381 status line.
3382 The format of
3383 .Ar message
3384 is described in the
3385 .Sx FORMATS
3386 section; information is taken from
3387 .Ar target-pane
3389 .Fl t
3390 is given, otherwise the active pane for the session attached to
3391 .Ar target-client .
3393 .Sh BUFFERS
3395 maintains a stack of
3396 .Em paste buffers .
3397 Up to the value of the
3398 .Ic buffer-limit
3399 option are kept; when a new buffer is added, the buffer at the bottom of the
3400 stack is removed.
3401 Buffers may be added using
3402 .Ic copy-mode
3403 or the
3404 .Ic set-buffer
3405 command, and pasted into a window using the
3406 .Ic paste-buffer
3407 command.
3409 A configurable history buffer is also maintained for each window.
3410 By default, up to 2000 lines are kept; this can be altered with the
3411 .Ic history-limit
3412 option (see the
3413 .Ic set-option
3414 command above).
3416 The buffer commands are as follows:
3417 .Bl -tag -width Ds
3418 .It Xo
3419 .Ic choose-buffer
3420 .Op Fl F Ar format
3421 .Op Fl t Ar target-window
3422 .Op Ar template
3424 Put a window into buffer choice mode, where a buffer may be chosen
3425 interactively from a list.
3426 After a buffer is selected,
3427 .Ql %%
3428 is replaced by the buffer index in
3429 .Ar template
3430 and the result executed as a command.
3432 .Ar template
3433 is not given, "paste-buffer -b '%%'" is used.
3434 For the meaning of the
3435 .Fl F
3436 flag, see the
3437 .Sx FORMATS
3438 section.
3439 This command works only if at least one client is attached.
3440 .It Ic clear-history Op Fl t Ar target-pane
3441 .D1 (alias: Ic clearhist )
3442 Remove and free the history for the specified pane.
3443 .It Ic delete-buffer Op Fl b Ar buffer-index
3444 .D1 (alias: Ic deleteb )
3445 Delete the buffer at
3446 .Ar buffer-index ,
3447 or the top buffer if not specified.
3448 .It Xo Ic list-buffers
3449 .Op Fl F Ar format
3451 .D1 (alias: Ic lsb )
3452 List the global buffers.
3453 For the meaning of the
3454 .Fl F
3455 flag, see the
3456 .Sx FORMATS
3457 section.
3458 .It Xo Ic load-buffer
3459 .Op Fl b Ar buffer-index
3460 .Ar path
3462 .D1 (alias: Ic loadb )
3463 Load the contents of the specified paste buffer from
3464 .Ar path .
3465 .It Xo Ic paste-buffer
3466 .Op Fl dpr
3467 .Op Fl b Ar buffer-index
3468 .Op Fl s Ar separator
3469 .Op Fl t Ar target-pane
3471 .D1 (alias: Ic pasteb )
3472 Insert the contents of a paste buffer into the specified pane.
3473 If not specified, paste into the current one.
3474 With
3475 .Fl d ,
3476 also delete the paste buffer from the stack.
3477 When output, any linefeed (LF) characters in the paste buffer are replaced with
3478 a separator, by default carriage return (CR).
3479 A custom separator may be specified using the
3480 .Fl s
3481 flag.
3483 .Fl r
3484 flag means to do no replacement (equivalent to a separator of LF).
3486 .Fl p
3487 is specified, paste bracket control codes are inserted around the
3488 buffer if the application has requested bracketed paste mode.
3489 .It Xo Ic save-buffer
3490 .Op Fl a
3491 .Op Fl b Ar buffer-index
3492 .Ar path
3494 .D1 (alias: Ic saveb )
3495 Save the contents of the specified paste buffer to
3496 .Ar path .
3498 .Fl a
3499 option appends to rather than overwriting the file.
3500 .It Xo Ic set-buffer
3501 .Op Fl b Ar buffer-index
3502 .Ar data
3504 .D1 (alias: Ic setb )
3505 Set the contents of the specified buffer to
3506 .Ar data .
3507 .It Xo Ic show-buffer
3508 .Op Fl b Ar buffer-index
3510 .D1 (alias: Ic showb )
3511 Display the contents of the specified buffer.
3513 .Sh MISCELLANEOUS
3514 Miscellaneous commands are as follows:
3515 .Bl -tag -width Ds
3516 .It Ic clock-mode Op Fl t Ar target-pane
3517 Display a large clock.
3518 .It Xo Ic if-shell
3519 .Op Fl b
3520 .Op Fl t Ar target-pane
3521 .Ar shell-command command
3522 .Op Ar command
3524 .D1 (alias: Ic if )
3525 Execute the first
3526 .Ar command
3528 .Ar shell-command
3529 returns success or the second
3530 .Ar command
3531 otherwise.
3532 Before being executed, shell-command is expanded using the rules specified in the
3533 .Sx FORMATS
3534 section, including those relevant to
3535 .Ar target-pane .
3536 With
3537 .Fl b ,
3538 .Ar shell-command
3539 is run in the background.
3540 .It Ic lock-server
3541 .D1 (alias: Ic lock )
3542 Lock each client individually by running the command specified by the
3543 .Ic lock-command
3544 option.
3545 .It Xo Ic run-shell
3546 .Op Fl b
3547 .Op Fl t Ar target-pane
3548 .Ar shell-command
3550 .D1 (alias: Ic run )
3551 Execute
3552 .Ar shell-command
3553 in the background without creating a window.
3554 Before being executed, shell-command is expanded using the rules specified in
3556 .Sx FORMATS
3557 section.
3558 With
3559 .Fl b ,
3560 the command is run in the background.
3561 After it finishes, any output to stdout is displayed in copy mode (in the pane
3562 specified by
3563 .Fl t
3564 or the current pane if omitted).
3565 If the command doesn't return success, the exit status is also displayed.
3566 .It Ic server-info
3567 .D1 (alias: Ic info )
3568 Show server information and terminal details.
3569 .It Xo Ic wait-for
3570 .Op Fl L | S | U
3571 .Ar channel
3573 .D1 (alias: Ic wait )
3574 When used without options, prevents the client from exiting until woken using
3575 .Ic wait-for
3576 .Fl S
3577 with the same channel.
3578 When
3579 .Fl L
3580 is used, the channel is locked and any clients that try to lock the same
3581 channel are made to wait until the channel is unlocked with
3582 .Ic wait-for
3583 .Fl U .
3584 This command only works from outside
3585 .Nm .
3587 .Sh TERMINFO EXTENSIONS
3589 understands some extensions to
3590 .Xr terminfo 5 :
3591 .Bl -tag -width Ds
3592 .It Em Cs , Cr
3593 Set the cursor colour.
3594 The first takes a single string argument and is used to set the colour;
3595 the second takes no arguments and restores the default cursor colour.
3596 If set, a sequence such as this may be used
3597 to change the cursor colour from inside
3598 .Nm :
3599 .Bd -literal -offset indent
3600 $ printf '\e033]12;red\e033\e\e'
3602 .It Em \&Ss , Se
3603 Change the cursor style.
3604 If set, a sequence such as this may be used
3605 to change the cursor to an underline:
3606 .Bd -literal -offset indent
3607 $ printf '\e033[4 q'
3611 .Em Csr
3612 is set, it will be used to reset the cursor style instead
3614 .Em Cs .
3615 .It Em \&Ms
3616 This sequence can be used by
3618 to store the current buffer in the host terminal's selection (clipboard).
3619 See the
3620 .Em set-clipboard
3621 option above and the
3622 .Xr xterm 1
3623 man page.
3625 .Sh CONTROL MODE
3627 offers a textual interface called
3628 .Em control mode .
3629 This allows applications to communicate with
3631 using a simple text-only protocol.
3633 In control mode, a client sends
3635 commands or command sequences terminated by newlines on standard input.
3636 Each command will produce one block of output on standard output.
3637 An output block consists of a
3638 .Em %begin
3639 line followed by the output (which may be empty).
3640 The output block ends with a
3641 .Em %end
3643 .Em %error .
3644 .Em %begin
3645 and matching
3646 .Em %end
3648 .Em %error
3649 have two arguments: an integer time (as seconds from epoch) and command number.
3650 For example:
3651 .Bd -literal -offset indent
3652 %begin 1363006971 2
3653 0: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active)
3654 %end 1363006971 2
3657 In control mode,
3659 outputs notifications.
3660 A notification will never occur inside an output block.
3662 The following notifications are defined:
3663 .Bl -tag -width Ds
3664 .It Ic %exit Op Ar reason
3667 client is exiting immediately, either because it is not attached to any session
3668 or an error occurred.
3669 If present,
3670 .Ar reason
3671 describes why the client exited.
3672 .It Ic %layout-change Ar window-id Ar window-layout
3673 The layout of a window with ID
3674 .Ar window-id
3675 changed.
3676 The new layout is
3677 .Ar window-layout .
3678 .It Ic %output Ar pane-id Ar value
3679 A window pane produced output.
3680 .Ar value
3681 escapes non-printable characters and backslash as octal \\xxx.
3682 .It Ic %session-changed Ar session-id Ar name
3683 The client is now attached to the session with ID
3684 .Ar session-id ,
3685 which is named
3686 .Ar name .
3687 .It Ic %session-renamed Ar name
3688 The current session was renamed to
3689 .Ar name .
3690 .It Ic %sessions-changed
3691 A session was created or destroyed.
3692 .It Ic %unlinked-window-add Ar window-id
3693 The window with ID
3694 .Ar window-id
3695 was created but is not linked to the current session.
3696 .It Ic %window-add Ar window-id
3697 The window with ID
3698 .Ar window-id
3699 was linked to the current session.
3700 .It Ic %window-close Ar window-id
3701 The window with ID
3702 .Ar window-id
3703 closed.
3704 .It Ic %window-renamed Ar window-id Ar name
3705 The window with ID
3706 .Ar window-id
3707 was renamed to
3708 .Ar name .
3710 .Sh FILES
3711 .Bl -tag -width "/etc/tmux.confXXX" -compact
3712 .It Pa ~/.tmux.conf
3713 Default
3715 configuration file.
3716 .It Pa /etc/tmux.conf
3717 System-wide configuration file.
3719 .Sh EXAMPLES
3720 To create a new
3722 session running
3723 .Xr vi 1 :
3725 .Dl $ tmux new-session vi
3727 Most commands have a shorter form, known as an alias.
3728 For new-session, this is
3729 .Ic new :
3731 .Dl $ tmux new vi
3733 Alternatively, the shortest unambiguous form of a command is accepted.
3734 If there are several options, they are listed:
3735 .Bd -literal -offset indent
3736 $ tmux n
3737 ambiguous command: n, could be: new-session, new-window, next-window
3740 Within an active session, a new window may be created by typing
3741 .Ql C-b c
3742 (Ctrl
3743 followed by the
3744 .Ql b
3746 followed by the
3747 .Ql c
3748 key).
3750 Windows may be navigated with:
3751 .Ql C-b 0
3752 (to select window 0),
3753 .Ql C-b 1
3754 (to select window 1), and so on;
3755 .Ql C-b n
3756 to select the next window; and
3757 .Ql C-b p
3758 to select the previous window.
3760 A session may be detached using
3761 .Ql C-b d
3762 (or by an external event such as
3763 .Xr ssh 1
3764 disconnection) and reattached with:
3766 .Dl $ tmux attach-session
3768 Typing
3769 .Ql C-b \&?
3770 lists the current key bindings in the current window; up and down may be used
3771 to navigate the list or
3772 .Ql q
3773 to exit from it.
3775 Commands to be run when the
3777 server is started may be placed in the
3778 .Pa ~/.tmux.conf
3779 configuration file.
3780 Common examples include:
3782 Changing the default prefix key:
3783 .Bd -literal -offset indent
3784 set-option -g prefix C-a
3785 unbind-key C-b
3786 bind-key C-a send-prefix
3789 Turning the status line off, or changing its colour:
3790 .Bd -literal -offset indent
3791 set-option -g status off
3792 set-option -g status-bg blue
3795 Setting other options, such as the default command,
3796 or locking after 30 minutes of inactivity:
3797 .Bd -literal -offset indent
3798 set-option -g default-command "exec /bin/ksh"
3799 set-option -g lock-after-time 1800
3802 Creating new key bindings:
3803 .Bd -literal -offset indent
3804 bind-key b set-option status
3805 bind-key / command-prompt "split-window 'exec man %%'"
3806 bind-key S command-prompt "new-window -n %1 'ssh %1'"
3808 .Sh SEE ALSO
3809 .Xr pty 4
3810 .Sh AUTHORS
3811 .An Nicholas Marriott Aq Mt nicm@users.sourceforge.net