Fix handling of short (< 4 character) checksums and a bug with parsing
[tmux-openbsd.git] / tmux.1
blob74868fc287f42e2ca141e86242b90209fcbfb654
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 28lquv
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 8
102 Like
103 .Fl 2 ,
104 but indicates that the terminal supports 88 colours.
105 .It Fl c Ar shell-command
106 Execute
107 .Ar shell-command
108 using the default shell.
109 If necessary, the
111 server will be started to retrieve the
112 .Ic default-shell
113 option.
114 This option is for compatibility with
115 .Xr sh 1
116 when
118 is used as a login shell.
119 .It Fl f Ar file
120 Specify an alternative configuration file.
121 By default,
123 loads the system configuration file from
124 .Pa /etc/tmux.conf ,
125 if present, then looks for a user configuration file at
126 .Pa ~/.tmux.conf .
128 The configuration file is a set of
130 commands which are executed in sequence when the server is first started.
132 loads configuration files once when the server process has started.
134 .Ic source-file
135 command may be used to load a file later.
138 shows any error messages from commands in configuration files in the first
139 session created, and continues to process the rest of the configuration file.
140 .It Fl L Ar socket-name
142 stores the server socket in a directory under
143 .Pa /tmp
145 .Ev TMPDIR
146 if set);
147 the default socket is named
148 .Em default .
149 This option allows a different socket name to be specified, allowing several
150 independent
152 servers to be run.
153 Unlike
154 .Fl S
155 a full path is not necessary: the sockets are all created in the same
156 directory.
158 If the socket is accidentally removed, the
159 .Dv SIGUSR1
160 signal may be sent to the
162 server process to recreate it.
163 .It Fl l
164 Behave as a login shell.
165 This flag currently has no effect and is for compatibility with other shells
166 when using tmux as a login shell.
167 .It Fl q
168 Set the
169 .Ic quiet
170 server option to prevent the server sending various informational messages.
171 .It Fl S Ar socket-path
172 Specify a full alternative path to the server socket.
174 .Fl S
175 is specified, the default socket directory is not used and any
176 .Fl L
177 flag is ignored.
178 .It Fl u
180 attempts to guess if the terminal is likely to support UTF-8 by checking the
181 first of the
182 .Ev LC_ALL ,
183 .Ev LC_CTYPE
185 .Ev LANG
186 environment variables to be set for the string "UTF-8".
187 This is not always correct: the
188 .Fl u
189 flag explicitly informs
191 that UTF-8 is supported.
193 If the server is started from a client passed
194 .Fl u
195 or where UTF-8 is detected, the
196 .Ic utf8
198 .Ic status-utf8
199 options are enabled in the global window and session options respectively.
200 .It Fl v
201 Request verbose logging.
202 This option may be specified multiple times for increasing verbosity.
203 Log messages will be saved into
204 .Pa tmux-client-PID.log
206 .Pa tmux-server-PID.log
207 files in the current directory, where
208 .Em PID
209 is the PID of the server or client process.
210 .It Ar command Op Ar flags
211 This specifies one of a set of commands used to control
212 .Nm ,
213 as described in the following sections.
214 If no commands are specified, the
215 .Ic new-session
216 command is assumed.
218 .Sh KEY BINDINGS
220 may be controlled from an attached client by using a key combination of a
221 prefix key,
222 .Ql C-b
223 (Ctrl-b) by default, followed by a command key.
225 The default command key bindings are:
227 .Bl -tag -width "XXXXXXXXXX" -offset indent -compact
228 .It C-b
229 Send the prefix key (C-b) through to the application.
230 .It C-o
231 Rotate the panes in the current window forwards.
232 .It C-z
233 Suspend the
235 client.
236 .It !
237 Break the current pane out of the window.
238 .It \&"
239 Split the current pane into two, top and bottom.
240 .It #
241 List all paste buffers.
242 .It $
243 Rename the current session.
244 .It %
245 Split the current pane into two, left and right.
246 .It &
247 Kill the current window.
248 .It '
249 Prompt for a window index to select.
250 .It ,
251 Rename the current window.
252 .It -
253 Delete the most recently copied buffer of text.
254 .It .
255 Prompt for an index to move the current window.
256 .It 0 to 9
257 Select windows 0 to 9.
258 .It :
259 Enter the
261 command prompt.
262 .It ;
263 Move to the previously active pane.
264 .It =
265 Choose which buffer to paste interactively from a list.
266 .It \&?
267 List all key bindings.
268 .It D
269 Choose a client to detach.
270 .It \&[
271 Enter copy mode to copy text or view the history.
272 .It \&]
273 Paste the most recently copied buffer of text.
274 .It c
275 Create a new window.
276 .It d
277 Detach the current client.
278 .It f
279 Prompt to search for text in open windows.
280 .It i
281 Display some information about the current window.
282 .It l
283 Move to the previously selected window.
284 .It n
285 Change to the next window.
286 .It o
287 Select the next pane in the current window.
288 .It p
289 Change to the previous window.
290 .It q
291 Briefly display pane indexes.
292 .It r
293 Force redraw of the attached client.
294 .It s
295 Select a new session for the attached client interactively.
296 .It L
297 Switch the attached client back to the last session.
298 .It t
299 Show the time.
300 .It w
301 Choose the current window interactively.
302 .It x
303 Kill the current pane.
304 .It {
305 Swap the current pane with the previous pane.
306 .It }
307 Swap the current pane with the next pane.
308 .It ~
309 Show previous messages from
310 .Nm ,
311 if any.
312 .It Page Up
313 Enter copy mode and scroll one page up.
314 .It Up, Down
315 .It Left, Right
316 Change to the pane above, below, to the left, or to the right of the current
317 pane.
318 .It M-1 to M-5
319 Arrange panes in one of the five preset layouts: even-horizontal,
320 even-vertical, main-horizontal, main-vertical, or tiled.
321 .It M-n
322 Move to the next window with a bell or activity marker.
323 .It M-o
324 Rotate the panes in the current window backwards.
325 .It M-p
326 Move to the previous window with a bell or activity marker.
327 .It C-Up, C-Down
328 .It C-Left, C-Right
329 Resize the current pane in steps of one cell.
330 .It M-Up, M-Down
331 .It M-Left, M-Right
332 Resize the current pane in steps of five cells.
335 Key bindings may be changed with the
336 .Ic bind-key
338 .Ic unbind-key
339 commands.
340 .Sh COMMANDS
341 This section contains a list of the commands supported by
342 .Nm .
343 Most commands accept the optional
344 .Fl t
345 argument with one of
346 .Ar target-client ,
347 .Ar target-session
348 .Ar target-window ,
350 .Ar target-pane .
351 These specify the client, session, window or pane which a command should affect.
352 .Ar target-client
353 is the name of the
354 .Xr pty 4
355 file to which the client is connected, for example either of
356 .Pa /dev/ttyp1
358 .Pa ttyp1
359 for the client attached to
360 .Pa /dev/ttyp1 .
361 If no client is specified, the current client is chosen, if possible, or an
362 error is reported.
363 Clients may be listed with the
364 .Ic list-clients
365 command.
367 .Ar target-session
368 is the session id prefixed with a $, the name of a session (as listed by the
369 .Ic list-sessions
370 command), or the name of a client with the same syntax as
371 .Ar target-client ,
372 in which case the session attached to the client is used.
373 When looking for the session name,
375 initially searches for an exact match; if none is found, the session names
376 are checked for any for which
377 .Ar target-session
378 is a prefix or for which it matches as an
379 .Xr fnmatch 3
380 pattern.
381 If a single match is found, it is used as the target session; multiple matches
382 produce an error.
383 If a session is omitted, the current session is used if available; if no
384 current session is available, the most recently used is chosen.
386 .Ar target-window
387 specifies a window in the form
388 .Em session Ns \&: Ns Em window .
389 .Em session
390 follows the same rules as for
391 .Ar target-session ,
393 .Em window
394 is looked for in order: as a window index, for example mysession:1;
395 as a window ID, such as @1;
396 as an exact window name, such as mysession:mywindow; then as an
397 .Xr fnmatch 3
398 pattern or the start of a window name, such as mysession:mywin* or
399 mysession:mywin.
400 An empty window name specifies the next unused index if appropriate (for
401 example the
402 .Ic new-window
404 .Ic link-window
405 commands)
406 otherwise the current window in
407 .Em session
408 is chosen.
409 The special character
410 .Ql \&!
411 uses the last (previously current) window,
412 .Ql ^
413 selects the highest numbered window,
414 .Ql $
415 selects the lowest numbered window, and
416 .Ql +
418 .Ql -
419 select the next window or the previous window by number.
420 When the argument does not contain a colon,
422 first attempts to parse it as window; if that fails, an attempt is made to
423 match a session.
425 .Ar target-pane
426 takes a similar form to
427 .Ar target-window
428 but with the optional addition of a period followed by a pane index, for
429 example: mysession:mywindow.1.
430 If the pane index is omitted, the currently active pane in the specified
431 window is used.
432 If neither a colon nor period appears,
434 first attempts to use the argument as a pane index; if that fails, it is looked
435 up as for
436 .Ar target-window .
438 .Ql +
440 .Ql -
441 indicate the next or previous pane index, respectively.
442 One of the strings
443 .Em top ,
444 .Em bottom ,
445 .Em left ,
446 .Em right ,
447 .Em top-left ,
448 .Em top-right ,
449 .Em bottom-left
451 .Em bottom-right
452 may be used instead of a pane index.
454 The special characters
455 .Ql +
457 .Ql -
458 may be followed by an offset, for example:
459 .Bd -literal -offset indent
460 select-window -t:+2
463 When dealing with a session that doesn't contain sequential window indexes,
464 they will be correctly skipped.
467 also gives each pane created in a server an identifier consisting of a
468 .Ql %
469 and a number, starting from zero.
470 A pane's identifier is unique for the life of the
472 server and is passed to the child process of the pane in the
473 .Ev TMUX_PANE
474 environment variable.
475 It may be used alone to target a pane or the window containing it.
477 .Ar shell-command
478 arguments are
479 .Xr sh 1
480 commands.
481 These must be passed as a single item, which typically means quoting them, for
482 example:
483 .Bd -literal -offset indent
484 new-window 'vi /etc/passwd'
487 .Ar command
488 .Op Ar arguments
489 refers to a
491 command, passed with the command and arguments separately, for example:
492 .Bd -literal -offset indent
493 bind-key F1 set-window-option force-width 81
496 Or if using
497 .Xr sh 1 :
498 .Bd -literal -offset indent
499 $ tmux bind-key F1 set-window-option force-width 81
502 Multiple commands may be specified together as part of a
503 .Em command sequence .
504 Each command should be separated by spaces and a semicolon;
505 commands are executed sequentially from left to right and
506 lines ending with a backslash continue on to the next line,
507 except when escaped by another backslash.
508 A literal semicolon may be included by escaping it with a backslash (for
509 example, when specifying a command sequence to
510 .Ic bind-key ) .
512 Example
514 commands include:
515 .Bd -literal -offset indent
516 refresh-client -t/dev/ttyp2
518 rename-session -tfirst newname
520 set-window-option -t:0 monitor-activity on
522 new-window ; split-window -d
524 bind-key R source-file ~/.tmux.conf \e; \e
525         display-message "source-file done"
528 Or from
529 .Xr sh 1 :
530 .Bd -literal -offset indent
531 $ tmux kill-window -t :1
533 $ tmux new-window \e; split-window -d
535 $ tmux new-session -d 'vi /etc/passwd' \e; split-window -d \e; attach
537 .Sh CLIENTS AND SESSIONS
540 server manages clients, sessions, windows and panes.
541 Clients are attached to sessions to interact with them, either
542 when they are created with the
543 .Ic new-session
544 command, or later with the
545 .Ic attach-session
546 command.
547 Each session has one or more windows
548 .Em linked
549 into it.
550 Windows may be linked to multiple sessions and are made up of one or
551 more panes,
552 each of which contains a pseudo terminal.
553 Commands for creating, linking and otherwise manipulating windows
554 are covered
555 in the
556 .Sx WINDOWS AND PANES
557 section.
559 The following commands are available to manage clients and sessions:
560 .Bl -tag -width Ds
561 .It Xo Ic attach-session
562 .Op Fl dr
563 .Op Fl t Ar target-session
565 .D1 (alias: Ic attach )
566 If run from outside
567 .Nm ,
568 create a new client in the current terminal and attach it to
569 .Ar target-session .
570 If used from inside, switch the current client.
572 .Fl d
573 is specified, any other clients attached to the session are detached.
574 .Fl r
575 signifies the client is read-only (only keys bound to the
576 .Ic detach-client
578 .Ic switch-client
579 commands have any effect)
581 If no server is started,
582 .Ic attach-session
583 will attempt to start it; this will fail unless sessions are created in the
584 configuration file.
587 .Ar target-session
588 rules for
589 .Ic attach-session
590 are slightly adjusted: if
592 needs to select the most recently used session, it will prefer the most
593 recently used
594 .Em unattached
595 session.
596 .It Xo Ic detach-client
597 .Op Fl P
598 .Op Fl a
599 .Op Fl s Ar target-session
600 .Op Fl t Ar target-client
602 .D1 (alias: Ic detach )
603 Detach the current client if bound to a key, the client specified with
604 .Fl t ,
605 or all clients currently attached to the session specified by
606 .Fl s .
608 .Fl a
609 option kills all but the client given with
610 .Fl t .
612 .Fl P
613 is given, send SIGHUP to the parent process of the client, typically causing it
614 to exit.
615 .It Ic has-session Op Fl t Ar target-session
616 .D1 (alias: Ic has )
617 Report an error and exit with 1 if the specified session does not exist.
618 If it does exist, exit with 0.
619 .It Ic kill-server
620 Kill the
622 server and clients and destroy all sessions.
623 .It Ic kill-session
624 .Op Fl a
625 .Op Fl t Ar target-session
626 Destroy the given session, closing any windows linked to it and no other
627 sessions, and detaching all clients attached to it.
629 .Fl a
630 is given, all sessions but the specified one is killed.
631 .It Xo Ic list-clients
632 .Op Fl F Ar format
633 .Op Fl t Ar target-session
635 .D1 (alias: Ic lsc )
636 List all clients attached to the server.
637 For the meaning of the
638 .Fl F
639 flag, see the
640 .Sx FORMATS
641 section.
643 .Ar target-session
644 is specified, list only clients connected to that session.
645 .It Ic list-commands
646 .D1 (alias: Ic lscm )
647 List the syntax of all commands supported by
648 .Nm .
649 .It Ic list-sessions Op Fl F Ar format
650 .D1 (alias: Ic ls )
651 List all sessions managed by the server.
652 For the meaning of the
653 .Fl F
654 flag, see the
655 .Sx FORMATS
656 section.
657 .It Ic lock-client Op Fl t Ar target-client
658 .D1 (alias: Ic lockc )
659 Lock
660 .Ar target-client ,
661 see the
662 .Ic lock-server
663 command.
664 .It Ic lock-session Op Fl t Ar target-session
665 .D1 (alias: Ic locks )
666 Lock all clients attached to
667 .Ar target-session .
668 .It Xo Ic new-session
669 .Op Fl AdD
670 .Op Fl n Ar window-name
671 .Op Fl s Ar session-name
672 .Op Fl t Ar target-session
673 .Op Fl x Ar width
674 .Op Fl y Ar height
675 .Op Ar shell-command
677 .D1 (alias: Ic new )
678 Create a new session with name
679 .Ar session-name .
681 The new session is attached to the current terminal unless
682 .Fl d
683 is given.
684 .Ar window-name
686 .Ar shell-command
687 are the name of and shell command to execute in the initial window.
689 .Fl d
690 is used,
691 .Fl x
693 .Fl y
694 specify the size of the initial window (80 by 24 if not given).
696 If run from a terminal, any
697 .Xr termios 4
698 special characters are saved and used for new windows in the new session.
701 .Fl A
702 flag makes
703 .Ic new-session
704 behave like
705 .Ic attach-session
707 .Ar session-name
708 already exists; in the case,
709 .Fl D
710 behaves like
711 .Fl d
713 .Ic attach-session .
716 .Fl t
717 is given, the new session is
718 .Em grouped
719 with
720 .Ar target-session .
721 This means they share the same set of windows - all windows from
722 .Ar target-session
723 are linked to the new session and any subsequent new windows or windows being
724 closed are applied to both sessions.
725 The current and previous window and any session options remain independent and
726 either session may be killed without affecting the other.
727 Giving
728 .Fl n
730 .Ar shell-command
731 are invalid if
732 .Fl t
733 is used.
734 .It Xo Ic refresh-client
735 .Op Fl S
736 .Op Fl t Ar target-client
738 .D1 (alias: Ic refresh )
739 Refresh the current client if bound to a key, or a single client if one is given
740 with
741 .Fl t .
743 .Fl S
744 is specified, only update the client's status bar.
745 .It Xo Ic rename-session
746 .Op Fl t Ar target-session
747 .Ar new-name
749 .D1 (alias: Ic rename )
750 Rename the session to
751 .Ar new-name .
752 .It Xo Ic show-messages
753 .Op Fl t Ar target-client
755 .D1 (alias: Ic showmsgs )
756 Any messages displayed on the status line are saved in a per-client message
757 log, up to a maximum of the limit set by the
758 .Ar message-limit
759 session option for the session attached to that client.
760 This command displays the log for
761 .Ar target-client .
762 .It Ic source-file Ar path
763 .D1 (alias: Ic source )
764 Execute commands from
765 .Ar path .
766 .It Ic start-server
767 .D1 (alias: Ic start )
768 Start the
770 server, if not already running, without creating any sessions.
771 .It Xo Ic suspend-client
772 .Op Fl t Ar target-client
774 .D1 (alias: Ic suspendc )
775 Suspend a client by sending
776 .Dv SIGTSTP
777 (tty stop).
778 .It Xo Ic switch-client
779 .Op Fl lnpr
780 .Op Fl c Ar target-client
781 .Op Fl t Ar target-session
783 .D1 (alias: Ic switchc )
784 Switch the current session for client
785 .Ar target-client
787 .Ar target-session .
789 .Fl l ,
790 .Fl n
792 .Fl p
793 is used, the client is moved to the last, next or previous session
794 respectively.
795 .Fl r
796 toggles whether a client is read-only (see the
797 .Ic attach-session
798 command).
800 .Sh WINDOWS AND PANES
803 window may be in one of several modes.
804 The default permits direct access to the terminal attached to the window.
805 The other is copy mode, which permits a section of a window or its
806 history to be copied to a
807 .Em paste buffer
808 for later insertion into another window.
809 This mode is entered with the
810 .Ic copy-mode
811 command, bound to
812 .Ql \&[
813 by default.
814 It is also entered when a command that produces output, such as
815 .Ic list-keys ,
816 is executed from a key binding.
818 The keys available depend on whether emacs or vi mode is selected
819 (see the
820 .Ic mode-keys
821 option).
822 The following keys are supported as appropriate for the mode:
823 .Bl -column "FunctionXXXXXXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent
824 .It Sy "Function" Ta Sy "vi" Ta Sy "emacs"
825 .It Li "Back to indentation" Ta "^" Ta "M-m"
826 .It Li "Bottom of history" Ta "G" Ta "M-<"
827 .It Li "Clear selection" Ta "Escape" Ta "C-g"
828 .It Li "Copy selection" Ta "Enter" Ta "M-w"
829 .It Li "Cursor down" Ta "j" Ta "Down"
830 .It Li "Cursor left" Ta "h" Ta "Left"
831 .It Li "Cursor right" Ta "l" Ta "Right"
832 .It Li "Cursor to bottom line" Ta "L" Ta ""
833 .It Li "Cursor to middle line" Ta "M" Ta "M-r"
834 .It Li "Cursor to top line" Ta "H" Ta "M-R"
835 .It Li "Cursor up" Ta "k" Ta "Up"
836 .It Li "Delete entire line" Ta "d" Ta "C-u"
837 .It Li "Delete/Copy to end of line" Ta "D" Ta "C-k"
838 .It Li "End of line" Ta "$" Ta "C-e"
839 .It Li "Go to line" Ta ":" Ta "g"
840 .It Li "Half page down" Ta "C-d" Ta "M-Down"
841 .It Li "Half page up" Ta "C-u" Ta "M-Up"
842 .It Li "Jump forward" Ta "f" Ta "f"
843 .It Li "Jump to forward" Ta "t" Ta ""
844 .It Li "Jump backward" Ta "F" Ta "F"
845 .It Li "Jump to backward" Ta "T" Ta ""
846 .It Li "Jump again" Ta ";" Ta ";"
847 .It Li "Jump again in reverse" Ta "," Ta ","
848 .It Li "Next page" Ta "C-f" Ta "Page down"
849 .It Li "Next space" Ta "W" Ta ""
850 .It Li "Next space, end of word" Ta "E" Ta ""
851 .It Li "Next word" Ta "w" Ta ""
852 .It Li "Next word end" Ta "e" Ta "M-f"
853 .It Li "Paste buffer" Ta "p" Ta "C-y"
854 .It Li "Previous page" Ta "C-b" Ta "Page up"
855 .It Li "Previous word" Ta "b" Ta "M-b"
856 .It Li "Previous space" Ta "B" Ta ""
857 .It Li "Quit mode" Ta "q" Ta "Escape"
858 .It Li "Rectangle toggle" Ta "v" Ta "R"
859 .It Li "Scroll down" Ta "C-Down or C-e" Ta "C-Down"
860 .It Li "Scroll up" Ta "C-Up or C-y" Ta "C-Up"
861 .It Li "Search again" Ta "n" Ta "n"
862 .It Li "Search again in reverse" Ta "N" Ta "N"
863 .It Li "Search backward" Ta "?" Ta "C-r"
864 .It Li "Search forward" Ta "/" Ta "C-s"
865 .It Li "Start of line" Ta "0" Ta "C-a"
866 .It Li "Start selection" Ta "Space" Ta "C-Space"
867 .It Li "Top of history" Ta "g" Ta "M->"
868 .It Li "Transpose characters" Ta "" Ta "C-t"
871 The next and previous word keys use space and the
872 .Ql - ,
873 .Ql _
875 .Ql @
876 characters as word delimiters by default, but this can be adjusted by
877 setting the
878 .Em word-separators
879 session option.
880 Next word moves to the start of the next word, next word end to the end of the
881 next word and previous word to the start of the previous word.
882 The three next and previous space keys work similarly but use a space alone as
883 the word separator.
885 The jump commands enable quick movement within a line.
886 For instance, typing
887 .Ql f
888 followed by
889 .Ql /
890 will move the cursor to the next
891 .Ql /
892 character on the current line.
894 .Ql \&;
895 will then jump to the next occurrence.
897 Commands in copy mode may be prefaced by an optional repeat count.
898 With vi key bindings, a prefix is entered using the number keys; with
899 emacs, the Alt (meta) key and a number begins prefix entry.
900 For example, to move the cursor forward by ten words, use
901 .Ql M-1 0 M-f
902 in emacs mode, and
903 .Ql 10w
904 in vi.
906 When copying the selection, the repeat count indicates the buffer index to
907 replace, if used.
909 Mode key bindings are defined in a set of named tables:
910 .Em vi-edit
912 .Em emacs-edit
913 for keys used when line editing at the command prompt;
914 .Em vi-choice
916 .Em emacs-choice
917 for keys used when choosing from lists (such as produced by the
918 .Ic choose-window
919 command); and
920 .Em vi-copy
922 .Em emacs-copy
923 used in copy mode.
924 The tables may be viewed with the
925 .Ic list-keys
926 command and keys modified or removed with
927 .Ic bind-key
929 .Ic unbind-key .
930 One command accepts an argument,
931 .Ic copy-pipe ,
932 which copies the selection and pipes it to a command.
933 For example the following will bind
934 .Ql C-q
935 to copy the selection into
936 .Pa /tmp
937 as well as the paste buffer:
938 .Bd -literal -offset indent
939 bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"
942 The paste buffer key pastes the first line from the top paste buffer on the
943 stack.
945 The synopsis for the
946 .Ic copy-mode
947 command is:
948 .Bl -tag -width Ds
949 .It Xo Ic copy-mode
950 .Op Fl u
951 .Op Fl t Ar target-pane
953 Enter copy mode.
955 .Fl u
956 option scrolls one page up.
959 Each window displayed by
961 may be split into one or more
962 .Em panes ;
963 each pane takes up a certain area of the display and is a separate terminal.
964 A window may be split into panes using the
965 .Ic split-window
966 command.
967 Windows may be split horizontally (with the
968 .Fl h
969 flag) or vertically.
970 Panes may be resized with the
971 .Ic resize-pane
972 command (bound to
973 .Ql C-up ,
974 .Ql C-down
975 .Ql C-left
977 .Ql C-right
978 by default), the current pane may be changed with the
979 .Ic select-pane
980 command and the
981 .Ic rotate-window
983 .Ic swap-pane
984 commands may be used to swap panes without changing their position.
985 Panes are numbered beginning from zero in the order they are created.
987 A number of preset
988 .Em layouts
989 are available.
990 These may be selected with the
991 .Ic select-layout
992 command or cycled with
993 .Ic next-layout
994 (bound to
995 .Ql Space
996 by default); once a layout is chosen, panes within it may be moved and resized
997 as normal.
999 The following layouts are supported:
1000 .Bl -tag -width Ds
1001 .It Ic even-horizontal
1002 Panes are spread out evenly from left to right across the window.
1003 .It Ic even-vertical
1004 Panes are spread evenly from top to bottom.
1005 .It Ic main-horizontal
1006 A large (main) pane is shown at the top of the window and the remaining panes
1007 are spread from left to right in the leftover space at the bottom.
1008 Use the
1009 .Em main-pane-height
1010 window option to specify the height of the top pane.
1011 .It Ic main-vertical
1012 Similar to
1013 .Ic main-horizontal
1014 but the large pane is placed on the left and the others spread from top to
1015 bottom along the right.
1016 See the
1017 .Em main-pane-width
1018 window option.
1019 .It Ic tiled
1020 Panes are spread out as evenly as possible over the window in both rows and
1021 columns.
1024 In addition,
1025 .Ic select-layout
1026 may be used to apply a previously used layout - the
1027 .Ic list-windows
1028 command displays the layout of each window in a form suitable for use with
1029 .Ic select-layout .
1030 For example:
1031 .Bd -literal -offset indent
1032 $ tmux list-windows
1033 0: ksh [159x48]
1034     layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0}
1035 $ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0}
1039 automatically adjusts the size of the layout for the current window size.
1040 Note that a layout cannot be applied to a window with more panes than that
1041 from which the layout was originally defined.
1043 Commands related to windows and panes are as follows:
1044 .Bl -tag -width Ds
1045 .It Xo Ic break-pane
1046 .Op Fl dP
1047 .Op Fl F Ar format
1048 .Op Fl t Ar target-pane
1050 .D1 (alias: Ic breakp )
1051 Break
1052 .Ar target-pane
1053 off from its containing window to make it the only pane in a new window.
1055 .Fl d
1056 is given, the new window does not become the current window.
1058 .Fl P
1059 option prints information about the new window after it has been created.
1060 By default, it uses the format
1061 .Ql #{session_name}:#{window_index}
1062 but a different format may be specified with
1063 .Fl F .
1064 .It Xo Ic capture-pane
1065 .Op Fl aepq
1066 .Op Fl b Ar buffer-index
1067 .Op Fl E Ar end-line
1068 .Op Fl S Ar start-line
1069 .Op Fl t Ar target-pane
1071 .D1 (alias: Ic capturep )
1072 Capture the contents of a pane.
1074 .Fl p
1075 is given, the output goes to stdout, otherwise to the buffer specified with
1076 .Fl b
1077 or a new buffer if omitted.
1079 .Fl a
1080 is given, the alternate screen is used, and the history is not accessible.
1081 If no alternate screen exists, an error will be returned unless
1082 .Fl q
1083 is given.
1085 .Fl e
1086 is given, the output includes escape sequences for text and background
1087 attributes.
1088 .Fl C
1089 also escapes non-printable characters as octal \exxx.
1090 .Fl J
1091 joins wrapped lines and preserves trailing spaces at each line's end.
1093 .Fl S
1095 .Fl E
1096 specify the starting and ending line numbers, zero is the first line of the
1097 visible pane and negative numbers are lines in the history.
1098 The default is to capture only the visible contents of the pane.
1099 .It Xo
1100 .Ic choose-client
1101 .Op Fl F Ar format
1102 .Op Fl t Ar target-window
1103 .Op Ar template
1105 Put a window into client choice mode, allowing a client to be selected
1106 interactively from a list.
1107 After a client is chosen,
1108 .Ql %%
1109 is replaced by the client
1110 .Xr pty 4
1111 path in
1112 .Ar template
1113 and the result executed as a command.
1115 .Ar template
1116 is not given, "detach-client -t '%%'" is used.
1117 For the meaning of the
1118 .Fl F
1119 flag, see the
1120 .Sx FORMATS
1121 section.
1122 This command works only if at least one client is attached.
1123 .It Xo
1124 .Ic choose-list
1125 .Op Fl l Ar items
1126 .Op Fl t Ar target-window
1127 .Op Ar template
1129 Put a window into list choice mode, allowing
1130 .Ar items
1131 to be selected.
1132 .Ar items
1133 can be a comma-separated list to display more than one item.
1134 If an item has spaces, that entry must be quoted.
1135 After an item is chosen,
1136 .Ql %%
1137 is replaced by the chosen item in the
1138 .Ar template
1139 and the result is executed as a command.
1141 .Ar template
1142 is not given, "run-shell '%%'" is used.
1143 .Ar items
1144 also accepts format specifiers.
1145 For the meaning of this see the
1146 .Sx FORMATS
1147 section.
1148 This command works only if at least one client is attached.
1149 .It Xo
1150 .Ic choose-session
1151 .Op Fl F Ar format
1152 .Op Fl t Ar target-window
1153 .Op Ar template
1155 Put a window into session choice mode, where a session may be selected
1156 interactively from a list.
1157 When one is chosen,
1158 .Ql %%
1159 is replaced by the session name in
1160 .Ar template
1161 and the result executed as a command.
1163 .Ar template
1164 is not given, "switch-client -t '%%'" is used.
1165 For the meaning of the
1166 .Fl F
1167 flag, see the
1168 .Sx FORMATS
1169 section.
1170 This command works only if at least one client is attached.
1171 .It Xo
1172 .Ic choose-tree
1173 .Op Fl suw
1174 .Op Fl b Ar session-template
1175 .Op Fl c Ar window-template
1176 .Op Fl S Ar format
1177 .Op Fl W Ar format
1178 .Op Fl t Ar target-window
1180 Put a window into tree choice mode, where either sessions or windows may be
1181 selected interactively from a list.
1182 By default, windows belonging to a session are indented to show their
1183 relationship to a session.
1185 Note that the
1186 .Ic choose-window
1188 .Ic choose-session
1189 commands are wrappers around
1190 .Ic choose-tree .
1193 .Fl s
1194 is given, will show sessions.
1196 .Fl w
1197 is given, will show windows.
1199 By default, the tree is collapsed and sessions must be expanded to windows
1200 with the right arrow key.
1202 .Fl u
1203 option will start with all sessions expanded instead.
1206 .Fl b
1207 is given, will override the default session command.
1208 Note that
1209 .Ql %%
1210 can be used and will be replaced with the session name.
1211 The default option if not specified is "switch-client -t '%%'".
1213 .Fl c
1214 is given, will override the default window command.
1215 Like
1216 .Fl b ,
1217 .Ql %%
1218 can be used and will be replaced with the session name and window index.
1219 When a window is chosen from the list, the session command is run before the
1220 window command.
1223 .Fl S
1224 is given will display the specified format instead of the default session
1225 format.
1227 .Fl W
1228 is given will display the specified format instead of the default window
1229 format.
1230 For the meaning of the
1231 .Fl s
1233 .Fl w
1234 options, see the
1235 .Sx FORMATS
1236 section.
1238 This command works only if at least one client is attached.
1239 .It Xo
1240 .Ic choose-window
1241 .Op Fl F Ar format
1242 .Op Fl t Ar target-window
1243 .Op Ar template
1245 Put a window into window choice mode, where a window may be chosen
1246 interactively from a list.
1247 After a window is selected,
1248 .Ql %%
1249 is replaced by the session name and window index in
1250 .Ar template
1251 and the result executed as a command.
1253 .Ar template
1254 is not given, "select-window -t '%%'" is used.
1255 For the meaning of the
1256 .Fl F
1257 flag, see the
1258 .Sx FORMATS
1259 section.
1260 This command works only if at least one client is attached.
1261 .It Ic display-panes Op Fl t Ar target-client
1262 .D1 (alias: Ic displayp)
1263 Display a visible indicator of each pane shown by
1264 .Ar target-client .
1265 See the
1266 .Ic display-panes-time ,
1267 .Ic display-panes-colour ,
1269 .Ic display-panes-active-colour
1270 session options.
1271 While the indicator is on screen, a pane may be selected with the
1272 .Ql 0
1274 .Ql 9
1275 keys.
1276 .It Xo Ic find-window
1277 .Op Fl CNT
1278 .Op Fl F Ar format
1279 .Op Fl t Ar target-window
1280 .Ar match-string
1282 .D1 (alias: Ic findw )
1283 Search for the
1284 .Xr fnmatch 3
1285 pattern
1286 .Ar match-string
1287 in window names, titles, and visible content (but not history).
1288 The flags control matching behavior:
1289 .Fl C
1290 matches only visible window contents,
1291 .Fl N
1292 matches only the window name and
1293 .Fl T
1294 matches only the window title.
1295 The default is
1296 .Fl CNT .
1297 If only one window is matched, it'll be automatically selected,
1298 otherwise a choice list is shown.
1299 For the meaning of the
1300 .Fl F
1301 flag, see the
1302 .Sx FORMATS
1303 section.
1304 This command works only if at least one client is attached.
1305 .It Xo Ic join-pane
1306 .Op Fl bdhv
1307 .Oo Fl l
1308 .Ar size |
1309 .Fl p Ar percentage Oc
1310 .Op Fl s Ar src-pane
1311 .Op Fl t Ar dst-pane
1313 .D1 (alias: Ic joinp )
1314 Like
1315 .Ic split-window ,
1316 but instead of splitting
1317 .Ar dst-pane
1318 and creating a new pane, split it and move
1319 .Ar src-pane
1320 into the space.
1321 This can be used to reverse
1322 .Ic break-pane .
1324 .Fl b
1325 option causes
1326 .Ar src-pane
1327 to be joined to left of or above
1328 .Ar dst-pane .
1329 .It Xo Ic kill-pane
1330 .Op Fl a
1331 .Op Fl t Ar target-pane
1333 .D1 (alias: Ic killp )
1334 Destroy the given pane.
1335 If no panes remain in the containing window, it is also destroyed.
1337 .Fl a
1338 option kills all but the pane given with
1339 .Fl t .
1340 .It Xo Ic kill-window
1341 .Op Fl a
1342 .Op Fl t Ar target-window
1344 .D1 (alias: Ic killw )
1345 Kill the current window or the window at
1346 .Ar target-window ,
1347 removing it from any sessions to which it is linked.
1349 .Fl a
1350 option kills all but the window given with
1351 .Fl t .
1352 .It Ic last-pane Op Fl t Ar target-window
1353 .D1 (alias: Ic lastp )
1354 Select the last (previously selected) pane.
1355 .It Ic last-window Op Fl t Ar target-session
1356 .D1 (alias: Ic last )
1357 Select the last (previously selected) window.
1358 If no
1359 .Ar target-session
1360 is specified, select the last window of the current session.
1361 .It Xo Ic link-window
1362 .Op Fl dk
1363 .Op Fl s Ar src-window
1364 .Op Fl t Ar dst-window
1366 .D1 (alias: Ic linkw )
1367 Link the window at
1368 .Ar src-window
1369 to the specified
1370 .Ar dst-window .
1372 .Ar dst-window
1373 is specified and no such window exists, the
1374 .Ar src-window
1375 is linked there.
1377 .Fl k
1378 is given and
1379 .Ar dst-window
1380 exists, it is killed, otherwise an error is generated.
1382 .Fl d
1383 is given, the newly linked window is not selected.
1384 .It Xo Ic list-panes
1385 .Op Fl as
1386 .Op Fl F Ar format
1387 .Op Fl t Ar target
1389 .D1 (alias: Ic lsp )
1391 .Fl a
1392 is given,
1393 .Ar target
1394 is ignored and all panes on the server are listed.
1396 .Fl s
1397 is given,
1398 .Ar target
1399 is a session (or the current session).
1400 If neither is given,
1401 .Ar target
1402 is a window (or the current window).
1403 For the meaning of the
1404 .Fl F
1405 flag, see the
1406 .Sx FORMATS
1407 section.
1408 .It Xo Ic list-windows
1409 .Op Fl a
1410 .Op Fl F Ar format
1411 .Op Fl t Ar target-session
1413 .D1 (alias: Ic lsw )
1415 .Fl a
1416 is given, list all windows on the server.
1417 Otherwise, list windows in the current session or in
1418 .Ar target-session .
1419 For the meaning of the
1420 .Fl F
1421 flag, see the
1422 .Sx FORMATS
1423 section.
1424 .It Xo Ic move-pane
1425 .Op Fl bdhv
1426 .Oo Fl l
1427 .Ar size |
1428 .Fl p Ar percentage Oc
1429 .Op Fl s Ar src-pane
1430 .Op Fl t Ar dst-pane
1432 .D1 (alias: Ic movep )
1433 Like
1434 .Ic join-pane ,
1436 .Ar src-pane
1438 .Ar dst-pane
1439 may belong to the same window.
1440 .It Xo Ic move-window
1441 .Op Fl rdk
1442 .Op Fl s Ar src-window
1443 .Op Fl t Ar dst-window
1445 .D1 (alias: Ic movew )
1446 This is similar to
1447 .Ic link-window ,
1448 except the window at
1449 .Ar src-window
1450 is moved to
1451 .Ar dst-window .
1452 With
1453 .Fl r ,
1454 all windows in the session are renumbered in sequential order, respecting
1456 .Ic base-index
1457 option.
1458 .It Xo Ic new-window
1459 .Op Fl adkP
1460 .Op Fl c Ar start-directory
1461 .Op Fl n Ar window-name
1462 .Op Fl t Ar target-window
1463 .Op Fl F Ar format
1464 .Op Ar shell-command
1466 .D1 (alias: Ic neww )
1467 Create a new window.
1468 With
1469 .Fl a ,
1470 the new window is inserted at the next index up from the specified
1471 .Ar target-window ,
1472 moving windows up if necessary,
1473 otherwise
1474 .Ar target-window
1475 is the new window location.
1478 .Fl d
1479 is given, the session does not make the new window the current window.
1480 .Ar target-window
1481 represents the window to be created; if the target already exists an error is
1482 shown, unless the
1483 .Fl k
1484 flag is used, in which case it is destroyed.
1485 .Ar shell-command
1486 is the command to execute.
1488 .Ar shell-command
1489 is not specified, the value of the
1490 .Ic default-command
1491 option is used.
1492 .Fl c
1493 specifies the working directory in which the new window is created.
1494 It may have an absolute path or one of the following values (or a subdirectory):
1495 .Bl -column "XXXXXXXXXXXX" "XXXXXXXXXXXXXXXXXXXXXXXX" -offset indent
1496 .It Li "Empty string" Ta "Current pane's directory"
1497 .It Li "~" Ta "User's home directory"
1498 .It Li "-" Ta "Where session was started"
1499 .It Li "." Ta "Where server was started"
1502 When the shell command completes, the window closes.
1503 See the
1504 .Ic remain-on-exit
1505 option to change this behaviour.
1508 .Ev TERM
1509 environment variable must be set to
1510 .Dq screen
1511 for all programs running
1512 .Em inside
1513 .Nm .
1514 New windows will automatically have
1515 .Dq TERM=screen
1516 added to their environment, but care must be taken not to reset this in shell
1517 start-up files.
1520 .Fl P
1521 option prints information about the new window after it has been created.
1522 By default, it uses the format
1523 .Ql #{session_name}:#{window_index}
1524 but a different format may be specified with
1525 .Fl F .
1526 .It Ic next-layout Op Fl t Ar target-window
1527 .D1 (alias: Ic nextl )
1528 Move a window to the next layout and rearrange the panes to fit.
1529 .It Xo Ic next-window
1530 .Op Fl a
1531 .Op Fl t Ar target-session
1533 .D1 (alias: Ic next )
1534 Move to the next window in the session.
1536 .Fl a
1537 is used, move to the next window with an alert.
1538 .It Xo Ic pipe-pane
1539 .Op Fl o
1540 .Op Fl t Ar target-pane
1541 .Op Ar shell-command
1543 .D1 (alias: Ic pipep )
1544 Pipe any output sent by the program in
1545 .Ar target-pane
1546 to a shell command.
1547 A pane may only be piped to one command at a time, any existing pipe is
1548 closed before
1549 .Ar shell-command
1550 is executed.
1552 .Ar shell-command
1553 string may contain the special character sequences supported by the
1554 .Ic status-left
1555 option.
1556 If no
1557 .Ar shell-command
1558 is given, the current pipe (if any) is closed.
1561 .Fl o
1562 option only opens a new pipe if no previous pipe exists, allowing a pipe to
1563 be toggled with a single key, for example:
1564 .Bd -literal -offset indent
1565 bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'
1567 .It Xo Ic previous-layout
1568 .Op Fl t Ar target-window
1570 .D1 (alias: Ic prevl )
1571 Move to the previous layout in the session.
1572 .It Xo Ic previous-window
1573 .Op Fl a
1574 .Op Fl t Ar target-session
1576 .D1 (alias: Ic prev )
1577 Move to the previous window in the session.
1578 With
1579 .Fl a ,
1580 move to the previous window with an alert.
1581 .It Xo Ic rename-window
1582 .Op Fl t Ar target-window
1583 .Ar new-name
1585 .D1 (alias: Ic renamew )
1586 Rename the current window, or the window at
1587 .Ar target-window
1588 if specified, to
1589 .Ar new-name .
1590 .It Xo Ic resize-pane
1591 .Op Fl DLRUZ
1592 .Op Fl t Ar target-pane
1593 .Op Fl x Ar width
1594 .Op Fl y Ar height
1595 .Op Ar adjustment
1597 .D1 (alias: Ic resizep )
1598 Resize a pane, up, down, left or right by
1599 .Ar adjustment
1600 with
1601 .Fl U ,
1602 .Fl D ,
1603 .Fl L
1605 .Fl R ,
1607 to an absolute size
1608 with
1609 .Fl x
1611 .Fl y .
1613 .Ar adjustment
1614 is given in lines or cells (the default is 1).
1616 With
1617 .Fl Z ,
1618 the active pane is toggled between occupying the whole of the window and its
1619 normal position in the layout.
1620 .It Xo Ic respawn-pane
1621 .Op Fl k
1622 .Op Fl t Ar target-pane
1623 .Op Ar shell-command
1625 .D1 (alias: Ic respawnp )
1626 Reactivate a pane in which the command has exited (see the
1627 .Ic remain-on-exit
1628 window option).
1630 .Ar shell-command
1631 is not given, the command used when the pane was created is executed.
1632 The pane must be already inactive, unless
1633 .Fl k
1634 is given, in which case any existing command is killed.
1635 .It Xo Ic respawn-window
1636 .Op Fl k
1637 .Op Fl t Ar target-window
1638 .Op Ar shell-command
1640 .D1 (alias: Ic respawnw )
1641 Reactivate a window in which the command has exited (see the
1642 .Ic remain-on-exit
1643 window option).
1645 .Ar shell-command
1646 is not given, the command used when the window was created is executed.
1647 The window must be already inactive, unless
1648 .Fl k
1649 is given, in which case any existing command is killed.
1650 .It Xo Ic rotate-window
1651 .Op Fl DU
1652 .Op Fl t Ar target-window
1654 .D1 (alias: Ic rotatew )
1655 Rotate the positions of the panes within a window, either upward (numerically
1656 lower) with
1657 .Fl U
1658 or downward (numerically higher).
1659 .It Xo Ic select-layout
1660 .Op Fl np
1661 .Op Fl t Ar target-window
1662 .Op Ar layout-name
1664 .D1 (alias: Ic selectl )
1665 Choose a specific layout for a window.
1667 .Ar layout-name
1668 is not given, the last preset layout used (if any) is reapplied.
1669 .Fl n
1671 .Fl p
1672 are equivalent to the
1673 .Ic next-layout
1675 .Ic previous-layout
1676 commands.
1677 .It Xo Ic select-pane
1678 .Op Fl lDLRU
1679 .Op Fl t Ar target-pane
1681 .D1 (alias: Ic selectp )
1682 Make pane
1683 .Ar target-pane
1684 the active pane in window
1685 .Ar target-window .
1686 If one of
1687 .Fl D ,
1688 .Fl L ,
1689 .Fl R ,
1691 .Fl U
1692 is used, respectively the pane below, to the left, to the right, or above the
1693 target pane is used.
1694 .Fl l
1695 is the same as using the
1696 .Ic last-pane
1697 command.
1698 .It Xo Ic select-window
1699 .Op Fl lnpT
1700 .Op Fl t Ar target-window
1702 .D1 (alias: Ic selectw )
1703 Select the window at
1704 .Ar target-window .
1705 .Fl l ,
1706 .Fl n
1708 .Fl p
1709 are equivalent to the
1710 .Ic last-window ,
1711 .Ic next-window
1713 .Ic previous-window
1714 commands.
1716 .Fl T
1717 is given and the selected window is already the current window,
1718 the command behaves like
1719 .Ic last-window .
1720 .It Xo Ic split-window
1721 .Op Fl dhvP
1722 .Op Fl c Ar start-directory
1723 .Oo Fl l
1724 .Ar size |
1725 .Fl p Ar percentage Oc
1726 .Op Fl t Ar target-pane
1727 .Op Ar shell-command
1728 .Op Fl F Ar format
1730 .D1 (alias: Ic splitw )
1731 Create a new pane by splitting
1732 .Ar target-pane :
1733 .Fl h
1734 does a horizontal split and
1735 .Fl v
1736 a vertical split; if neither is specified,
1737 .Fl v
1738 is assumed.
1740 .Fl l
1742 .Fl p
1743 options specify the size of the new pane in lines (for vertical split) or in
1744 cells (for horizontal split), or as a percentage, respectively.
1745 All other options have the same meaning as for the
1746 .Ic new-window
1747 command.
1748 .It Xo Ic swap-pane
1749 .Op Fl dDU
1750 .Op Fl s Ar src-pane
1751 .Op Fl t Ar dst-pane
1753 .D1 (alias: Ic swapp )
1754 Swap two panes.
1756 .Fl U
1757 is used and no source pane is specified with
1758 .Fl s ,
1759 .Ar dst-pane
1760 is swapped with the previous pane (before it numerically);
1761 .Fl D
1762 swaps with the next pane (after it numerically).
1763 .Fl d
1764 instructs
1766 not to change the active pane.
1767 .It Xo Ic swap-window
1768 .Op Fl d
1769 .Op Fl s Ar src-window
1770 .Op Fl t Ar dst-window
1772 .D1 (alias: Ic swapw )
1773 This is similar to
1774 .Ic link-window ,
1775 except the source and destination windows are swapped.
1776 It is an error if no window exists at
1777 .Ar src-window .
1778 .It Xo Ic unlink-window
1779 .Op Fl k
1780 .Op Fl t Ar target-window
1782 .D1 (alias: Ic unlinkw )
1783 Unlink
1784 .Ar target-window .
1785 Unless
1786 .Fl k
1787 is given, a window may be unlinked only if it is linked to multiple sessions -
1788 windows may not be linked to no sessions;
1790 .Fl k
1791 is specified and the window is linked to only one session, it is unlinked and
1792 destroyed.
1794 .Sh KEY BINDINGS
1796 allows a command to be bound to most keys, with or without a prefix key.
1797 When specifying keys, most represent themselves (for example
1798 .Ql A
1800 .Ql Z ) .
1801 Ctrl keys may be prefixed with
1802 .Ql C-
1804 .Ql ^ ,
1805 and Alt (meta) with
1806 .Ql M- .
1807 In addition, the following special key names are accepted:
1808 .Em Up ,
1809 .Em Down ,
1810 .Em Left ,
1811 .Em Right ,
1812 .Em BSpace ,
1813 .Em BTab ,
1814 .Em DC
1815 (Delete),
1816 .Em End ,
1817 .Em Enter ,
1818 .Em Escape ,
1819 .Em F1
1821 .Em F20 ,
1822 .Em Home ,
1823 .Em IC
1824 (Insert),
1825 .Em NPage/PageDown/PgDn ,
1826 .Em PPage/PageUp/PgUp ,
1827 .Em Space ,
1829 .Em Tab .
1830 Note that to bind the
1831 .Ql \&"
1833 .Ql '
1834 keys, quotation marks are necessary, for example:
1835 .Bd -literal -offset indent
1836 bind-key '"' split-window
1837 bind-key "'" new-window
1840 Commands related to key bindings are as follows:
1841 .Bl -tag -width Ds
1842 .It Xo Ic bind-key
1843 .Op Fl cnr
1844 .Op Fl t Ar key-table
1845 .Ar key Ar command Op Ar arguments
1847 .D1 (alias: Ic bind )
1848 Bind key
1849 .Ar key
1851 .Ar command .
1852 By default (without
1853 .Fl t )
1854 the primary key bindings are modified (those normally activated with the prefix
1855 key); in this case, if
1856 .Fl n
1857 is specified, it is not necessary to use the prefix key,
1858 .Ar command
1859 is bound to
1860 .Ar key
1861 alone.
1863 .Fl r
1864 flag indicates this key may repeat, see the
1865 .Ic repeat-time
1866 option.
1869 .Fl t
1870 is present,
1871 .Ar key
1872 is bound in
1873 .Ar key-table :
1874 the binding for command mode with
1875 .Fl c
1876 or for normal mode without.
1877 To view the default bindings and possible commands, see the
1878 .Ic list-keys
1879 command.
1880 .It Ic list-keys Op Fl t Ar key-table
1881 .D1 (alias: Ic lsk )
1882 List all key bindings.
1883 Without
1884 .Fl t
1885 the primary key bindings - those executed when preceded by the prefix key -
1886 are printed.
1888 With
1889 .Fl t ,
1890 the key bindings in
1891 .Ar key-table
1892 are listed; this may be one of:
1893 .Em vi-edit ,
1894 .Em emacs-edit ,
1895 .Em vi-choice ,
1896 .Em emacs-choice ,
1897 .Em vi-copy
1899 .Em emacs-copy .
1900 .It Xo Ic send-keys
1901 .Op Fl lR
1902 .Op Fl t Ar target-pane
1903 .Ar key Ar ...
1905 .D1 (alias: Ic send )
1906 Send a key or keys to a window.
1907 Each argument
1908 .Ar key
1909 is the name of the key (such as
1910 .Ql C-a
1912 .Ql npage
1913 ) to send; if the string is not recognised as a key, it is sent as a series of
1914 characters.
1916 .Fl l
1917 flag disables key name lookup and sends the keys literally.
1918 All arguments are sent sequentially from first to last.
1920 .Fl R
1921 flag causes the terminal state to be reset.
1922 .It Xo Ic send-prefix
1923 .Op Fl 2
1924 .Op Fl t Ar target-pane
1926 Send the prefix key, or with
1927 .Fl 2
1928 the secondary prefix key, to a window as if it was pressed.
1929 .It Xo Ic unbind-key
1930 .Op Fl acn
1931 .Op Fl t Ar key-table
1932 .Ar key
1934 .D1 (alias: Ic unbind )
1935 Unbind the command bound to
1936 .Ar key .
1937 Without
1938 .Fl t
1939 the primary key bindings are modified; in this case, if
1940 .Fl n
1941 is specified, the command bound to
1942 .Ar key
1943 without a prefix (if any) is removed.
1945 .Fl a
1946 is present, all key bindings are removed.
1949 .Fl t
1950 is present,
1951 .Ar key
1953 .Ar key-table
1954 is unbound: the binding for command mode with
1955 .Fl c
1956 or for normal mode without.
1958 .Sh OPTIONS
1959 The appearance and behaviour of
1961 may be modified by changing the value of various options.
1962 There are three types of option:
1963 .Em server options ,
1964 .Em session options
1966 .Em window options .
1970 server has a set of global options which do not apply to any particular
1971 window or session.
1972 These are altered with the
1973 .Ic set-option
1974 .Fl s
1975 command, or displayed with the
1976 .Ic show-options
1977 .Fl s
1978 command.
1980 In addition, each individual session may have a set of session options, and
1981 there is a separate set of global session options.
1982 Sessions which do not have a particular option configured inherit the value
1983 from the global session options.
1984 Session options are set or unset with the
1985 .Ic set-option
1986 command and may be listed with the
1987 .Ic show-options
1988 command.
1989 The available server and session options are listed under the
1990 .Ic set-option
1991 command.
1993 Similarly, a set of window options is attached to each window, and there is
1994 a set of global window options from which any unset options are inherited.
1995 Window options are altered with the
1996 .Ic set-window-option
1997 command and can be listed with the
1998 .Ic show-window-options
1999 command.
2000 All window options are documented with the
2001 .Ic set-window-option
2002 command.
2005 also supports user options which are prefixed with a
2006 .Ql \&@ .
2007 User options may have any name, so long as they are prefixed with
2008 .Ql \&@ ,
2009 and be set to any string.
2010 For example
2011 .Bd -literal -offset indent
2012 $ tmux setw -q @foo "abc123"
2013 $ tmux showw -v @foo
2014 abc123
2017 Commands which set options are as follows:
2018 .Bl -tag -width Ds
2019 .It Xo Ic set-option
2020 .Op Fl agoqsuw
2021 .Op Fl t Ar target-session | Ar target-window
2022 .Ar option Ar value
2024 .D1 (alias: Ic set )
2025 Set a window option with
2026 .Fl w
2027 (equivalent to the
2028 .Ic set-window-option
2029 command),
2030 a server option with
2031 .Fl s ,
2032 otherwise a session option.
2035 .Fl g
2036 is specified, the global session or window option is set.
2037 With
2038 .Fl a ,
2039 and if the option expects a string,
2040 .Ar value
2041 is appended to the existing setting.
2043 .Fl u
2044 flag unsets an option, so a session inherits the option from the global
2045 options.
2046 It is not possible to unset a global option.
2049 .Fl o
2050 flag prevents setting an option that is already set.
2053 .Fl q
2054 flag suppresses the informational message (as if the
2055 .Ic quiet
2056 server option was set).
2058 Available window options are listed under
2059 .Ic set-window-option .
2061 .Ar value
2062 depends on the option and may be a number, a string, or a flag (on, off, or
2063 omitted to toggle).
2065 Available server options are:
2066 .Bl -tag -width Ds
2067 .It Ic buffer-limit Ar number
2068 Set the number of buffers; as new buffers are added to the top of the stack,
2069 old ones are removed from the bottom if necessary to maintain this maximum
2070 length.
2071 .It Ic escape-time Ar time
2072 Set the time in milliseconds for which
2074 waits after an escape is input to determine if it is part of a function or meta
2075 key sequences.
2076 The default is 500 milliseconds.
2077 .It Xo Ic exit-unattached
2078 .Op Ic on | off
2080 If enabled, the server will exit when there are no attached clients.
2081 .It Xo Ic quiet
2082 .Op Ic on | off
2084 Enable or disable the display of various informational messages (see also the
2085 .Fl q
2086 command line flag).
2087 .It Xo Ic set-clipboard
2088 .Op Ic on | off
2090 Attempt to set the terminal clipboard content using the
2091 \ee]52;...\e007
2092 .Xr xterm 1
2093 escape sequences.
2094 This option is on by default if there is an
2095 .Em \&Ms
2096 entry in the
2097 .Xr terminfo 5
2098 description for the client terminal.
2099 Note that this feature needs to be enabled in
2100 .Xr xterm 1
2101 by setting the resource:
2102 .Bd -literal -offset indent
2103 disallowedWindowOps: 20,21,SetXprop
2106 Or changing this property from the
2107 .Xr xterm 1
2108 interactive menu when required.
2111 Available session options are:
2112 .Bl -tag -width Ds
2113 .It Ic assume-paste-time Ar milliseconds
2114 If keys are entered faster than one in
2115 .Ar milliseconds ,
2116 they are assumed to have been pasted rather than typed and
2118 key bindings are not processed.
2119 The default is one millisecond and zero disables.
2120 .It Ic base-index Ar index
2121 Set the base index from which an unused index should be searched when a new
2122 window is created.
2123 The default is zero.
2124 .It Xo Ic bell-action
2125 .Op Ic any | none | current
2127 Set action on window bell.
2128 .Ic any
2129 means a bell in any window linked to a session causes a bell in the current
2130 window of that session,
2131 .Ic none
2132 means all bells are ignored and
2133 .Ic current
2134 means only bells in windows other than the current window are ignored.
2135 .It Xo Ic bell-on-alert
2136 .Op Ic on | off
2138 If on, ring the terminal bell when an alert
2139 occurs.
2140 .It Ic default-command Ar shell-command
2141 Set the command used for new windows (if not specified when the window is
2142 created) to
2143 .Ar shell-command ,
2144 which may be any
2145 .Xr sh 1
2146 command.
2147 The default is an empty string, which instructs
2149 to create a login shell using the value of the
2150 .Ic default-shell
2151 option.
2152 .It Ic default-path Ar path
2153 Set the default working directory for new panes.
2154 If empty (the default), the working directory is determined from the process
2155 running in the active pane, from the command line environment or from the
2156 working directory where the session was created.
2157 Otherwise the same options are available as for the
2158 .Fl c
2159 flag to
2160 .Ic new-window .
2161 .It Ic default-shell Ar path
2162 Specify the default shell.
2163 This is used as the login shell for new windows when the
2164 .Ic default-command
2165 option is set to empty, and must be the full path of the executable.
2166 When started
2168 tries to set a default value from the first suitable of the
2169 .Ev SHELL
2170 environment variable, the shell returned by
2171 .Xr getpwuid 3 ,
2173 .Pa /bin/sh .
2174 This option should be configured when
2176 is used as a login shell.
2177 .It Ic default-terminal Ar terminal
2178 Set the default terminal for new windows created in this session - the
2179 default value of the
2180 .Ev TERM
2181 environment variable.
2184 to work correctly, this
2185 .Em must
2186 be set to
2187 .Ql screen
2188 or a derivative of it.
2189 .It Xo Ic destroy-unattached
2190 .Op Ic on | off
2192 If enabled and the session is no longer attached to any clients, it is
2193 destroyed.
2194 .It Xo Ic detach-on-destroy
2195 .Op Ic on | off
2197 If on (the default), the client is detached when the session it is attached to
2198 is destroyed.
2199 If off, the client is switched to the most recently active of the remaining
2200 sessions.
2201 .It Ic display-panes-active-colour Ar colour
2202 Set the colour used by the
2203 .Ic display-panes
2204 command to show the indicator for the active pane.
2205 .It Ic display-panes-colour Ar colour
2206 Set the colour used by the
2207 .Ic display-panes
2208 command to show the indicators for inactive panes.
2209 .It Ic display-panes-time Ar time
2210 Set the time in milliseconds for which the indicators shown by the
2211 .Ic display-panes
2212 command appear.
2213 .It Ic display-time Ar time
2214 Set the amount of time for which status line messages and other on-screen
2215 indicators are displayed.
2216 .Ar time
2217 is in milliseconds.
2218 .It Ic history-limit Ar lines
2219 Set the maximum number of lines held in window history.
2220 This setting applies only to new windows - existing window histories are not
2221 resized and retain the limit at the point they were created.
2222 .It Ic lock-after-time Ar number
2223 Lock the session (like the
2224 .Ic lock-session
2225 command) after
2226 .Ar number
2227 seconds of inactivity, or the entire server (all sessions) if the
2228 .Ic lock-server
2229 option is set.
2230 The default is not to lock (set to 0).
2231 .It Ic lock-command Ar shell-command
2232 Command to run when locking each client.
2233 The default is to run
2234 .Xr lock 1
2235 with
2236 .Fl np .
2237 .It Xo Ic lock-server
2238 .Op Ic on | off
2240 If this option is
2241 .Ic on
2242 (the default),
2243 instead of each session locking individually as each has been
2244 idle for
2245 .Ic lock-after-time ,
2246 the entire server will lock after
2247 .Em all
2248 sessions would have locked.
2249 This has no effect as a session option; it must be set as a global option.
2250 .It Ic message-attr Ar attributes
2251 Set status line message attributes, where
2252 .Ar attributes
2253 is either
2254 .Ic none
2255 or a comma-delimited list of one or more of:
2256 .Ic bright
2258 .Ic bold ) ,
2259 .Ic dim ,
2260 .Ic underscore ,
2261 .Ic blink ,
2262 .Ic reverse ,
2263 .Ic hidden ,
2265 .Ic italics .
2266 .It Ic message-bg Ar colour
2267 Set status line message background colour, where
2268 .Ar colour
2269 is one of:
2270 .Ic black ,
2271 .Ic red ,
2272 .Ic green ,
2273 .Ic yellow ,
2274 .Ic blue ,
2275 .Ic magenta ,
2276 .Ic cyan ,
2277 .Ic white ,
2278 aixterm bright variants (if supported:
2279 .Ic brightred ,
2280 .Ic brightgreen ,
2281 and so on),
2282 .Ic colour0
2284 .Ic colour255
2285 from the 256-colour set,
2286 .Ic default ,
2287 or a hexadecimal RGB string such as
2288 .Ql #ffffff ,
2289 which chooses the closest match from the default 256-colour set.
2290 .It Ic message-command-attr Ar attributes
2291 Set status line message attributes when in command mode.
2292 .It Ic message-command-bg Ar colour
2293 Set status line message background colour when in command mode.
2294 .It Ic message-command-fg Ar colour
2295 Set status line message foreground colour when in command mode.
2296 .It Ic message-fg Ar colour
2297 Set status line message foreground colour.
2298 .It Ic message-limit Ar number
2299 Set the number of error or information messages to save in the message log for
2300 each client.
2301 The default is 20.
2302 .It Xo Ic mouse-resize-pane
2303 .Op Ic on | off
2305 If on,
2307 captures the mouse and allows panes to be resized by dragging on their borders.
2308 .It Xo Ic mouse-select-pane
2309 .Op Ic on | off
2311 If on,
2313 captures the mouse and when a window is split into multiple panes the mouse may
2314 be used to select the current pane.
2315 The mouse click is also passed through to the application as normal.
2316 .It Xo Ic mouse-select-window
2317 .Op Ic on | off
2319 If on, clicking the mouse on a window name in the status line will select that
2320 window.
2321 .It Xo Ic mouse-utf8
2322 .Op Ic on | off
2324 If enabled, request mouse input as UTF-8 on UTF-8 terminals.
2325 .It Ic pane-active-border-bg Ar colour
2326 .It Ic pane-active-border-fg Ar colour
2327 Set the pane border colour for the currently active pane.
2328 .It Ic pane-border-bg Ar colour
2329 .It Ic pane-border-fg Ar colour
2330 Set the pane border colour for panes aside from the active pane.
2331 .It Ic prefix Ar key
2332 Set the key accepted as a prefix key.
2333 .It Ic prefix2 Ar key
2334 Set a secondary key accepted as a prefix key.
2335 .It Xo Ic renumber-windows
2336 .Op Ic on | off
2338 If on, when a window is closed in a session, automatically renumber the other
2339 windows in numerical order.
2340 This respects the
2341 .Ic base-index
2342 option if it has been set.
2343 If off, do not renumber the windows.
2344 .It Ic repeat-time Ar time
2345 Allow multiple commands to be entered without pressing the prefix-key again
2346 in the specified
2347 .Ar time
2348 milliseconds (the default is 500).
2349 Whether a key repeats may be set when it is bound using the
2350 .Fl r
2351 flag to
2352 .Ic bind-key .
2353 Repeat is enabled for the default keys bound to the
2354 .Ic resize-pane
2355 command.
2356 .It Xo Ic set-remain-on-exit
2357 .Op Ic on | off
2359 Set the
2360 .Ic remain-on-exit
2361 window option for any windows first created in this session.
2362 When this option is true, windows in which the running program has
2363 exited do not close, instead remaining open but inactivate.
2364 Use the
2365 .Ic respawn-window
2366 command to reactivate such a window, or the
2367 .Ic kill-window
2368 command to destroy it.
2369 .It Xo Ic set-titles
2370 .Op Ic on | off
2372 Attempt to set the client terminal title using the
2373 .Em tsl
2375 .Em fsl
2376 .Xr terminfo 5
2377 entries if they exist.
2379 automatically sets these to the \ee]2;...\e007 sequence if
2380 the terminal appears to be an xterm.
2381 This option is off by default.
2382 Note that elinks
2383 will only attempt to set the window title if the STY environment
2384 variable is set.
2385 .It Ic set-titles-string Ar string
2386 String used to set the window title if
2387 .Ic set-titles
2388 is on.
2389 Character sequences are replaced as for the
2390 .Ic status-left
2391 option.
2392 .It Xo Ic status
2393 .Op Ic on | off
2395 Show or hide the status line.
2396 .It Ic status-attr Ar attributes
2397 Set status line attributes.
2398 .It Ic status-bg Ar colour
2399 Set status line background colour.
2400 .It Ic status-fg Ar colour
2401 Set status line foreground colour.
2402 .It Ic status-interval Ar interval
2403 Update the status bar every
2404 .Ar interval
2405 seconds.
2406 By default, updates will occur every 15 seconds.
2407 A setting of zero disables redrawing at interval.
2408 .It Xo Ic status-justify
2409 .Op Ic left | centre | right
2411 Set the position of the window list component of the status line: left, centre
2412 or right justified.
2413 .It Xo Ic status-keys
2414 .Op Ic vi | emacs
2416 Use vi or emacs-style
2417 key bindings in the status line, for example at the command prompt.
2418 The default is emacs, unless the
2419 .Ev VISUAL
2421 .Ev EDITOR
2422 environment variables are set and contain the string
2423 .Ql vi .
2424 .It Ic status-left Ar string
2425 Display
2426 .Ar string
2427 to the left of the status bar.
2428 .Ar string
2429 will be passed through
2430 .Xr strftime 3
2431 before being used.
2432 By default, the session name is shown.
2433 .Ar string
2434 may contain any of the following special character sequences:
2435 .Bl -column "Character pair" "Replaced with" -offset indent
2436 .It Sy "Character pair" Ta Sy "Replaced with"
2437 .It Li "#(shell-command)" Ta "First line of the command's output"
2438 .It Li "#[attributes]" Ta "Colour or attribute change"
2439 .It Li "#H" Ta "Hostname of local host"
2440 .It Li "#h" Ta "Hostname of local host without the domain name"
2441 .It Li "#F" Ta "Current window flag"
2442 .It Li "#I" Ta "Current window index"
2443 .It Li "#D" Ta "Current pane unique identifier"
2444 .It Li "#P" Ta "Current pane index"
2445 .It Li "#S" Ta "Session name"
2446 .It Li "#T" Ta "Current pane title"
2447 .It Li "#W" Ta "Current window name"
2448 .It Li "##" Ta "A literal" Ql #
2451 The #(shell-command) form executes
2452 .Ql shell-command
2453 and inserts the first line of its output.
2454 Note that shell commands are only executed once at the interval specified by
2456 .Ic status-interval
2457 option: if the status line is redrawn in the meantime, the previous result is
2458 used.
2459 Shell commands are executed with the
2461 global environment set (see the
2462 .Sx ENVIRONMENT
2463 section).
2465 For details on how the names and titles can be set see the
2466 .Sx "NAMES AND TITLES"
2467 section.
2469 #[attributes] allows a comma-separated list of attributes to be specified,
2470 these may be
2471 .Ql fg=colour
2472 to set the foreground colour,
2473 .Ql bg=colour
2474 to set the background colour, the name of one of the attributes (listed under
2476 .Ic message-attr
2477 option) to turn an attribute on, or an attribute prefixed with
2478 .Ql no
2479 to turn one off, for example
2480 .Ic nobright .
2481 Examples are:
2482 .Bd -literal -offset indent
2483 #(sysctl vm.loadavg)
2484 #[fg=yellow,bold]#(apm -l)%%#[default] [#S]
2487 Where appropriate, special character sequences may be prefixed with a number to
2488 specify the maximum length, for example
2489 .Ql #24T .
2491 By default, UTF-8 in
2492 .Ar string
2493 is not interpreted, to enable UTF-8, use the
2494 .Ic status-utf8
2495 option.
2496 .It Ic status-left-attr Ar attributes
2497 Set the attribute of the left part of the status line.
2498 .It Ic status-left-bg Ar colour
2499 Set the background colour of the left part of the status line.
2500 .It Ic status-left-fg Ar colour
2501 Set the foreground colour of the left part of the status line.
2502 .It Ic status-left-length Ar length
2503 Set the maximum
2504 .Ar length
2505 of the left component of the status bar.
2506 The default is 10.
2507 .It Xo Ic status-position
2508 .Op Ic top | bottom
2510 Set the position of the status line.
2511 .It Ic status-right Ar string
2512 Display
2513 .Ar string
2514 to the right of the status bar.
2515 By default, the current window title in double quotes, the date and the time
2516 are shown.
2517 As with
2518 .Ic status-left ,
2519 .Ar string
2520 will be passed to
2521 .Xr strftime 3 ,
2522 character pairs are replaced, and UTF-8 is dependent on the
2523 .Ic status-utf8
2524 option.
2525 .It Ic status-right-attr Ar attributes
2526 Set the attribute of the right part of the status line.
2527 .It Ic status-right-bg Ar colour
2528 Set the background colour of the right part of the status line.
2529 .It Ic status-right-fg Ar colour
2530 Set the foreground colour of the right part of the status line.
2531 .It Ic status-right-length Ar length
2532 Set the maximum
2533 .Ar length
2534 of the right component of the status bar.
2535 The default is 40.
2536 .It Xo Ic status-utf8
2537 .Op Ic on | off
2539 Instruct
2541 to treat top-bit-set characters in the
2542 .Ic status-left
2544 .Ic status-right
2545 strings as UTF-8; notably, this is important for wide characters.
2546 This option defaults to off.
2547 .It Ic terminal-overrides Ar string
2548 Contains a list of entries which override terminal descriptions read using
2549 .Xr terminfo 5 .
2550 .Ar string
2551 is a comma-separated list of items each a colon-separated string made up of a
2552 terminal type pattern (matched using
2553 .Xr fnmatch 3 )
2554 and a set of
2555 .Em name=value
2556 entries.
2558 For example, to set the
2559 .Ql clear
2560 .Xr terminfo 5
2561 entry to
2562 .Ql \ee[H\ee[2J
2563 for all terminal types and the
2564 .Ql dch1
2565 entry to
2566 .Ql \ee[P
2567 for the
2568 .Ql rxvt
2569 terminal type, the option could be set to the string:
2570 .Bd -literal -offset indent
2571 "*:clear=\ee[H\ee[2J,rxvt:dch1=\ee[P"
2574 The terminal entry value is passed through
2575 .Xr strunvis 3
2576 before interpretation.
2577 The default value forcibly corrects the
2578 .Ql colors
2579 entry for terminals which support 88 or 256 colours:
2580 .Bd -literal -offset indent
2581 "*88col*:colors=88,*256col*:colors=256,xterm*:XT"
2583 .It Ic update-environment Ar variables
2584 Set a space-separated string containing a list of environment variables to be
2585 copied into the session environment when a new session is created or an
2586 existing session is attached.
2587 Any variables that do not exist in the source environment are set to be
2588 removed from the session environment (as if
2589 .Fl r
2590 was given to the
2591 .Ic set-environment
2592 command).
2593 The default is
2594 "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID
2595 XAUTHORITY".
2596 .It Xo Ic visual-activity
2597 .Op Ic on | off
2599 If on, display a status line message when activity occurs in a window
2600 for which the
2601 .Ic monitor-activity
2602 window option is enabled.
2603 .It Xo Ic visual-bell
2604 .Op Ic on | off
2606 If this option is on, a message is shown on a bell instead of it being passed
2607 through to the terminal (which normally makes a sound).
2608 Also see the
2609 .Ic bell-action
2610 option.
2611 .It Xo Ic visual-content
2612 .Op Ic on | off
2614 Like
2615 .Ic visual-activity ,
2616 display a message when content is present in a window
2617 for which the
2618 .Ic monitor-content
2619 window option is enabled.
2620 .It Xo Ic visual-silence
2621 .Op Ic on | off
2624 .Ic monitor-silence
2625 is enabled, prints a message after the interval has expired on a given window.
2626 .It Ic word-separators Ar string
2627 Sets the session's conception of what characters are considered word
2628 separators, for the purposes of the next and previous word commands in
2629 copy mode.
2630 The default is
2631 .Ql \ -_@ .
2633 .It Xo Ic set-window-option
2634 .Op Fl agqu
2635 .Op Fl t Ar target-window
2636 .Ar option Ar value
2638 .D1 (alias: Ic setw )
2639 Set a window option.
2641 .Fl a ,
2642 .Fl g ,
2643 .Fl q
2645 .Fl u
2646 flags work similarly to the
2647 .Ic set-option
2648 command.
2650 Supported window options are:
2652 .Bl -tag -width Ds -compact
2653 .It Xo Ic aggressive-resize
2654 .Op Ic on | off
2656 Aggressively resize the chosen window.
2657 This means that
2659 will resize the window to the size of the smallest session for which it is the
2660 current window, rather than the smallest session to which it is attached.
2661 The window may resize when the current window is changed on another sessions;
2662 this option is good for full-screen programs which support
2663 .Dv SIGWINCH
2664 and poor for interactive programs such as shells.
2666 .It Xo Ic allow-rename
2667 .Op Ic on | off
2669 Allow programs to change the window name using a terminal escape
2670 sequence (\\033k...\\033\\\\).
2671 The default is on.
2673 .It Xo Ic alternate-screen
2674 .Op Ic on | off
2676 This option configures whether programs running inside
2678 may use the terminal alternate screen feature, which allows the
2679 .Em smcup
2681 .Em rmcup
2682 .Xr terminfo 5
2683 capabilities.
2684 The alternate screen feature preserves the contents of the window when an
2685 interactive application starts and restores it on exit, so that any output
2686 visible before the application starts reappears unchanged after it exits.
2687 The default is on.
2689 .It Xo Ic automatic-rename
2690 .Op Ic on | off
2692 Control automatic window renaming.
2693 When this setting is enabled,
2695 will attempt - on supported platforms - to rename the window to reflect the
2696 command currently running in it.
2697 This flag is automatically disabled for an individual window when a name
2698 is specified at creation with
2699 .Ic new-window
2701 .Ic new-session ,
2702 or later with
2703 .Ic rename-window ,
2704 or with a terminal escape sequence.
2705 It may be switched off globally with:
2706 .Bd -literal -offset indent
2707 set-window-option -g automatic-rename off
2710 .It Ic c0-change-interval Ar interval
2711 .It Ic c0-change-trigger Ar trigger
2712 These two options configure a simple form of rate limiting for a pane.
2715 sees more than
2716 .Ar trigger
2717 C0 sequences that modify the screen (for example, carriage returns, linefeeds
2718 or backspaces) in one millisecond, it will stop updating the pane immediately and
2719 instead redraw it entirely every
2720 .Ar interval
2721 milliseconds.
2722 This helps to prevent fast output (such as
2723 .Xr yes 1
2724 overwhelming the terminal).
2725 The default is a trigger of 250 and an interval of 100.
2726 A trigger of zero disables the rate limiting.
2728 .It Ic clock-mode-colour Ar colour
2729 Set clock colour.
2731 .It Xo Ic clock-mode-style
2732 .Op Ic 12 | 24
2734 Set clock hour format.
2736 .It Ic command-prefix Ar string
2737 String prefixed to commands (apart from a plain shell as set by the
2738 .Ic default-shell
2739 option).
2740 The default is
2741 .Ql "exec\ " .
2743 .It Ic force-height Ar height
2744 .It Ic force-width Ar width
2745 Prevent
2747 from resizing a window to greater than
2748 .Ar width
2750 .Ar height .
2751 A value of zero restores the default unlimited setting.
2753 .It Ic main-pane-height Ar height
2754 .It Ic main-pane-width Ar width
2755 Set the width or height of the main (left or top) pane in the
2756 .Ic main-horizontal
2758 .Ic main-vertical
2759 layouts.
2761 .It Ic mode-attr Ar attributes
2762 Set window modes attributes.
2764 .It Ic mode-bg Ar colour
2765 Set window modes background colour.
2767 .It Ic mode-fg Ar colour
2768 Set window modes foreground colour.
2770 .It Xo Ic mode-keys
2771 .Op Ic vi | emacs
2773 Use vi or emacs-style key bindings in copy and choice modes.
2774 As with the
2775 .Ic status-keys
2776 option, the default is emacs, unless
2777 .Ev VISUAL
2779 .Ev EDITOR
2780 contains
2781 .Ql vi .
2783 .It Xo Ic mode-mouse
2784 .Op Ic on | off | copy-mode
2786 Mouse state in modes.
2787 If on, the mouse may be used to enter copy mode and copy a selection by
2788 dragging, to enter copy mode and scroll with the mouse wheel, or to select an
2789 option in choice mode.
2790 If set to
2791 .Em copy-mode ,
2792 the mouse behaves as set to on, but cannot be used to enter copy
2793 mode.
2795 .It Xo Ic monitor-activity
2796 .Op Ic on | off
2798 Monitor for activity in the window.
2799 Windows with activity are highlighted in the status line.
2801 .It Ic monitor-content Ar match-string
2802 Monitor content in the window.
2803 When
2804 .Xr fnmatch 3
2805 pattern
2806 .Ar match-string
2807 appears in the window, it is highlighted in the status line.
2809 .It Xo Ic monitor-silence
2810 .Op Ic interval
2812 Monitor for silence (no activity) in the window within
2813 .Ic interval
2814 seconds.
2815 Windows that have been silent for the interval are highlighted in the
2816 status line.
2817 An interval of zero disables the monitoring.
2819 .It Ic other-pane-height Ar height
2820 Set the height of the other panes (not the main pane) in the
2821 .Ic main-horizontal
2822 layout.
2823 If this option is set to 0 (the default), it will have no effect.
2824 If both the
2825 .Ic main-pane-height
2827 .Ic other-pane-height
2828 options are set, the main pane will grow taller to make the other panes the
2829 specified height, but will never shrink to do so.
2831 .It Ic other-pane-width Ar width
2832 Like
2833 .Ic other-pane-height ,
2834 but set the width of other panes in the
2835 .Ic main-vertical
2836 layout.
2838 .It Ic pane-base-index Ar index
2839 Like
2840 .Ic base-index ,
2841 but set the starting index for pane numbers.
2843 .It Xo Ic remain-on-exit
2844 .Op Ic on | off
2846 A window with this flag set is not destroyed when the program running in it
2847 exits.
2848 The window may be reactivated with the
2849 .Ic respawn-window
2850 command.
2852 .It Xo Ic synchronize-panes
2853 .Op Ic on | off
2855 Duplicate input to any pane to all other panes in the same window (only
2856 for panes that are not in any special mode).
2858 .It Xo Ic utf8
2859 .Op Ic on | off
2861 Instructs
2863 to expect UTF-8 sequences to appear in this window.
2865 .It Ic window-status-bell-attr Ar attributes
2866 Set status line attributes for windows which have a bell alert.
2868 .It Ic window-status-bell-bg Ar colour
2869 Set status line background colour for windows with a bell alert.
2871 .It Ic window-status-bell-fg Ar colour
2872 Set status line foreground colour for windows with a bell alert.
2874 .It Ic window-status-content-attr Ar attributes
2875 Set status line attributes for windows which have a content alert.
2877 .It Ic window-status-content-bg Ar colour
2878 Set status line background colour for windows with a content alert.
2880 .It Ic window-status-content-fg Ar colour
2881 Set status line foreground colour for windows with a content alert.
2883 .It Ic window-status-activity-attr Ar attributes
2884 Set status line attributes for windows which have an activity (or silence) alert.
2886 .It Ic window-status-activity-bg Ar colour
2887 Set status line background colour for windows with an activity alert.
2889 .It Ic window-status-activity-fg Ar colour
2890 Set status line foreground colour for windows with an activity alert.
2892 .It Ic window-status-attr Ar attributes
2893 Set status line attributes for a single window.
2895 .It Ic window-status-bg Ar colour
2896 Set status line background colour for a single window.
2898 .It Ic window-status-current-attr Ar attributes
2899 Set status line attributes for the currently active window.
2901 .It Ic window-status-current-bg Ar colour
2902 Set status line background colour for the currently active window.
2904 .It Ic window-status-current-fg Ar colour
2905 Set status line foreground colour for the currently active window.
2907 .It Ic window-status-current-format Ar string
2908 Like
2909 .Ar window-status-format ,
2910 but is the format used when the window is the current window.
2912 .It Ic window-status-last-attr Ar attributes
2913 Set status line attributes for the last active window.
2915 .It Ic window-status-last-bg Ar colour
2916 Set status line background colour for the last active window.
2918 .It Ic window-status-last-fg Ar colour
2919 Set status line foreground colour for the last active window.
2921 .It Ic window-status-fg Ar colour
2922 Set status line foreground colour for a single window.
2924 .It Ic window-status-format Ar string
2925 Set the format in which the window is displayed in the status line window list.
2926 See the
2927 .Ar status-left
2928 option for details of special character sequences available.
2929 The default is
2930 .Ql #I:#W#F .
2932 .It Ic window-status-separator Ar string
2933 Sets the separator drawn between windows in the status line.
2934 The default is a single space character.
2936 .It Xo Ic xterm-keys
2937 .Op Ic on | off
2939 If this option is set,
2941 will generate
2942 .Xr xterm 1 -style
2943 function key sequences; these have a number included to indicate modifiers such
2944 as Shift, Alt or Ctrl.
2945 The default is off.
2947 .It Xo Ic wrap-search
2948 .Op Ic on | off
2950 If this option is set, searches will wrap around the end of the pane contents.
2951 The default is on.
2953 .It Xo Ic show-options
2954 .Op Fl gqsvw
2955 .Op Fl t Ar target-session | Ar target-window
2956 .Op Ar option
2958 .D1 (alias: Ic show )
2959 Show the window options (or a single window option if given) with
2960 .Fl w
2961 (equivalent to
2962 .Ic show-window-options ) ,
2963 the server options with
2964 .Fl s ,
2965 otherwise the session options for
2966 .Ar target session .
2967 Global session or window options are listed if
2968 .Fl g
2969 is used.
2970 .Fl v
2971 shows only the option value, not the name.
2973 .Fl q
2974 is set, no error will be returned if
2975 .Ar option
2976 is unset.
2977 .It Xo Ic show-window-options
2978 .Op Fl gv
2979 .Op Fl t Ar target-window
2980 .Op Ar option
2982 .D1 (alias: Ic showw )
2983 List the window options or a single option for
2984 .Ar target-window ,
2985 or the global window options if
2986 .Fl g
2987 is used.
2988 .Fl v
2989 shows only the option value, not the name.
2991 .Sh FORMATS
2992 Certain commands accept the
2993 .Fl F
2994 flag with a
2995 .Ar format
2996 argument.
2997 This is a string which controls the output format of the command.
2998 Special character sequences are replaced as documented under the
2999 .Ic status-left
3000 option and an additional long form is accepted.
3001 Replacement variables are enclosed in
3002 .Ql #{
3004 .Ql } ,
3005 for example
3006 .Ql #{session_name}
3007 is equivalent to
3008 .Ql #S .
3009 Conditionals are also accepted by prefixing with
3010 .Ql \&?
3011 and separating two alternatives with a comma;
3012 if the specified variable exists and is not zero, the first alternative
3013 is chosen, otherwise the second is used.
3014 For example
3015 .Ql #{?session_attached,attached,not attached}
3016 will include the string
3017 .Ql attached
3018 if the session is attached and the string
3019 .Ql not attached
3020 if it is unattached.
3022 The following variables are available, where appropriate:
3023 .Bl -column "session_created_string" "Replaced with" -offset indent
3024 .It Sy "Variable name" Ta Sy "Replaced with"
3025 .It Li "alternate_on" Ta "If pane is in alternate screen"
3026 .It Li "alternate_saved_x" Ta "Saved cursor X in alternate screen"
3027 .It Li "alternate_saved_y" Ta "Saved cursor Y in alternate screen"
3028 .It Li "buffer_sample" Ta "First 50 characters from the specified buffer"
3029 .It Li "buffer_size" Ta "Size of the specified buffer in bytes"
3030 .It Li "client_activity" Ta "Integer time client last had activity"
3031 .It Li "client_activity_string" Ta "String time client last had activity"
3032 .It Li "client_created" Ta "Integer time client created"
3033 .It Li "client_created_string" Ta "String time client created"
3034 .It Li "client_cwd" Ta "Working directory of client"
3035 .It Li "client_height" Ta "Height of client"
3036 .It Li "client_last_session" Ta "Name of the client's last session"
3037 .It Li "client_prefix" Ta "1 if prefix key has been pressed"
3038 .It Li "client_readonly" Ta "1 if client is readonly"
3039 .It Li "client_session" Ta "Name of the client's session"
3040 .It Li "client_termname" Ta "Terminal name of client"
3041 .It Li "client_tty" Ta "Pseudo terminal of client"
3042 .It Li "client_utf8" Ta "1 if client supports utf8"
3043 .It Li "client_width" Ta "Width of client"
3044 .It Li "cursor_flag" Ta "Pane cursor flag"
3045 .It Li "cursor_x" Ta "Cursor X position in pane"
3046 .It Li "cursor_y" Ta "Cursor Y position in pane"
3047 .It Li "history_bytes" Ta "Number of bytes in window history"
3048 .It Li "history_limit" Ta "Maximum window history lines"
3049 .It Li "history_size" Ta "Size of history in bytes"
3050 .It Li "host" Ta "Hostname of local host"
3051 .It Li "insert_flag" Ta "Pane insert flag"
3052 .It Li "keypad_cursor_flag" Ta "Pane keypad cursor flag"
3053 .It Li "keypad_flag" Ta "Pane keypad flag"
3054 .It Li "line" Ta "Line number in the list"
3055 .It Li "mouse_any_flag" Ta "Pane mouse any flag"
3056 .It Li "mouse_button_flag" Ta "Pane mouse button flag"
3057 .It Li "mouse_standard_flag" Ta "Pane mouse standard flag"
3058 .It Li "mouse_utf8_flag" Ta "Pane mouse UTF-8 flag"
3059 .It Li "pane_active" Ta "1 if active pane"
3060 .It Li "pane_current_command" Ta "Current command if available"
3061 .It Li "pane_current_path" Ta "Current path if available"
3062 .It Li "pane_dead" Ta "1 if pane is dead"
3063 .It Li "pane_height" Ta "Height of pane"
3064 .It Li "pane_id" Ta "Unique pane ID"
3065 .It Li "pane_in_mode" Ta "If pane is in a mode"
3066 .It Li "pane_index" Ta "Index of pane"
3067 .It Li "pane_pid" Ta "PID of first process in pane"
3068 .It Li "pane_start_command" Ta "Command pane started with"
3069 .It Li "pane_start_path" Ta "Path pane started with"
3070 .It Li "pane_tabs" Ta "Pane tab positions"
3071 .It Li "pane_title" Ta "Title of pane"
3072 .It Li "pane_tty" Ta "Pseudo terminal of pane"
3073 .It Li "pane_width" Ta "Width of pane"
3074 .It Li "saved_cursor_x" Ta "Saved cursor X in pane"
3075 .It Li "saved_cursor_y" Ta "Saved cursor Y in pane"
3076 .It Li "scroll_region_lower" Ta "Bottom of scroll region in pane"
3077 .It Li "scroll_region_upper" Ta "Top of scroll region in pane"
3078 .It Li "session_attached" Ta "1 if session attached"
3079 .It Li "session_created" Ta "Integer time session created"
3080 .It Li "session_created_string" Ta "String time session created"
3081 .It Li "session_group" Ta "Number of session group"
3082 .It Li "session_grouped" Ta "1 if session in a group"
3083 .It Li "session_height" Ta "Height of session"
3084 .It Li "session_id" Ta "Unique session ID"
3085 .It Li "session_name" Ta "Name of session"
3086 .It Li "session_width" Ta "Width of session"
3087 .It Li "session_windows" Ta "Number of windows in session"
3088 .It Li "window_active" Ta "1 if window active"
3089 .It Li "window_find_matches" Ta "Matched data from the find-window command if available"
3090 .It Li "window_flags" Ta "Window flags"
3091 .It Li "window_height" Ta "Height of window"
3092 .It Li "window_id" Ta "Unique window ID"
3093 .It Li "window_index" Ta "Index of window"
3094 .It Li "window_layout" Ta "Window layout description"
3095 .It Li "window_name" Ta "Name of window"
3096 .It Li "window_panes" Ta "Number of panes in window"
3097 .It Li "window_width" Ta "Width of window"
3098 .It Li "wrap_flag" Ta "Pane wrap flag"
3100 .Sh NAMES AND TITLES
3102 distinguishes between names and titles.
3103 Windows and sessions have names, which may be used to specify them in targets
3104 and are displayed in the status line and various lists: the name is the
3106 identifier for a window or session.
3107 Only panes have titles.
3108 A pane's title is typically set by the program running inside the pane and
3109 is not modified by
3110 .Nm .
3111 It is the same mechanism used to set for example the
3112 .Xr xterm 1
3113 window title in an
3114 .Xr X 7
3115 window manager.
3116 Windows themselves do not have titles - a window's title is the title of its
3117 active pane.
3119 itself may set the title of the terminal in which the client is running, see
3121 .Ic set-titles
3122 option.
3124 A session's name is set with the
3125 .Ic new-session
3127 .Ic rename-session
3128 commands.
3129 A window's name is set with one of:
3130 .Bl -enum -width Ds
3132 A command argument (such as
3133 .Fl n
3135 .Ic new-window
3137 .Ic new-session ) .
3139 An escape sequence:
3140 .Bd -literal -offset indent
3141 $ printf '\e033kWINDOW_NAME\e033\e\e'
3144 Automatic renaming, which sets the name to the active command in the window's
3145 active pane.
3146 See the
3147 .Ic automatic-rename
3148 option.
3151 When a pane is first created, its title is the hostname.
3152 A pane's title can be set via the OSC title setting sequence, for example:
3153 .Bd -literal -offset indent
3154 $ printf '\e033]2;My Title\e033\e\e'
3156 .Sh ENVIRONMENT
3157 When the server is started,
3159 copies the environment into the
3160 .Em global environment ;
3161 in addition, each session has a
3162 .Em session environment .
3163 When a window is created, the session and global environments are merged.
3164 If a variable exists in both, the value from the session environment is used.
3165 The result is the initial environment passed to the new process.
3168 .Ic update-environment
3169 session option may be used to update the session environment from the client
3170 when a new session is created or an old reattached.
3172 also initialises the
3173 .Ev TMUX
3174 variable with some internal information to allow commands to be executed
3175 from inside, and the
3176 .Ev TERM
3177 variable with the correct terminal setting of
3178 .Ql screen .
3180 Commands to alter and view the environment are:
3181 .Bl -tag -width Ds
3182 .It Xo Ic set-environment
3183 .Op Fl gru
3184 .Op Fl t Ar target-session
3185 .Ar name Op Ar value
3187 .D1 (alias: Ic setenv )
3188 Set or unset an environment variable.
3190 .Fl g
3191 is used, the change is made in the global environment; otherwise, it is applied
3192 to the session environment for
3193 .Ar target-session .
3195 .Fl u
3196 flag unsets a variable.
3197 .Fl r
3198 indicates the variable is to be removed from the environment before starting a
3199 new process.
3200 .It Xo Ic show-environment
3201 .Op Fl g
3202 .Op Fl t Ar target-session
3203 .Op Ar variable
3205 .D1 (alias: Ic showenv )
3206 Display the environment for
3207 .Ar target-session
3208 or the global environment with
3209 .Fl g .
3211 .Ar variable
3212 is omitted, all variables are shown.
3213 Variables removed from the environment are prefixed with
3214 .Ql - .
3216 .Sh STATUS LINE
3218 includes an optional status line which is displayed in the bottom line of each
3219 terminal.
3220 By default, the status line is enabled (it may be disabled with the
3221 .Ic status
3222 session option) and contains, from left-to-right: the name of the current
3223 session in square brackets; the window list; the title of the active pane
3224 in double quotes; and the time and date.
3226 The status line is made of three parts: configurable left and right sections
3227 (which may contain dynamic content such as the time or output from a shell
3228 command, see the
3229 .Ic status-left ,
3230 .Ic status-left-length ,
3231 .Ic status-right ,
3233 .Ic status-right-length
3234 options below), and a central window list.
3235 By default, the window list shows the index, name and (if any) flag of the
3236 windows present in the current session in ascending numerical order.
3237 It may be customised with the
3238 .Ar window-status-format
3240 .Ar window-status-current-format
3241 options.
3242 The flag is one of the following symbols appended to the window name:
3243 .Bl -column "Symbol" "Meaning" -offset indent
3244 .It Sy "Symbol" Ta Sy "Meaning"
3245 .It Li "*" Ta "Denotes the current window."
3246 .It Li "-" Ta "Marks the last window (previously selected)."
3247 .It Li "#" Ta "Window is monitored and activity has been detected."
3248 .It Li "!" Ta "A bell has occurred in the window."
3249 .It Li "+" Ta "Window is monitored for content and it has appeared."
3250 .It Li "~" Ta "The window has been silent for the monitor-silence interval."
3253 The # symbol relates to the
3254 .Ic monitor-activity
3255 and + to the
3256 .Ic monitor-content
3257 window options.
3258 The window name is printed in inverted colours if an alert (bell, activity or
3259 content) is present.
3261 The colour and attributes of the status line may be configured, the entire
3262 status line using the
3263 .Ic status-attr ,
3264 .Ic status-fg
3266 .Ic status-bg
3267 session options and individual windows using the
3268 .Ic window-status-attr ,
3269 .Ic window-status-fg
3271 .Ic window-status-bg
3272 window options.
3274 The status line is automatically refreshed at interval if it has changed, the
3275 interval may be controlled with the
3276 .Ic status-interval
3277 session option.
3279 Commands related to the status line are as follows:
3280 .Bl -tag -width Ds
3281 .It Xo Ic command-prompt
3282 .Op Fl I Ar inputs
3283 .Op Fl p Ar prompts
3284 .Op Fl t Ar target-client
3285 .Op Ar template
3287 Open the command prompt in a client.
3288 This may be used from inside
3290 to execute commands interactively.
3293 .Ar template
3294 is specified, it is used as the command.
3295 If present,
3296 .Fl I
3297 is a comma-separated list of the initial text for each prompt.
3299 .Fl p
3300 is given,
3301 .Ar prompts
3302 is a comma-separated list of prompts which are displayed in order; otherwise
3303 a single prompt is displayed, constructed from
3304 .Ar template
3305 if it is present, or
3306 .Ql \&:
3307 if not.
3309 Both
3310 .Ar inputs
3312 .Ar prompts
3313 may contain the special character sequences supported by the
3314 .Ic status-left
3315 option.
3317 Before the command is executed, the first occurrence of the string
3318 .Ql %%
3319 and all occurrences of
3320 .Ql %1
3321 are replaced by the response to the first prompt, the second
3322 .Ql %%
3323 and all
3324 .Ql %2
3325 are replaced with the response to the second prompt, and so on for further
3326 prompts.
3327 Up to nine prompt responses may be replaced
3329 .Ql %1
3331 .Ql %9
3332 .Pc .
3333 .It Xo Ic confirm-before
3334 .Op Fl p Ar prompt
3335 .Op Fl t Ar target-client
3336 .Ar command
3338 .D1 (alias: Ic confirm )
3339 Ask for confirmation before executing
3340 .Ar command .
3342 .Fl p
3343 is given,
3344 .Ar prompt
3345 is the prompt to display; otherwise a prompt is constructed from
3346 .Ar command .
3347 It may contain the special character sequences supported by the
3348 .Ic status-left
3349 option.
3351 This command works only from inside
3352 .Nm .
3353 .It Xo Ic display-message
3354 .Op Fl p
3355 .Op Fl c Ar target-client
3356 .Op Fl t Ar target-pane
3357 .Op Ar message
3359 .D1 (alias: Ic display )
3360 Display a message.
3362 .Fl p
3363 is given, the output is printed to stdout, otherwise it is displayed in the
3364 .Ar target-client
3365 status line.
3366 The format of
3367 .Ar message
3368 is described in the
3369 .Sx FORMATS
3370 section; information is taken from
3371 .Ar target-pane
3373 .Fl t
3374 is given, otherwise the active pane for the session attached to
3375 .Ar target-client .
3377 .Sh BUFFERS
3379 maintains a stack of
3380 .Em paste buffers .
3381 Up to the value of the
3382 .Ic buffer-limit
3383 option are kept; when a new buffer is added, the buffer at the bottom of the
3384 stack is removed.
3385 Buffers may be added using
3386 .Ic copy-mode
3387 or the
3388 .Ic set-buffer
3389 command, and pasted into a window using the
3390 .Ic paste-buffer
3391 command.
3393 A configurable history buffer is also maintained for each window.
3394 By default, up to 2000 lines are kept; this can be altered with the
3395 .Ic history-limit
3396 option (see the
3397 .Ic set-option
3398 command above).
3400 The buffer commands are as follows:
3401 .Bl -tag -width Ds
3402 .It Xo
3403 .Ic choose-buffer
3404 .Op Fl F Ar format
3405 .Op Fl t Ar target-window
3406 .Op Ar template
3408 Put a window into buffer choice mode, where a buffer may be chosen
3409 interactively from a list.
3410 After a buffer is selected,
3411 .Ql %%
3412 is replaced by the buffer index in
3413 .Ar template
3414 and the result executed as a command.
3416 .Ar template
3417 is not given, "paste-buffer -b '%%'" is used.
3418 For the meaning of the
3419 .Fl F
3420 flag, see the
3421 .Sx FORMATS
3422 section.
3423 This command works only if at least one client is attached.
3424 .It Ic clear-history Op Fl t Ar target-pane
3425 .D1 (alias: Ic clearhist )
3426 Remove and free the history for the specified pane.
3427 .It Ic delete-buffer Op Fl b Ar buffer-index
3428 .D1 (alias: Ic deleteb )
3429 Delete the buffer at
3430 .Ar buffer-index ,
3431 or the top buffer if not specified.
3432 .It Xo Ic list-buffers
3433 .Op Fl F Ar format
3435 .D1 (alias: Ic lsb )
3436 List the global buffers.
3437 For the meaning of the
3438 .Fl F
3439 flag, see the
3440 .Sx FORMATS
3441 section.
3442 .It Xo Ic load-buffer
3443 .Op Fl b Ar buffer-index
3444 .Ar path
3446 .D1 (alias: Ic loadb )
3447 Load the contents of the specified paste buffer from
3448 .Ar path .
3449 .It Xo Ic paste-buffer
3450 .Op Fl dpr
3451 .Op Fl b Ar buffer-index
3452 .Op Fl s Ar separator
3453 .Op Fl t Ar target-pane
3455 .D1 (alias: Ic pasteb )
3456 Insert the contents of a paste buffer into the specified pane.
3457 If not specified, paste into the current one.
3458 With
3459 .Fl d ,
3460 also delete the paste buffer from the stack.
3461 When output, any linefeed (LF) characters in the paste buffer are replaced with
3462 a separator, by default carriage return (CR).
3463 A custom separator may be specified using the
3464 .Fl s
3465 flag.
3467 .Fl r
3468 flag means to do no replacement (equivalent to a separator of LF).
3470 .Fl p
3471 is specified, paste bracket control codes are inserted around the
3472 buffer if the application has requested bracketed paste mode.
3473 .It Xo Ic save-buffer
3474 .Op Fl a
3475 .Op Fl b Ar buffer-index
3476 .Ar path
3478 .D1 (alias: Ic saveb )
3479 Save the contents of the specified paste buffer to
3480 .Ar path .
3482 .Fl a
3483 option appends to rather than overwriting the file.
3484 .It Xo Ic set-buffer
3485 .Op Fl b Ar buffer-index
3486 .Ar data
3488 .D1 (alias: Ic setb )
3489 Set the contents of the specified buffer to
3490 .Ar data .
3491 .It Xo Ic show-buffer
3492 .Op Fl b Ar buffer-index
3494 .D1 (alias: Ic showb )
3495 Display the contents of the specified buffer.
3497 .Sh MISCELLANEOUS
3498 Miscellaneous commands are as follows:
3499 .Bl -tag -width Ds
3500 .It Ic clock-mode Op Fl t Ar target-pane
3501 Display a large clock.
3502 .It Xo Ic if-shell
3503 .Op Fl t Ar target-pane
3504 .Op Fl b
3505 .Ar shell-command command
3506 .Op Ar command
3508 .D1 (alias: Ic if )
3509 Execute the first
3510 .Ar command
3512 .Ar shell-command
3513 returns success or the second
3514 .Ar command
3515 otherwise.
3516 Before being executed, shell-command is expanded using the rules specified in the
3517 .Sx FORMATS
3518 section, including those relevant to
3519 .Ar target-pane .
3520 With
3521 .Fl b ,
3522 .Ar shell-command
3523 is run in the background.
3524 .It Ic lock-server
3525 .D1 (alias: Ic lock )
3526 Lock each client individually by running the command specified by the
3527 .Ic lock-command
3528 option.
3529 .It Xo Ic run-shell
3530 .Fl b
3531 .Op Fl t Ar target-pane
3532 .Ar shell-command
3534 .D1 (alias: Ic run )
3535 Execute
3536 .Ar shell-command
3537 in the background without creating a window.
3538 Before being executed, shell-command is expanded using the rules specified in
3540 .Sx FORMATS
3541 section.
3542 With
3543 .Fl b ,
3544 the command is run in the background.
3545 After it finishes, any output to stdout is displayed in copy mode (in the pane
3546 specified by
3547 .Fl t
3548 or the current pane if omitted).
3549 If the command doesn't return success, the exit status is also displayed.
3550 .It Ic server-info
3551 .D1 (alias: Ic info )
3552 Show server information and terminal details.
3553 .It Xo Ic wait-for
3554 .Fl LSU
3555 .Ar channel
3557 .D1 (alias: Ic wait )
3558 When used without options, prevents the client from exiting until woken using
3559 .Ic wait-for
3560 .Fl S
3561 with the same channel.
3562 When
3563 .Fl L
3564 is used, the channel is locked and any clients that try to lock the same
3565 channel are made to wait until the channel is unlocked with
3566 .Ic wait-for
3567 .Fl U .
3568 This command only works from outside
3569 .Nm .
3571 .Sh TERMINFO EXTENSIONS
3573 understands some extensions to
3574 .Xr terminfo 5 :
3575 .Bl -tag -width Ds
3576 .It Em Cc , Cr
3577 Set the cursor colour.
3578 The first takes a single string argument and is used to set the colour;
3579 the second takes no arguments and restores the default cursor colour.
3580 If set, a sequence such as this may be used
3581 to change the cursor colour from inside
3582 .Nm :
3583 .Bd -literal -offset indent
3584 $ printf '\e033]12;red\e033\e\e'
3586 .It Em Cs , Csr
3587 Change the cursor style.
3588 If set, a sequence such as this may be used
3589 to change the cursor to an underline:
3590 .Bd -literal -offset indent
3591 $ printf '\e033[4 q'
3595 .Em Csr
3596 is set, it will be used to reset the cursor style instead
3598 .Em Cs .
3599 .It Em \&Ms
3600 This sequence can be used by
3602 to store the current buffer in the host terminal's selection (clipboard).
3603 See the
3604 .Em set-clipboard
3605 option above and the
3606 .Xr xterm 1
3607 man page.
3609 .Sh FILES
3610 .Bl -tag -width "/etc/tmux.confXXX" -compact
3611 .It Pa ~/.tmux.conf
3612 Default
3614 configuration file.
3615 .It Pa /etc/tmux.conf
3616 System-wide configuration file.
3618 .Sh EXAMPLES
3619 To create a new
3621 session running
3622 .Xr vi 1 :
3624 .Dl $ tmux new-session vi
3626 Most commands have a shorter form, known as an alias.
3627 For new-session, this is
3628 .Ic new :
3630 .Dl $ tmux new vi
3632 Alternatively, the shortest unambiguous form of a command is accepted.
3633 If there are several options, they are listed:
3634 .Bd -literal -offset indent
3635 $ tmux n
3636 ambiguous command: n, could be: new-session, new-window, next-window
3639 Within an active session, a new window may be created by typing
3640 .Ql C-b c
3641 (Ctrl
3642 followed by the
3643 .Ql b
3645 followed by the
3646 .Ql c
3647 key).
3649 Windows may be navigated with:
3650 .Ql C-b 0
3651 (to select window 0),
3652 .Ql C-b 1
3653 (to select window 1), and so on;
3654 .Ql C-b n
3655 to select the next window; and
3656 .Ql C-b p
3657 to select the previous window.
3659 A session may be detached using
3660 .Ql C-b d
3661 (or by an external event such as
3662 .Xr ssh 1
3663 disconnection) and reattached with:
3665 .Dl $ tmux attach-session
3667 Typing
3668 .Ql C-b \&?
3669 lists the current key bindings in the current window; up and down may be used
3670 to navigate the list or
3671 .Ql q
3672 to exit from it.
3674 Commands to be run when the
3676 server is started may be placed in the
3677 .Pa ~/.tmux.conf
3678 configuration file.
3679 Common examples include:
3681 Changing the default prefix key:
3682 .Bd -literal -offset indent
3683 set-option -g prefix C-a
3684 unbind-key C-b
3685 bind-key C-a send-prefix
3688 Turning the status line off, or changing its colour:
3689 .Bd -literal -offset indent
3690 set-option -g status off
3691 set-option -g status-bg blue
3694 Setting other options, such as the default command,
3695 or locking after 30 minutes of inactivity:
3696 .Bd -literal -offset indent
3697 set-option -g default-command "exec /bin/ksh"
3698 set-option -g lock-after-time 1800
3701 Creating new key bindings:
3702 .Bd -literal -offset indent
3703 bind-key b set-option status
3704 bind-key / command-prompt "split-window 'exec man %%'"
3705 bind-key S command-prompt "new-window -n %1 'ssh %1'"
3707 .Sh SEE ALSO
3708 .Xr pty 4
3709 .Sh AUTHORS
3710 .An Nicholas Marriott Aq nicm@users.sourceforge.net