Enforce history-limit option when clearing the screen, memory leak
[tmux-openbsd.git] / tmux.1
blob36e4719b44535e5350f7b79de6369a7776c35a3a
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 .
127 The configuration file is a set of
129 commands which are executed in sequence when the server is first started.
131 If a command in the configuration file fails,
133 will report an error and exit without executing further commands.
134 .It Fl L Ar socket-name
136 stores the server socket in a directory under
137 .Pa /tmp
139 .Ev TMPDIR
140 if set);
141 the default socket is named
142 .Em default .
143 This option allows a different socket name to be specified, allowing several
144 independent
146 servers to be run.
147 Unlike
148 .Fl S
149 a full path is not necessary: the sockets are all created in the same
150 directory.
152 If the socket is accidentally removed, the
153 .Dv SIGUSR1
154 signal may be sent to the
156 server process to recreate it.
157 .It Fl l
158 Behave as a login shell.
159 This flag currently has no effect and is for compatibility with other shells
160 when using tmux as a login shell.
161 .It Fl q
162 Set the
163 .Ic quiet
164 server option to prevent the server sending various informational messages.
165 .It Fl S Ar socket-path
166 Specify a full alternative path to the server socket.
168 .Fl S
169 is specified, the default socket directory is not used and any
170 .Fl L
171 flag is ignored.
172 .It Fl u
174 attempts to guess if the terminal is likely to support UTF-8 by checking the
175 first of the
176 .Ev LC_ALL ,
177 .Ev LC_CTYPE
179 .Ev LANG
180 environment variables to be set for the string "UTF-8".
181 This is not always correct: the
182 .Fl u
183 flag explicitly informs
185 that UTF-8 is supported.
187 If the server is started from a client passed
188 .Fl u
189 or where UTF-8 is detected, the
190 .Ic utf8
192 .Ic status-utf8
193 options are enabled in the global window and session options respectively.
194 .It Fl v
195 Request verbose logging.
196 This option may be specified multiple times for increasing verbosity.
197 Log messages will be saved into
198 .Pa tmux-client-PID.log
200 .Pa tmux-server-PID.log
201 files in the current directory, where
202 .Em PID
203 is the PID of the server or client process.
204 .It Ar command Op Ar flags
205 This specifies one of a set of commands used to control
206 .Nm ,
207 as described in the following sections.
208 If no commands are specified, the
209 .Ic new-session
210 command is assumed.
212 .Sh KEY BINDINGS
214 may be controlled from an attached client by using a key combination of a
215 prefix key,
216 .Ql C-b
217 (Ctrl-b) by default, followed by a command key.
219 The default command key bindings are:
221 .Bl -tag -width "XXXXXXXXXX" -offset indent -compact
222 .It C-b
223 Send the prefix key (C-b) through to the application.
224 .It C-o
225 Rotate the panes in the current window forwards.
226 .It C-z
227 Suspend the
229 client.
230 .It !
231 Break the current pane out of the window.
232 .It \&"
233 Split the current pane into two, top and bottom.
234 .It #
235 List all paste buffers.
236 .It $
237 Rename the current session.
238 .It %
239 Split the current pane into two, left and right.
240 .It &
241 Kill the current window.
242 .It '
243 Prompt for a window index to select.
244 .It ,
245 Rename the current window.
246 .It -
247 Delete the most recently copied buffer of text.
248 .It .
249 Prompt for an index to move the current window.
250 .It 0 to 9
251 Select windows 0 to 9.
252 .It :
253 Enter the
255 command prompt.
256 .It ;
257 Move to the previously active pane.
258 .It =
259 Choose which buffer to paste interactively from a list.
260 .It \&?
261 List all key bindings.
262 .It D
263 Choose a client to detach.
264 .It \&[
265 Enter copy mode to copy text or view the history.
266 .It \&]
267 Paste the most recently copied buffer of text.
268 .It c
269 Create a new window.
270 .It d
271 Detach the current client.
272 .It f
273 Prompt to search for text in open windows.
274 .It i
275 Display some information about the current window.
276 .It l
277 Move to the previously selected window.
278 .It n
279 Change to the next window.
280 .It o
281 Select the next pane in the current window.
282 .It p
283 Change to the previous window.
284 .It q
285 Briefly display pane indexes.
286 .It r
287 Force redraw of the attached client.
288 .It s
289 Select a new session for the attached client interactively.
290 .It L
291 Switch the attached client back to the last session.
292 .It t
293 Show the time.
294 .It w
295 Choose the current window interactively.
296 .It x
297 Kill the current pane.
298 .It {
299 Swap the current pane with the previous pane.
300 .It }
301 Swap the current pane with the next pane.
302 .It ~
303 Show previous messages from
304 .Nm ,
305 if any.
306 .It Page Up
307 Enter copy mode and scroll one page up.
308 .It Up, Down
309 .It Left, Right
310 Change to the pane above, below, to the left, or to the right of the current
311 pane.
312 .It M-1 to M-5
313 Arrange panes in one of the five preset layouts: even-horizontal,
314 even-vertical, main-horizontal, main-vertical, or tiled.
315 .It M-n
316 Move to the next window with a bell or activity marker.
317 .It M-o
318 Rotate the panes in the current window backwards.
319 .It M-p
320 Move to the previous window with a bell or activity marker.
321 .It C-Up, C-Down
322 .It C-Left, C-Right
323 Resize the current pane in steps of one cell.
324 .It M-Up, M-Down
325 .It M-Left, M-Right
326 Resize the current pane in steps of five cells.
329 Key bindings may be changed with the
330 .Ic bind-key
332 .Ic unbind-key
333 commands.
334 .Sh COMMANDS
335 This section contains a list of the commands supported by
336 .Nm .
337 Most commands accept the optional
338 .Fl t
339 argument with one of
340 .Ar target-client ,
341 .Ar target-session
342 .Ar target-window ,
344 .Ar target-pane .
345 These specify the client, session, window or pane which a command should affect.
346 .Ar target-client
347 is the name of the
348 .Xr pty 4
349 file to which the client is connected, for example either of
350 .Pa /dev/ttyp1
352 .Pa ttyp1
353 for the client attached to
354 .Pa /dev/ttyp1 .
355 If no client is specified, the current client is chosen, if possible, or an
356 error is reported.
357 Clients may be listed with the
358 .Ic list-clients
359 command.
361 .Ar target-session
362 is either the name of a session (as listed by the
363 .Ic list-sessions
364 command) or the name of a client with the same syntax as
365 .Ar target-client ,
366 in which case the session attached to the client is used.
367 When looking for the session name,
369 initially searches for an exact match; if none is found, the session names
370 are checked for any for which
371 .Ar target-session
372 is a prefix or for which it matches as an
373 .Xr fnmatch 3
374 pattern.
375 If a single match is found, it is used as the target session; multiple matches
376 produce an error.
377 If a session is omitted, the current session is used if available; if no
378 current session is available, the most recently used is chosen.
380 .Ar target-window
381 specifies a window in the form
382 .Em session Ns \&: Ns Em window .
383 .Em session
384 follows the same rules as for
385 .Ar target-session ,
387 .Em window
388 is looked for in order: as a window index, for example mysession:1; as an exact
389 window name, such as mysession:mywindow; then as an
390 .Xr fnmatch 3
391 pattern or the start of a window name, such as mysession:mywin* or
392 mysession:mywin.
393 An empty window name specifies the next unused index if appropriate (for
394 example the
395 .Ic new-window
397 .Ic link-window
398 commands)
399 otherwise the current window in
400 .Em session
401 is chosen.
402 The special character
403 .Ql \&!
404 uses the last (previously current) window, or
405 .Ql +
407 .Ql -
408 are the next window or the previous window by number.
409 When the argument does not contain a colon,
411 first attempts to parse it as window; if that fails, an attempt is made to
412 match a session.
414 .Ar target-pane
415 takes a similar form to
416 .Ar target-window
417 but with the optional addition of a period followed by a pane index, for
418 example: mysession:mywindow.1.
419 If the pane index is omitted, the currently active pane in the specified
420 window is used.
421 If neither a colon nor period appears,
423 first attempts to use the argument as a pane index; if that fails, it is looked
424 up as for
425 .Ar target-window .
427 .Ql +
429 .Ql -
430 indicate the next or previous pane index, respectively.
431 One of the strings
432 .Em top ,
433 .Em bottom ,
434 .Em left ,
435 .Em right ,
436 .Em top-left ,
437 .Em top-right ,
438 .Em bottom-left
440 .Em bottom-right
441 may be used instead of a pane index.
443 The special characters
444 .Ql +
446 .Ql -
447 may be followed by an offset, for example:
448 .Bd -literal -offset indent
449 select-window -t:+2
452 When dealing with a session that doesn't contain sequential window indexes,
453 they will be correctly skipped.
456 also gives each pane created in a server an identifier consisting of a
457 .Ql %
458 and a number, starting from zero.
459 A pane's identifier is unique for the life of the
461 server and is passed to the child process of the pane in the
462 .Ev TMUX_PANE
463 environment variable.
464 It may be used alone to target a pane or the window containing it.
466 .Ar shell-command
467 arguments are
468 .Xr sh 1
469 commands.
470 These must be passed as a single item, which typically means quoting them, for
471 example:
472 .Bd -literal -offset indent
473 new-window 'vi /etc/passwd'
476 .Ar command
477 .Op Ar arguments
478 refers to a
480 command, passed with the command and arguments separately, for example:
481 .Bd -literal -offset indent
482 bind-key F1 set-window-option force-width 81
485 Or if using
486 .Xr sh 1 :
487 .Bd -literal -offset indent
488 $ tmux bind-key F1 set-window-option force-width 81
491 Multiple commands may be specified together as part of a
492 .Em command sequence .
493 Each command should be separated by spaces and a semicolon;
494 commands are executed sequentially from left to right and
495 lines ending with a backslash continue on to the next line.
496 A literal semicolon may be included by escaping it with a backslash (for
497 example, when specifying a command sequence to
498 .Ic bind-key ) .
500 Example
502 commands include:
503 .Bd -literal -offset indent
504 refresh-client -t/dev/ttyp2
506 rename-session -tfirst newname
508 set-window-option -t:0 monitor-activity on
510 new-window ; split-window -d
512 bind-key R source-file ~/.tmux.conf \e; \e
513         display-message "source-file done"
516 Or from
517 .Xr sh 1 :
518 .Bd -literal -offset indent
519 $ tmux kill-window -t :1
521 $ tmux new-window \e; split-window -d
523 $ tmux new-session -d 'vi /etc/passwd' \e; split-window -d \e; attach
525 .Sh CLIENTS AND SESSIONS
528 server manages clients, sessions, windows and panes.
529 Clients are attached to sessions to interact with them, either
530 when they are created with the
531 .Ic new-session
532 command, or later with the
533 .Ic attach-session
534 command.
535 Each session has one or more windows
536 .Em linked
537 into it.
538 Windows may be linked to multiple sessions and are made up of one or
539 more panes,
540 each of which contains a pseudo terminal.
541 Commands for creating, linking and otherwise manipulating windows
542 are covered
543 in the
544 .Sx WINDOWS AND PANES
545 section.
547 The following commands are available to manage clients and sessions:
548 .Bl -tag -width Ds
549 .It Xo Ic attach-session
550 .Op Fl dr
551 .Op Fl t Ar target-session
553 .D1 (alias: Ic attach )
554 If run from outside
555 .Nm ,
556 create a new client in the current terminal and attach it to
557 .Ar target-session .
558 If used from inside, switch the current client.
560 .Fl d
561 is specified, any other clients attached to the session are detached.
562 .Fl r
563 signifies the client is read-only (only keys bound to the
564 .Ic detach-client
566 .Ic switch-client
567 commands have any effect)
569 If no server is started,
570 .Ic attach-session
571 will attempt to start it; this will fail unless sessions are created in the
572 configuration file.
575 .Ar target-session
576 rules for
577 .Ic attach-session
578 are slightly adjusted: if
580 needs to select the most recently used session, it will prefer the most
581 recently used
582 .Em unattached
583 session.
584 .It Xo Ic detach-client
585 .Op Fl P
586 .Op Fl s Ar target-session
587 .Op Fl t Ar target-client
589 .D1 (alias: Ic detach )
590 Detach the current client if bound to a key, the client specified with
591 .Fl t ,
592 or all clients currently attached to the session specified by
593 .Fl s .
595 .Fl P
596 is given, send SIGHUP to the parent process of the client, typically causing it
597 to exit.
598 .It Ic has-session Op Fl t Ar target-session
599 .D1 (alias: Ic has )
600 Report an error and exit with 1 if the specified session does not exist.
601 If it does exist, exit with 0.
602 .It Ic kill-server
603 Kill the
605 server and clients and destroy all sessions.
606 .It Ic kill-session Op Fl t Ar target-session
607 Destroy the given session, closing any windows linked to it and no other
608 sessions, and detaching all clients attached to it.
609 .It Xo Ic list-clients
610 .Op Fl F Ar format
611 .Op Fl t Ar target-session
613 .D1 (alias: Ic lsc )
614 List all clients attached to the server.
615 For the meaning of the
616 .Fl F
617 flag, see the
618 .Sx FORMATS
619 section.
621 .Ar target-session
622 is specified, list only clients connected to that session.
623 .It Ic list-commands
624 .D1 (alias: Ic lscm )
625 List the syntax of all commands supported by
626 .Nm .
627 .It Ic list-sessions Op Fl F Ar format
628 .D1 (alias: Ic ls )
629 List all sessions managed by the server.
630 For the meaning of the
631 .Fl F
632 flag, see the
633 .Sx FORMATS
634 section.
635 .It Ic lock-client Op Fl t Ar target-client
636 .D1 (alias: Ic lockc )
637 Lock
638 .Ar target-client ,
639 see the
640 .Ic lock-server
641 command.
642 .It Ic lock-session Op Fl t Ar target-session
643 .D1 (alias: Ic locks )
644 Lock all clients attached to
645 .Ar target-session .
646 .It Xo Ic new-session
647 .Op Fl d
648 .Op Fl n Ar window-name
649 .Op Fl s Ar session-name
650 .Op Fl t Ar target-session
651 .Op Fl x Ar width
652 .Op Fl y Ar height
653 .Op Ar shell-command
655 .D1 (alias: Ic new )
656 Create a new session with name
657 .Ar session-name .
659 The new session is attached to the current terminal unless
660 .Fl d
661 is given.
662 .Ar window-name
664 .Ar shell-command
665 are the name of and shell command to execute in the initial window.
667 .Fl d
668 is used,
669 .Fl x
671 .Fl y
672 specify the size of the initial window (80 by 24 if not given).
674 If run from a terminal, any
675 .Xr termios 4
676 special characters are saved and used for new windows in the new session.
679 .Fl t
680 is given, the new session is
681 .Em grouped
682 with
683 .Ar target-session .
684 This means they share the same set of windows - all windows from
685 .Ar target-session
686 are linked to the new session and any subsequent new windows or windows being
687 closed are applied to both sessions.
688 The current and previous window and any session options remain independent and
689 either session may be killed without affecting the other.
690 Giving
691 .Fl n
693 .Ar shell-command
694 are invalid if
695 .Fl t
696 is used.
697 .It Xo Ic refresh-client
698 .Op Fl S
699 .Op Fl t Ar target-client
701 .D1 (alias: Ic refresh )
702 Refresh the current client if bound to a key, or a single client if one is given
703 with
704 .Fl t .
706 .Fl S
707 is specified, only update the client's status bar.
708 .It Xo Ic rename-session
709 .Op Fl t Ar target-session
710 .Ar new-name
712 .D1 (alias: Ic rename )
713 Rename the session to
714 .Ar new-name .
715 .It Xo Ic show-messages
716 .Op Fl t Ar target-client
718 .D1 (alias: Ic showmsgs )
719 Any messages displayed on the status line are saved in a per-client message
720 log, up to a maximum of the limit set by the
721 .Ar message-limit
722 session option for the session attached to that client.
723 This command displays the log for
724 .Ar target-client .
725 .It Ic source-file Ar path
726 .D1 (alias: Ic source )
727 Execute commands from
728 .Ar path .
729 .It Ic start-server
730 .D1 (alias: Ic start )
731 Start the
733 server, if not already running, without creating any sessions.
734 .It Xo Ic suspend-client
735 .Op Fl t Ar target-client
737 .D1 (alias: Ic suspendc )
738 Suspend a client by sending
739 .Dv SIGTSTP
740 (tty stop).
741 .It Xo Ic switch-client
742 .Op Fl lnpr
743 .Op Fl c Ar target-client
744 .Op Fl t Ar target-session
746 .D1 (alias: Ic switchc )
747 Switch the current session for client
748 .Ar target-client
750 .Ar target-session .
752 .Fl l ,
753 .Fl n
755 .Fl p
756 is used, the client is moved to the last, next or previous session
757 respectively.
758 .Fl r
759 toggles whether a client is read-only (see the
760 .Ic attach-session
761 command).
763 .Sh WINDOWS AND PANES
766 window may be in one of several modes.
767 The default permits direct access to the terminal attached to the window.
768 The other is copy mode, which permits a section of a window or its
769 history to be copied to a
770 .Em paste buffer
771 for later insertion into another window.
772 This mode is entered with the
773 .Ic copy-mode
774 command, bound to
775 .Ql \&[
776 by default.
777 It is also entered when a command that produces output, such as
778 .Ic list-keys ,
779 is executed from a key binding.
781 The keys available depend on whether emacs or vi mode is selected
782 (see the
783 .Ic mode-keys
784 option).
785 The following keys are supported as appropriate for the mode:
786 .Bl -column "FunctionXXXXXXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent
787 .It Sy "Function" Ta Sy "vi" Ta Sy "emacs"
788 .It Li "Back to indentation" Ta "^" Ta "M-m"
789 .It Li "Bottom of history" Ta "G" Ta "M-<"
790 .It Li "Clear selection" Ta "Escape" Ta "C-g"
791 .It Li "Copy selection" Ta "Enter" Ta "M-w"
792 .It Li "Cursor down" Ta "j" Ta "Down"
793 .It Li "Cursor left" Ta "h" Ta "Left"
794 .It Li "Cursor right" Ta "l" Ta "Right"
795 .It Li "Cursor to bottom line" Ta "L" Ta ""
796 .It Li "Cursor to middle line" Ta "M" Ta "M-r"
797 .It Li "Cursor to top line" Ta "H" Ta "M-R"
798 .It Li "Cursor up" Ta "k" Ta "Up"
799 .It Li "Delete entire line" Ta "d" Ta "C-u"
800 .It Li "Delete/Copy to end of line" Ta "D" Ta "C-k"
801 .It Li "End of line" Ta "$" Ta "C-e"
802 .It Li "Go to line" Ta ":" Ta "g"
803 .It Li "Half page down" Ta "C-d" Ta "M-Down"
804 .It Li "Half page up" Ta "C-u" Ta "M-Up"
805 .It Li "Jump forward" Ta "f" Ta "f"
806 .It Li "Jump to forward" Ta "t" Ta ""
807 .It Li "Jump backward" Ta "F" Ta "F"
808 .It Li "Jump to backward" Ta "T" Ta ""
809 .It Li "Jump again" Ta ";" Ta ";"
810 .It Li "Jump again in reverse" Ta "," Ta ","
811 .It Li "Next page" Ta "C-f" Ta "Page down"
812 .It Li "Next space" Ta "W" Ta ""
813 .It Li "Next space, end of word" Ta "E" Ta ""
814 .It Li "Next word" Ta "w" Ta ""
815 .It Li "Next word end" Ta "e" Ta "M-f"
816 .It Li "Paste buffer" Ta "p" Ta "C-y"
817 .It Li "Previous page" Ta "C-b" Ta "Page up"
818 .It Li "Previous word" Ta "b" Ta "M-b"
819 .It Li "Previous space" Ta "B" Ta ""
820 .It Li "Quit mode" Ta "q" Ta "Escape"
821 .It Li "Rectangle toggle" Ta "v" Ta "R"
822 .It Li "Scroll down" Ta "C-Down or C-e" Ta "C-Down"
823 .It Li "Scroll up" Ta "C-Up or C-y" Ta "C-Up"
824 .It Li "Search again" Ta "n" Ta "n"
825 .It Li "Search again in reverse" Ta "N" Ta "N"
826 .It Li "Search backward" Ta "?" Ta "C-r"
827 .It Li "Search forward" Ta "/" Ta "C-s"
828 .It Li "Start of line" Ta "0" Ta "C-a"
829 .It Li "Start selection" Ta "Space" Ta "C-Space"
830 .It Li "Top of history" Ta "g" Ta "M->"
831 .It Li "Transpose chars" Ta "" Ta "C-t"
834 The next and previous word keys use space and the
835 .Ql - ,
836 .Ql _
838 .Ql @
839 characters as word delimiters by default, but this can be adjusted by
840 setting the
841 .Em word-separators
842 session option.
843 Next word moves to the start of the next word, next word end to the end of the
844 next word and previous word to the start of the previous word.
845 The three next and previous space keys work similarly but use a space alone as
846 the word separator.
848 The jump commands enable quick movement within a line.
849 For instance, typing
850 .Ql f
851 followed by
852 .Ql /
853 will move the cursor to the next
854 .Ql /
855 character on the current line.
857 .Ql \&;
858 will then jump to the next occurrence.
860 Commands in copy mode may be prefaced by an optional repeat count.
861 With vi key bindings, a prefix is entered using the number keys; with
862 emacs, the Alt (meta) key and a number begins prefix entry.
863 For example, to move the cursor forward by ten words, use
864 .Ql M-1 0 M-f
865 in emacs mode, and
866 .Ql 10w
867 in vi.
869 When copying the selection, the repeat count indicates the buffer index to
870 replace, if used.
872 Mode key bindings are defined in a set of named tables:
873 .Em vi-edit
875 .Em emacs-edit
876 for keys used when line editing at the command prompt;
877 .Em vi-choice
879 .Em emacs-choice
880 for keys used when choosing from lists (such as produced by the
881 .Ic choose-window
882 command); and
883 .Em vi-copy
885 .Em emacs-copy
886 used in copy mode.
887 The tables may be viewed with the
888 .Ic list-keys
889 command and keys modified or removed with
890 .Ic bind-key
892 .Ic unbind-key .
894 The paste buffer key pastes the first line from the top paste buffer on the
895 stack.
897 The synopsis for the
898 .Ic copy-mode
899 command is:
900 .Bl -tag -width Ds
901 .It Xo Ic copy-mode
902 .Op Fl u
903 .Op Fl t Ar target-pane
905 Enter copy mode.
907 .Fl u
908 option scrolls one page up.
911 Each window displayed by
913 may be split into one or more
914 .Em panes ;
915 each pane takes up a certain area of the display and is a separate terminal.
916 A window may be split into panes using the
917 .Ic split-window
918 command.
919 Windows may be split horizontally (with the
920 .Fl h
921 flag) or vertically.
922 Panes may be resized with the
923 .Ic resize-pane
924 command (bound to
925 .Ql C-up ,
926 .Ql C-down
927 .Ql C-left
929 .Ql C-right
930 by default), the current pane may be changed with the
931 .Ic select-pane
932 command and the
933 .Ic rotate-window
935 .Ic swap-pane
936 commands may be used to swap panes without changing their position.
937 Panes are numbered beginning from zero in the order they are created.
939 A number of preset
940 .Em layouts
941 are available.
942 These may be selected with the
943 .Ic select-layout
944 command or cycled with
945 .Ic next-layout
946 (bound to
947 .Ql Space
948 by default); once a layout is chosen, panes within it may be moved and resized
949 as normal.
951 The following layouts are supported:
952 .Bl -tag -width Ds
953 .It Ic even-horizontal
954 Panes are spread out evenly from left to right across the window.
955 .It Ic even-vertical
956 Panes are spread evenly from top to bottom.
957 .It Ic main-horizontal
958 A large (main) pane is shown at the top of the window and the remaining panes
959 are spread from left to right in the leftover space at the bottom.
960 Use the
961 .Em main-pane-height
962 window option to specify the height of the top pane.
963 .It Ic main-vertical
964 Similar to
965 .Ic main-horizontal
966 but the large pane is placed on the left and the others spread from top to
967 bottom along the right.
968 See the
969 .Em main-pane-width
970 window option.
971 .It Ic tiled
972 Panes are spread out as evenly as possible over the window in both rows and
973 columns.
976 In addition,
977 .Ic select-layout
978 may be used to apply a previously used layout - the
979 .Ic list-windows
980 command displays the layout of each window in a form suitable for use with
981 .Ic select-layout .
982 For example:
983 .Bd -literal -offset indent
984 $ tmux list-windows
985 0: ksh [159x48]
986     layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0}
987 $ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0}
991 automatically adjusts the size of the layout for the current window size.
992 Note that a layout cannot be applied to a window with more panes than that
993 from which the layout was originally defined.
995 Commands related to windows and panes are as follows:
996 .Bl -tag -width Ds
997 .It Xo Ic break-pane
998 .Op Fl d
999 .Op Fl t Ar target-pane
1001 .D1 (alias: Ic breakp )
1002 Break
1003 .Ar target-pane
1004 off from its containing window to make it the only pane in a new window.
1006 .Fl d
1007 is given, the new window does not become the current window.
1008 .It Xo Ic capture-pane
1009 .Op Fl b Ar buffer-index
1010 .Op Fl E Ar end-line
1011 .Op Fl S Ar start-line
1012 .Op Fl t Ar target-pane
1014 .D1 (alias: Ic capturep )
1015 Capture the contents of a pane to the specified buffer, or a new buffer if none
1016 is specified.
1018 .Fl S
1020 .Fl E
1021 specify the starting and ending line numbers, zero is the first line of the
1022 visible pane and negative numbers are lines in the history.
1023 The default is to capture only the visible contents of the pane.
1024 .It Xo
1025 .Ic choose-client
1026 .Op Fl t Ar target-window
1027 .Op Ar template
1029 Put a window into client choice mode, allowing a client to be selected
1030 interactively from a list.
1031 After a client is chosen,
1032 .Ql %%
1033 is replaced by the client
1034 .Xr pty 4
1035 path in
1036 .Ar template
1037 and the result executed as a command.
1039 .Ar template
1040 is not given, "detach-client -t '%%'" is used.
1041 This command works only from inside
1042 .Nm .
1043 .It Xo
1044 .Ic choose-session
1045 .Op Fl t Ar target-window
1046 .Op Ar template
1048 Put a window into session choice mode, where a session may be selected
1049 interactively from a list.
1050 When one is chosen,
1051 .Ql %%
1052 is replaced by the session name in
1053 .Ar template
1054 and the result executed as a command.
1056 .Ar template
1057 is not given, "switch-client -t '%%'" is used.
1058 This command works only from inside
1059 .Nm .
1060 .It Xo
1061 .Ic choose-window
1062 .Op Fl t Ar target-window
1063 .Op Ar template
1065 Put a window into window choice mode, where a window may be chosen
1066 interactively from a list.
1067 After a window is selected,
1068 .Ql %%
1069 is replaced by the session name and window index in
1070 .Ar template
1071 and the result executed as a command.
1073 .Ar template
1074 is not given, "select-window -t '%%'" is used.
1075 This command works only from inside
1076 .Nm .
1077 .It Ic display-panes Op Fl t Ar target-client
1078 .D1 (alias: Ic displayp)
1079 Display a visible indicator of each pane shown by
1080 .Ar target-client .
1081 See the
1082 .Ic display-panes-time ,
1083 .Ic display-panes-colour ,
1085 .Ic display-panes-active-colour
1086 session options.
1087 While the indicator is on screen, a pane may be selected with the
1088 .Ql 0
1090 .Ql 9
1091 keys.
1092 .It Xo Ic find-window
1093 .Op Fl t Ar target-window
1094 .Ar match-string
1096 .D1 (alias: Ic findw )
1097 Search for the
1098 .Xr fnmatch 3
1099 pattern
1100 .Ar match-string
1101 in window names, titles, and visible content (but not history).
1102 If only one window is matched, it'll be automatically selected, otherwise a
1103 choice list is shown.
1104 This command only works from inside
1105 .Nm .
1106 .It Xo Ic join-pane
1107 .Op Fl dhv
1108 .Oo Fl l
1109 .Ar size |
1110 .Fl p Ar percentage Oc
1111 .Op Fl s Ar src-pane
1112 .Op Fl t Ar dst-pane
1114 .D1 (alias: Ic joinp )
1115 Like
1116 .Ic split-window ,
1117 but instead of splitting
1118 .Ar dst-pane
1119 and creating a new pane, split it and move
1120 .Ar src-pane
1121 into the space.
1122 This can be used to reverse
1123 .Ic break-pane .
1124 .It Xo Ic kill-pane
1125 .Op Fl a
1126 .Op Fl t Ar target-pane
1128 .D1 (alias: Ic killp )
1129 Destroy the given pane.
1130 If no panes remain in the containing window, it is also destroyed.
1132 .Fl a
1133 option kills all but the pane given with
1134 .Fl t .
1135 .It Ic kill-window Op Fl t Ar target-window
1136 .D1 (alias: Ic killw )
1137 Kill the current window or the window at
1138 .Ar target-window ,
1139 removing it from any sessions to which it is linked.
1140 .It Ic last-pane Op Fl t Ar target-window
1141 .D1 (alias: Ic lastp )
1142 Select the last (previously selected) pane.
1143 .It Ic last-window Op Fl t Ar target-session
1144 .D1 (alias: Ic last )
1145 Select the last (previously selected) window.
1146 If no
1147 .Ar target-session
1148 is specified, select the last window of the current session.
1149 .It Xo Ic link-window
1150 .Op Fl dk
1151 .Op Fl s Ar src-window
1152 .Op Fl t Ar dst-window
1154 .D1 (alias: Ic linkw )
1155 Link the window at
1156 .Ar src-window
1157 to the specified
1158 .Ar dst-window .
1160 .Ar dst-window
1161 is specified and no such window exists, the
1162 .Ar src-window
1163 is linked there.
1165 .Fl k
1166 is given and
1167 .Ar dst-window
1168 exists, it is killed, otherwise an error is generated.
1170 .Fl d
1171 is given, the newly linked window is not selected.
1172 .It Xo Ic list-panes
1173 .Op Fl as
1174 .Op Fl F Ar format
1175 .Op Fl t Ar target
1177 .D1 (alias: Ic lsp )
1179 .Fl a
1180 is given,
1181 .Ar target
1182 is ignored and all panes on the server are listed.
1184 .Fl s
1185 is given,
1186 .Ar target
1187 is a session (or the current session).
1188 If neither is given,
1189 .Ar target
1190 is a window (or the current window).
1191 For the meaning of the
1192 .Fl F
1193 flag, see the
1194 .Sx FORMATS
1195 section.
1196 .It Xo Ic list-windows
1197 .Op Fl a
1198 .Op Fl F Ar format
1199 .Op Fl t Ar target-session
1201 .D1 (alias: Ic lsw )
1203 .Fl a
1204 is given, list all windows on the server.
1205 Otherwise, list windows in the current session or in
1206 .Ar target-session .
1207 For the meaning of the
1208 .Fl F
1209 flag, see the
1210 .Sx FORMATS
1211 section.
1212 .It Xo Ic move-window
1213 .Op Fl dk
1214 .Op Fl s Ar src-window
1215 .Op Fl t Ar dst-window
1217 .D1 (alias: Ic movew )
1218 This is similar to
1219 .Ic link-window ,
1220 except the window at
1221 .Ar src-window
1222 is moved to
1223 .Ar dst-window .
1224 .It Xo Ic new-window
1225 .Op Fl adkP
1226 .Op Fl n Ar window-name
1227 .Op Fl t Ar target-window
1228 .Op Ar shell-command
1230 .D1 (alias: Ic neww )
1231 Create a new window.
1232 With
1233 .Fl a ,
1234 the new window is inserted at the next index up from the specified
1235 .Ar target-window ,
1236 moving windows up if necessary,
1237 otherwise
1238 .Ar target-window
1239 is the new window location.
1242 .Fl d
1243 is given, the session does not make the new window the current window.
1244 .Ar target-window
1245 represents the window to be created; if the target already exists an error is
1246 shown, unless the
1247 .Fl k
1248 flag is used, in which case it is destroyed.
1249 .Ar shell-command
1250 is the command to execute.
1252 .Ar shell-command
1253 is not specified, the value of the
1254 .Ic default-command
1255 option is used.
1257 When the shell command completes, the window closes.
1258 See the
1259 .Ic remain-on-exit
1260 option to change this behaviour.
1263 .Ev TERM
1264 environment variable must be set to
1265 .Dq screen
1266 for all programs running
1267 .Em inside
1268 .Nm .
1269 New windows will automatically have
1270 .Dq TERM=screen
1271 added to their environment, but care must be taken not to reset this in shell
1272 start-up files.
1275 .Fl P
1276 option prints the location of the new window after it has been created.
1277 .It Ic next-layout Op Fl t Ar target-window
1278 .D1 (alias: Ic nextl )
1279 Move a window to the next layout and rearrange the panes to fit.
1280 .It Xo Ic next-window
1281 .Op Fl a
1282 .Op Fl t Ar target-session
1284 .D1 (alias: Ic next )
1285 Move to the next window in the session.
1287 .Fl a
1288 is used, move to the next window with a bell, activity or content alert.
1289 .It Xo Ic pipe-pane
1290 .Op Fl o
1291 .Op Fl t Ar target-pane
1292 .Op Ar shell-command
1294 .D1 (alias: Ic pipep )
1295 Pipe any output sent by the program in
1296 .Ar target-pane
1297 to a shell command.
1298 A pane may only be piped to one command at a time, any existing pipe is
1299 closed before
1300 .Ar shell-command
1301 is executed.
1303 .Ar shell-command
1304 string may contain the special character sequences supported by the
1305 .Ic status-left
1306 option.
1307 If no
1308 .Ar shell-command
1309 is given, the current pipe (if any) is closed.
1312 .Fl o
1313 option only opens a new pipe if no previous pipe exists, allowing a pipe to
1314 be toggled with a single key, for example:
1315 .Bd -literal -offset indent
1316 bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'
1318 .It Xo Ic previous-layout
1319 .Op Fl t Ar target-window
1321 .D1 (alias: Ic prevl )
1322 Move to the previous layout in the session.
1323 .It Xo Ic previous-window
1324 .Op Fl a
1325 .Op Fl t Ar target-session
1327 .D1 (alias: Ic prev )
1328 Move to the previous window in the session.
1329 With
1330 .Fl a ,
1331 move to the previous window with a bell, activity or content alert.
1332 .It Xo Ic rename-window
1333 .Op Fl t Ar target-window
1334 .Ar new-name
1336 .D1 (alias: Ic renamew )
1337 Rename the current window, or the window at
1338 .Ar target-window
1339 if specified, to
1340 .Ar new-name .
1341 .It Xo Ic resize-pane
1342 .Op Fl DLRU
1343 .Op Fl t Ar target-pane
1344 .Op Ar adjustment
1346 .D1 (alias: Ic resizep )
1347 Resize a pane, upward with
1348 .Fl U
1349 (the default), downward with
1350 .Fl D ,
1351 to the left with
1352 .Fl L
1353 and to the right with
1354 .Fl R .
1356 .Ar adjustment
1357 is given in lines or cells (the default is 1).
1358 .It Xo Ic respawn-pane
1359 .Op Fl k
1360 .Op Fl t Ar target-pane
1361 .Op Ar shell-command
1363 .D1 (alias: Ic respawnp )
1364 Reactivate a pane in which the command has exited (see the
1365 .Ic remain-on-exit
1366 window option).
1368 .Ar shell-command
1369 is not given, the command used when the pane was created is executed.
1370 The pane must be already inactive, unless
1371 .Fl k
1372 is given, in which case any existing command is killed.
1373 .It Xo Ic respawn-window
1374 .Op Fl k
1375 .Op Fl t Ar target-window
1376 .Op Ar shell-command
1378 .D1 (alias: Ic respawnw )
1379 Reactivate a window in which the command has exited (see the
1380 .Ic remain-on-exit
1381 window option).
1383 .Ar shell-command
1384 is not given, the command used when the window was created is executed.
1385 The window must be already inactive, unless
1386 .Fl k
1387 is given, in which case any existing command is killed.
1388 .It Xo Ic rotate-window
1389 .Op Fl DU
1390 .Op Fl t Ar target-window
1392 .D1 (alias: Ic rotatew )
1393 Rotate the positions of the panes within a window, either upward (numerically
1394 lower) with
1395 .Fl U
1396 or downward (numerically higher).
1397 .It Xo Ic select-layout
1398 .Op Fl np
1399 .Op Fl t Ar target-window
1400 .Op Ar layout-name
1402 .D1 (alias: Ic selectl )
1403 Choose a specific layout for a window.
1405 .Ar layout-name
1406 is not given, the last preset layout used (if any) is reapplied.
1407 .Fl n
1409 .Fl p
1410 are equivalent to the
1411 .Ic next-layout
1413 .Ic previous-layout
1414 commands.
1415 .It Xo Ic select-pane
1416 .Op Fl lDLRU
1417 .Op Fl t Ar target-pane
1419 .D1 (alias: Ic selectp )
1420 Make pane
1421 .Ar target-pane
1422 the active pane in window
1423 .Ar target-window .
1424 If one of
1425 .Fl D ,
1426 .Fl L ,
1427 .Fl R ,
1429 .Fl U
1430 is used, respectively the pane below, to the left, to the right, or above the
1431 target pane is used.
1432 .Fl l
1433 is the same as using the
1434 .Ic last-pane
1435 command.
1436 .It Xo Ic select-window
1437 .Op Fl lnp
1438 .Op Fl t Ar target-window
1440 .D1 (alias: Ic selectw )
1441 Select the window at
1442 .Ar target-window .
1443 .Fl l ,
1444 .Fl n
1446 .Fl p
1447 are equivalent to the
1448 .Ic last-window ,
1449 .Ic next-window
1451 .Ic previous-window
1452 commands.
1453 .It Xo Ic split-window
1454 .Op Fl dhvP
1455 .Oo Fl l
1456 .Ar size |
1457 .Fl p Ar percentage Oc
1458 .Op Fl t Ar target-pane
1459 .Op Ar shell-command
1461 .D1 (alias: Ic splitw )
1462 Create a new pane by splitting
1463 .Ar target-pane :
1464 .Fl h
1465 does a horizontal split and
1466 .Fl v
1467 a vertical split; if neither is specified,
1468 .Fl v
1469 is assumed.
1471 .Fl l
1473 .Fl p
1474 options specify the size of the new pane in lines (for vertical split) or in
1475 cells (for horizontal split), or as a percentage, respectively.
1476 All other options have the same meaning as for the
1477 .Ic new-window
1478 command.
1479 .It Xo Ic swap-pane
1480 .Op Fl dDU
1481 .Op Fl s Ar src-pane
1482 .Op Fl t Ar dst-pane
1484 .D1 (alias: Ic swapp )
1485 Swap two panes.
1487 .Fl U
1488 is used and no source pane is specified with
1489 .Fl s ,
1490 .Ar dst-pane
1491 is swapped with the previous pane (before it numerically);
1492 .Fl D
1493 swaps with the next pane (after it numerically).
1494 .Fl d
1495 instructs
1497 not to change the active pane.
1498 .It Xo Ic swap-window
1499 .Op Fl d
1500 .Op Fl s Ar src-window
1501 .Op Fl t Ar dst-window
1503 .D1 (alias: Ic swapw )
1504 This is similar to
1505 .Ic link-window ,
1506 except the source and destination windows are swapped.
1507 It is an error if no window exists at
1508 .Ar src-window .
1509 .It Xo Ic unlink-window
1510 .Op Fl k
1511 .Op Fl t Ar target-window
1513 .D1 (alias: Ic unlinkw )
1514 Unlink
1515 .Ar target-window .
1516 Unless
1517 .Fl k
1518 is given, a window may be unlinked only if it is linked to multiple sessions -
1519 windows may not be linked to no sessions;
1521 .Fl k
1522 is specified and the window is linked to only one session, it is unlinked and
1523 destroyed.
1525 .Sh KEY BINDINGS
1527 allows a command to be bound to most keys, with or without a prefix key.
1528 When specifying keys, most represent themselves (for example
1529 .Ql A
1531 .Ql Z ) .
1532 Ctrl keys may be prefixed with
1533 .Ql C-
1535 .Ql ^ ,
1536 and Alt (meta) with
1537 .Ql M- .
1538 In addition, the following special key names are accepted:
1539 .Em Up ,
1540 .Em Down ,
1541 .Em Left ,
1542 .Em Right ,
1543 .Em BSpace ,
1544 .Em BTab ,
1545 .Em DC
1546 (Delete),
1547 .Em End ,
1548 .Em Enter ,
1549 .Em Escape ,
1550 .Em F1
1552 .Em F20 ,
1553 .Em Home ,
1554 .Em IC
1555 (Insert),
1556 .Em NPage/PageDown/PgDn ,
1557 .Em PPage/PageUp/PgUp ,
1558 .Em Space ,
1560 .Em Tab .
1561 Note that to bind the
1562 .Ql \&"
1564 .Ql '
1565 keys, quotation marks are necessary, for example:
1566 .Bd -literal -offset indent
1567 bind-key '"' split-window
1568 bind-key "'" new-window
1571 Commands related to key bindings are as follows:
1572 .Bl -tag -width Ds
1573 .It Xo Ic bind-key
1574 .Op Fl cnr
1575 .Op Fl t Ar key-table
1576 .Ar key Ar command Op Ar arguments
1578 .D1 (alias: Ic bind )
1579 Bind key
1580 .Ar key
1582 .Ar command .
1583 By default (without
1584 .Fl t )
1585 the primary key bindings are modified (those normally activated with the prefix
1586 key); in this case, if
1587 .Fl n
1588 is specified, it is not necessary to use the prefix key,
1589 .Ar command
1590 is bound to
1591 .Ar key
1592 alone.
1594 .Fl r
1595 flag indicates this key may repeat, see the
1596 .Ic repeat-time
1597 option.
1600 .Fl t
1601 is present,
1602 .Ar key
1603 is bound in
1604 .Ar key-table :
1605 the binding for command mode with
1606 .Fl c
1607 or for normal mode without.
1608 To view the default bindings and possible commands, see the
1609 .Ic list-keys
1610 command.
1611 .It Ic list-keys Op Fl t Ar key-table
1612 .D1 (alias: Ic lsk )
1613 List all key bindings.
1614 Without
1615 .Fl t
1616 the primary key bindings - those executed when preceded by the prefix key -
1617 are printed.
1618 Keys bound without the prefix key (see
1619 .Ic bind-key
1620 .Fl n )
1621 are marked with
1622 .Ql (no prefix) .
1624 With
1625 .Fl t ,
1626 the key bindings in
1627 .Ar key-table
1628 are listed; this may be one of:
1629 .Em vi-edit ,
1630 .Em emacs-edit ,
1631 .Em vi-choice ,
1632 .Em emacs-choice ,
1633 .Em vi-copy
1635 .Em emacs-copy .
1636 .It Xo Ic send-keys
1637 .Fl R
1638 .Op Fl t Ar target-pane
1639 .Ar key Ar ...
1641 .D1 (alias: Ic send )
1642 Send a key or keys to a window.
1643 Each argument
1644 .Ar key
1645 is the name of the key (such as
1646 .Ql C-a
1648 .Ql npage
1649 ) to send; if the string is not recognised as a key, it is sent as a series of
1650 characters.
1651 All arguments are sent sequentially from first to last.
1653 .Fl R
1654 flag causes the terminal state to be reset.
1655 .It Xo Ic send-prefix
1656 .Op Fl 2
1657 .Op Fl t Ar target-pane
1659 Send the prefix key, or with
1660 .Fl 2
1661 the secondary prefix key, to a window as if it was pressed.
1662 .It Xo Ic unbind-key
1663 .Op Fl acn
1664 .Op Fl t Ar key-table
1665 .Ar key
1667 .D1 (alias: Ic unbind )
1668 Unbind the command bound to
1669 .Ar key .
1670 Without
1671 .Fl t
1672 the primary key bindings are modified; in this case, if
1673 .Fl n
1674 is specified, the command bound to
1675 .Ar key
1676 without a prefix (if any) is removed.
1678 .Fl a
1679 is present, all key bindings are removed.
1682 .Fl t
1683 is present,
1684 .Ar key
1686 .Ar key-table
1687 is unbound: the binding for command mode with
1688 .Fl c
1689 or for normal mode without.
1691 .Sh OPTIONS
1692 The appearance and behaviour of
1694 may be modified by changing the value of various options.
1695 There are three types of option:
1696 .Em server options ,
1697 .Em session options
1699 .Em window options .
1703 server has a set of global options which do not apply to any particular
1704 window or session.
1705 These are altered with the
1706 .Ic set-option
1707 .Fl s
1708 command, or displayed with the
1709 .Ic show-options
1710 .Fl s
1711 command.
1713 In addition, each individual session may have a set of session options, and
1714 there is a separate set of global session options.
1715 Sessions which do not have a particular option configured inherit the value
1716 from the global session options.
1717 Session options are set or unset with the
1718 .Ic set-option
1719 command and may be listed with the
1720 .Ic show-options
1721 command.
1722 The available server and session options are listed under the
1723 .Ic set-option
1724 command.
1726 Similarly, a set of window options is attached to each window, and there is
1727 a set of global window options from which any unset options are inherited.
1728 Window options are altered with the
1729 .Ic set-window-option
1730 command and can be listed with the
1731 .Ic show-window-options
1732 command.
1733 All window options are documented with the
1734 .Ic set-window-option
1735 command.
1737 Commands which set options are as follows:
1738 .Bl -tag -width Ds
1739 .It Xo Ic set-option
1740 .Op Fl agsuw
1741 .Op Fl t Ar target-session | Ar target-window
1742 .Ar option Ar value
1744 .D1 (alias: Ic set )
1745 Set a window option with
1746 .Fl w
1747 (equivalent to the
1748 .Ic set-window-option
1749 command),
1750 a server option with
1751 .Fl s ,
1752 otherwise a session option.
1755 .Fl g
1756 is specified, the global session or window option is set.
1757 With
1758 .Fl a ,
1759 and if the option expects a string,
1760 .Ar value
1761 is appended to the existing setting.
1763 .Fl u
1764 flag unsets an option, so a session inherits the option from the global
1765 options.
1766 It is not possible to unset a global option.
1768 Available window options are listed under
1769 .Ic set-window-option .
1771 Available server options are:
1772 .Bl -tag -width Ds
1773 .It Ic buffer-limit Ar number
1774 Set the number of buffers; as new buffers are added to the top of the stack,
1775 old ones are removed from the bottom if necessary to maintain this maximum
1776 length.
1777 .It Ic escape-time Ar time
1778 Set the time in milliseconds for which
1780 waits after an escape is input to determine if it is part of a function or meta
1781 key sequences.
1782 The default is 500 milliseconds.
1783 .It Xo Ic exit-unattached
1784 .Op Ic on | off
1786 If enabled, the server will exit when there are no attached clients.
1787 .It Xo Ic quiet
1788 .Op Ic on | off
1790 Enable or disable the display of various informational messages (see also the
1791 .Fl q
1792 command line flag).
1793 .It Xo Ic set-clipboard
1794 .Op Ic on | off
1796 Attempt to set the terminal clipboard content using the
1797 \ee]52;...\e007
1798 .Xr xterm 1
1799 escape sequences.
1800 This option is on by default if there is an
1801 .Em \&Ms
1802 entry in the
1803 .Xr terminfo 5
1804 description for the client terminal.
1805 Note that this feature needs to be enabled in
1806 .Xr xterm 1
1807 by setting the resource:
1808 .Bd -literal -offset indent
1809 disallowedWindowOps: 20,21,SetXprop
1812 Or changing this property from the
1813 .Xr xterm 1
1814 interactive menu when required.
1817 Available session options are:
1818 .Bl -tag -width Ds
1819 .It Ic base-index Ar index
1820 Set the base index from which an unused index should be searched when a new
1821 window is created.
1822 The default is zero.
1823 .It Xo Ic bell-action
1824 .Op Ic any | none | current
1826 Set action on window bell.
1827 .Ic any
1828 means a bell in any window linked to a session causes a bell in the current
1829 window of that session,
1830 .Ic none
1831 means all bells are ignored and
1832 .Ic current
1833 means only bell in windows other than the current window are ignored.
1834 .It Xo Ic bell-on-alert
1835 .Op Ic on | off
1837 If on, ring the terminal bell when an activity, content or silence alert
1838 occurs.
1839 .It Ic default-command Ar shell-command
1840 Set the command used for new windows (if not specified when the window is
1841 created) to
1842 .Ar shell-command ,
1843 which may be any
1844 .Xr sh 1
1845 command.
1846 The default is an empty string, which instructs
1848 to create a login shell using the value of the
1849 .Ic default-shell
1850 option.
1851 .It Ic default-path Ar path
1852 Set the default working directory for new panes.
1853 If empty (the default), the working directory is determined from the process
1854 running in the active pane, from the command line environment or from the
1855 working directory where the session was created.
1857 .Ar path
1858 is "$HOME" or "~", the value of the
1859 .Ev HOME
1860 environment variable is used.
1862 .Ar path
1863 is ".", the working directory when
1865 was started is used.
1866 .It Ic default-shell Ar path
1867 Specify the default shell.
1868 This is used as the login shell for new windows when the
1869 .Ic default-command
1870 option is set to empty, and must be the full path of the executable.
1871 When started
1873 tries to set a default value from the first suitable of the
1874 .Ev SHELL
1875 environment variable, the shell returned by
1876 .Xr getpwuid 3 ,
1878 .Pa /bin/sh .
1879 This option should be configured when
1881 is used as a login shell.
1882 .It Ic default-terminal Ar terminal
1883 Set the default terminal for new windows created in this session - the
1884 default value of the
1885 .Ev TERM
1886 environment variable.
1889 to work correctly, this
1890 .Em must
1891 be set to
1892 .Ql screen
1893 or a derivative of it.
1894 .It Xo Ic destroy-unattached
1895 .Op Ic on | off
1897 If enabled and the session is no longer attached to any clients, it is
1898 destroyed.
1899 .It Xo Ic detach-on-destroy
1900 .Op Ic on | off
1902 If on (the default), the client is detached when the session it is attached to
1903 is destroyed.
1904 If off, the client is switched to the most recently active of the remaining
1905 sessions.
1906 .It Ic display-panes-active-colour Ar colour
1907 Set the colour used by the
1908 .Ic display-panes
1909 command to show the indicator for the active pane.
1910 .It Ic display-panes-colour Ar colour
1911 Set the colour used by the
1912 .Ic display-panes
1913 command to show the indicators for inactive panes.
1914 .It Ic display-panes-time Ar time
1915 Set the time in milliseconds for which the indicators shown by the
1916 .Ic display-panes
1917 command appear.
1918 .It Ic display-time Ar time
1919 Set the amount of time for which status line messages and other on-screen
1920 indicators are displayed.
1921 .Ar time
1922 is in milliseconds.
1923 .It Ic history-limit Ar lines
1924 Set the maximum number of lines held in window history.
1925 This setting applies only to new windows - existing window histories are not
1926 resized and retain the limit at the point they were created.
1927 .It Ic lock-after-time Ar number
1928 Lock the session (like the
1929 .Ic lock-session
1930 command) after
1931 .Ar number
1932 seconds of inactivity, or the entire server (all sessions) if the
1933 .Ic lock-server
1934 option is set.
1935 The default is not to lock (set to 0).
1936 .It Ic lock-command Ar shell-command
1937 Command to run when locking each client.
1938 The default is to run
1939 .Xr lock 1
1940 with
1941 .Fl np .
1942 .It Xo Ic lock-server
1943 .Op Ic on | off
1945 If this option is
1946 .Ic on
1947 (the default),
1948 instead of each session locking individually as each has been
1949 idle for
1950 .Ic lock-after-time ,
1951 the entire server will lock after
1952 .Em all
1953 sessions would have locked.
1954 This has no effect as a session option; it must be set as a global option.
1955 .It Ic message-attr Ar attributes
1956 Set status line message attributes, where
1957 .Ar attributes
1958 is either
1959 .Ic none
1960 or a comma-delimited list of one or more of:
1961 .Ic bright
1963 .Ic bold ) ,
1964 .Ic dim ,
1965 .Ic underscore ,
1966 .Ic blink ,
1967 .Ic reverse ,
1968 .Ic hidden ,
1970 .Ic italics .
1971 .It Ic message-bg Ar colour
1972 Set status line message background colour, where
1973 .Ar colour
1974 is one of:
1975 .Ic black ,
1976 .Ic red ,
1977 .Ic green ,
1978 .Ic yellow ,
1979 .Ic blue ,
1980 .Ic magenta ,
1981 .Ic cyan ,
1982 .Ic white ,
1983 aixterm bright variants (if supported:
1984 .Ic brightred ,
1985 .Ic brightgreen ,
1986 and so on),
1987 .Ic colour0
1989 .Ic colour255
1990 from the 256-colour set,
1991 .Ic default ,
1992 or a hexadecimal RGB string such as
1993 .Ql #ffffff ,
1994 which chooses the closest match from the default 256-colour set.
1995 .It Ic message-command-attr Ar attributes
1996 Set status line message attributes when in command mode.
1997 .It Ic message-command-bg Ar colour
1998 Set status line message background colour when in command mode.
1999 .It Ic message-command-fg Ar colour
2000 Set status line message foreground colour when in command mode.
2001 .It Ic message-fg Ar colour
2002 Set status line message foreground colour.
2003 .It Ic message-limit Ar number
2004 Set the number of error or information messages to save in the message log for
2005 each client.
2006 The default is 20.
2007 .It Xo Ic mouse-resize-pane
2008 .Op Ic on | off
2010 If on,
2012 captures the mouse and allows panes to be resized by dragging on their borders.
2013 .It Xo Ic mouse-select-pane
2014 .Op Ic on | off
2016 If on,
2018 captures the mouse and when a window is split into multiple panes the mouse may
2019 be used to select the current pane.
2020 The mouse click is also passed through to the application as normal.
2021 .It Xo Ic mouse-select-window
2022 .Op Ic on | off
2024 If on, clicking the mouse on a window name in the status line will select that
2025 window.
2026 .It Xo Ic mouse-utf8
2027 .Op Ic on | off
2029 If enabled, request mouse input as UTF-8 on UTF-8 terminals.
2030 .It Ic pane-active-border-bg Ar colour
2031 .It Ic pane-active-border-fg Ar colour
2032 Set the pane border colour for the currently active pane.
2033 .It Ic pane-border-bg Ar colour
2034 .It Ic pane-border-fg Ar colour
2035 Set the pane border colour for panes aside from the active pane.
2036 .It Ic prefix Ar key
2037 Set the key accepted as a prefix key.
2038 .It Ic prefix2 Ar key
2039 Set a secondary key accepted as a prefix key.
2040 .It Ic repeat-time Ar time
2041 Allow multiple commands to be entered without pressing the prefix-key again
2042 in the specified
2043 .Ar time
2044 milliseconds (the default is 500).
2045 Whether a key repeats may be set when it is bound using the
2046 .Fl r
2047 flag to
2048 .Ic bind-key .
2049 Repeat is enabled for the default keys bound to the
2050 .Ic resize-pane
2051 command.
2052 .It Xo Ic set-remain-on-exit
2053 .Op Ic on | off
2055 Set the
2056 .Ic remain-on-exit
2057 window option for any windows first created in this session.
2058 When this option is true, windows in which the running program has
2059 exited do not close, instead remaining open but inactivate.
2060 Use the
2061 .Ic respawn-window
2062 command to reactivate such a window, or the
2063 .Ic kill-window
2064 command to destroy it.
2065 .It Xo Ic set-titles
2066 .Op Ic on | off
2068 Attempt to set the client terminal title using the
2069 .Em tsl
2071 .Em fsl
2072 .Xr terminfo 5
2073 entries if they exist.
2075 automatically sets these to the \ee]2;...\e007 sequence if
2076 the terminal appears to be an xterm.
2077 This option is off by default.
2078 Note that elinks
2079 will only attempt to set the window title if the STY environment
2080 variable is set.
2081 .It Ic set-titles-string Ar string
2082 String used to set the window title if
2083 .Ic set-titles
2084 is on.
2085 Character sequences are replaced as for the
2086 .Ic status-left
2087 option.
2088 .It Xo Ic status
2089 .Op Ic on | off
2091 Show or hide the status line.
2092 .It Ic status-attr Ar attributes
2093 Set status line attributes.
2094 .It Ic status-bg Ar colour
2095 Set status line background colour.
2096 .It Ic status-fg Ar colour
2097 Set status line foreground colour.
2098 .It Ic status-interval Ar interval
2099 Update the status bar every
2100 .Ar interval
2101 seconds.
2102 By default, updates will occur every 15 seconds.
2103 A setting of zero disables redrawing at interval.
2104 .It Xo Ic status-justify
2105 .Op Ic left | centre | right
2107 Set the position of the window list component of the status line: left, centre
2108 or right justified.
2109 .It Xo Ic status-keys
2110 .Op Ic vi | emacs
2112 Use vi or emacs-style
2113 key bindings in the status line, for example at the command prompt.
2114 The default is emacs, unless the
2115 .Ev VISUAL
2117 .Ev EDITOR
2118 environment variables are set and contain the string
2119 .Ql vi .
2120 .It Ic status-left Ar string
2121 Display
2122 .Ar string
2123 to the left of the status bar.
2124 .Ar string
2125 will be passed through
2126 .Xr strftime 3
2127 before being used.
2128 By default, the session name is shown.
2129 .Ar string
2130 may contain any of the following special character sequences:
2131 .Bl -column "Character pair" "Replaced with" -offset indent
2132 .It Sy "Character pair" Ta Sy "Replaced with"
2133 .It Li "#(shell-command)" Ta "First line of the command's output"
2134 .It Li "#[attributes]" Ta "Colour or attribute change"
2135 .It Li "#H" Ta "Hostname of local host"
2136 .It Li "#h" Ta "Hostname of local host without the domain name"
2137 .It Li "#F" Ta "Current window flag"
2138 .It Li "#I" Ta "Current window index"
2139 .It Li "#P" Ta "Current pane index"
2140 .It Li "#S" Ta "Session name"
2141 .It Li "#T" Ta "Current pane title"
2142 .It Li "#W" Ta "Current window name"
2143 .It Li "##" Ta "A literal" Ql #
2146 The #(shell-command) form executes
2147 .Ql shell-command
2148 and inserts the first line of its output.
2149 Note that shell commands are only executed once at the interval specified by
2151 .Ic status-interval
2152 option: if the status line is redrawn in the meantime, the previous result is
2153 used.
2154 Shell commands are executed with the
2156 global environment set (see the
2157 .Sx ENVIRONMENT
2158 section).
2160 For details on how the names and titles can be set see the
2161 .Sx "NAMES AND TITLES"
2162 section.
2164 #[attributes] allows a comma-separated list of attributes to be specified,
2165 these may be
2166 .Ql fg=colour
2167 to set the foreground colour,
2168 .Ql bg=colour
2169 to set the background colour, the name of one of the attributes (listed under
2171 .Ic message-attr
2172 option) to turn an attribute on, or an attribute prefixed with
2173 .Ql no
2174 to turn one off, for example
2175 .Ic nobright .
2176 Examples are:
2177 .Bd -literal -offset indent
2178 #(sysctl vm.loadavg)
2179 #[fg=yellow,bold]#(apm -l)%%#[default] [#S]
2182 Where appropriate, special character sequences may be prefixed with a number to
2183 specify the maximum length, for example
2184 .Ql #24T .
2186 By default, UTF-8 in
2187 .Ar string
2188 is not interpreted, to enable UTF-8, use the
2189 .Ic status-utf8
2190 option.
2191 .It Ic status-left-attr Ar attributes
2192 Set the attribute of the left part of the status line.
2193 .It Ic status-left-bg Ar colour
2194 Set the background colour of the left part of the status line.
2195 .It Ic status-left-fg Ar colour
2196 Set the foreground colour of the left part of the status line.
2197 .It Ic status-left-length Ar length
2198 Set the maximum
2199 .Ar length
2200 of the left component of the status bar.
2201 The default is 10.
2202 .It Xo Ic status-position
2203 .Op Ic top | bottom
2205 Set the position of the status line.
2206 .It Ic status-right Ar string
2207 Display
2208 .Ar string
2209 to the right of the status bar.
2210 By default, the current window title in double quotes, the date and the time
2211 are shown.
2212 As with
2213 .Ic status-left ,
2214 .Ar string
2215 will be passed to
2216 .Xr strftime 3 ,
2217 character pairs are replaced, and UTF-8 is dependent on the
2218 .Ic status-utf8
2219 option.
2220 .It Ic status-right-attr Ar attributes
2221 Set the attribute of the right part of the status line.
2222 .It Ic status-right-bg Ar colour
2223 Set the background colour of the right part of the status line.
2224 .It Ic status-right-fg Ar colour
2225 Set the foreground colour of the right part of the status line.
2226 .It Ic status-right-length Ar length
2227 Set the maximum
2228 .Ar length
2229 of the right component of the status bar.
2230 The default is 40.
2231 .It Xo Ic status-utf8
2232 .Op Ic on | off
2234 Instruct
2236 to treat top-bit-set characters in the
2237 .Ic status-left
2239 .Ic status-right
2240 strings as UTF-8; notably, this is important for wide characters.
2241 This option defaults to off.
2242 .It Ic terminal-overrides Ar string
2243 Contains a list of entries which override terminal descriptions read using
2244 .Xr terminfo 5 .
2245 .Ar string
2246 is a comma-separated list of items each a colon-separated string made up of a
2247 terminal type pattern (matched using
2248 .Xr fnmatch 3 )
2249 and a set of
2250 .Em name=value
2251 entries.
2253 For example, to set the
2254 .Ql clear
2255 .Xr terminfo 5
2256 entry to
2257 .Ql \ee[H\ee[2J
2258 for all terminal types and the
2259 .Ql dch1
2260 entry to
2261 .Ql \ee[P
2262 for the
2263 .Ql rxvt
2264 terminal type, the option could be set to the string:
2265 .Bd -literal -offset indent
2266 "*:clear=\ee[H\ee[2J,rxvt:dch1=\ee[P"
2269 The terminal entry value is passed through
2270 .Xr strunvis 3
2271 before interpretation.
2272 The default value forcibly corrects the
2273 .Ql colors
2274 entry for terminals which support 88 or 256 colours:
2275 .Bd -literal -offset indent
2276 "*88col*:colors=88,*256col*:colors=256,xterm*:XT"
2278 .It Ic update-environment Ar variables
2279 Set a space-separated string containing a list of environment variables to be
2280 copied into the session environment when a new session is created or an
2281 existing session is attached.
2282 Any variables that do not exist in the source environment are set to be
2283 removed from the session environment (as if
2284 .Fl r
2285 was given to the
2286 .Ic set-environment
2287 command).
2288 The default is
2289 "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID
2290 XAUTHORITY".
2291 .It Xo Ic visual-activity
2292 .Op Ic on | off
2294 If on, display a status line message when activity occurs in a window
2295 for which the
2296 .Ic monitor-activity
2297 window option is enabled.
2298 .It Xo Ic visual-bell
2299 .Op Ic on | off
2301 If this option is on, a message is shown on a bell instead of it being passed
2302 through to the terminal (which normally makes a sound).
2303 Also see the
2304 .Ic bell-action
2305 option.
2306 .It Xo Ic visual-content
2307 .Op Ic on | off
2309 Like
2310 .Ic visual-activity ,
2311 display a message when content is present in a window
2312 for which the
2313 .Ic monitor-content
2314 window option is enabled.
2315 .It Xo Ic visual-silence
2316 .Op Ic on | off
2319 .Ic monitor-silence
2320 is enabled, prints a message after the interval has expired on a given window.
2321 .It Ic word-separators Ar string
2322 Sets the session's conception of what characters are considered word
2323 separators, for the purposes of the next and previous word commands in
2324 copy mode.
2325 The default is
2326 .Ql \ -_@ .
2328 .It Xo Ic set-window-option
2329 .Op Fl agu
2330 .Op Fl t Ar target-window
2331 .Ar option Ar value
2333 .D1 (alias: Ic setw )
2334 Set a window option.
2336 .Fl a ,
2337 .Fl g
2339 .Fl u
2340 flags work similarly to the
2341 .Ic set-option
2342 command.
2344 Supported window options are:
2346 .Bl -tag -width Ds -compact
2347 .It Xo Ic aggressive-resize
2348 .Op Ic on | off
2350 Aggressively resize the chosen window.
2351 This means that
2353 will resize the window to the size of the smallest session for which it is the
2354 current window, rather than the smallest session to which it is attached.
2355 The window may resize when the current window is changed on another sessions;
2356 this option is good for full-screen programs which support
2357 .Dv SIGWINCH
2358 and poor for interactive programs such as shells.
2360 .It Xo Ic allow-rename
2361 .Op Ic on | off
2363 Allow programs to change the window name using a terminal escape
2364 sequence (\\033k...\\033\\\\).
2365 The default is on.
2367 .It Xo Ic alternate-screen
2368 .Op Ic on | off
2370 This option configures whether programs running inside
2372 may use the terminal alternate screen feature, which allows the
2373 .Em smcup
2375 .Em rmcup
2376 .Xr terminfo 5
2377 capabilities.
2378 The alternate screen feature preserves the contents of the window when an
2379 interactive application starts and restores it on exit, so that any output
2380 visible before the application starts reappears unchanged after it exits.
2381 The default is on.
2383 .It Xo Ic automatic-rename
2384 .Op Ic on | off
2386 Control automatic window renaming.
2387 When this setting is enabled,
2389 will attempt - on supported platforms - to rename the window to reflect the
2390 command currently running in it.
2391 This flag is automatically disabled for an individual window when a name
2392 is specified at creation with
2393 .Ic new-window
2395 .Ic new-session ,
2396 or later with
2397 .Ic rename-window ,
2398 or with a terminal escape sequence.
2399 It may be switched off globally with:
2400 .Bd -literal -offset indent
2401 set-window-option -g automatic-rename off
2404 .It Ic clock-mode-colour Ar colour
2405 Set clock colour.
2407 .It Xo Ic clock-mode-style
2408 .Op Ic 12 | 24
2410 Set clock hour format.
2412 .It Ic force-height Ar height
2413 .It Ic force-width Ar width
2414 Prevent
2416 from resizing a window to greater than
2417 .Ar width
2419 .Ar height .
2420 A value of zero restores the default unlimited setting.
2422 .It Ic main-pane-height Ar height
2423 .It Ic main-pane-width Ar width
2424 Set the width or height of the main (left or top) pane in the
2425 .Ic main-horizontal
2427 .Ic main-vertical
2428 layouts.
2430 .It Ic mode-attr Ar attributes
2431 Set window modes attributes.
2433 .It Ic mode-bg Ar colour
2434 Set window modes background colour.
2436 .It Ic mode-fg Ar colour
2437 Set window modes foreground colour.
2439 .It Xo Ic mode-keys
2440 .Op Ic vi | emacs
2442 Use vi or emacs-style key bindings in copy and choice modes.
2443 As with the
2444 .Ic status-keys
2445 option, the default is emacs, unless
2446 .Ev VISUAL
2448 .Ev EDITOR
2449 contains
2450 .Ql vi .
2452 .It Xo Ic mode-mouse
2453 .Op Ic on | off | copy-mode
2455 Mouse state in modes.
2456 If on, the mouse may be used to enter copy mode and copy a selection by
2457 dragging, to enter copy mode and scroll with the mouse wheel, or to select an
2458 option in choice mode.
2459 If set to
2460 .Em copy-mode ,
2461 the mouse behaves as set to on, but cannot be used to enter copy
2462 mode.
2464 .It Xo Ic monitor-activity
2465 .Op Ic on | off
2467 Monitor for activity in the window.
2468 Windows with activity are highlighted in the status line.
2470 .It Ic monitor-content Ar match-string
2471 Monitor content in the window.
2472 When
2473 .Xr fnmatch 3
2474 pattern
2475 .Ar match-string
2476 appears in the window, it is highlighted in the status line.
2478 .It Xo Ic monitor-silence
2479 .Op Ic interval
2481 Monitor for silence (no activity) in the window within
2482 .Ic interval
2483 seconds.
2484 Windows that have been silent for the interval are highlighted in the
2485 status line.
2486 An interval of zero disables the monitoring.
2488 .It Ic other-pane-height Ar height
2489 Set the height of the other panes (not the main pane) in the
2490 .Ic main-horizontal
2491 layout.
2492 If this option is set to 0 (the default), it will have no effect.
2493 If both the
2494 .Ic main-pane-height
2496 .Ic other-pane-height
2497 options are set, the main pane will grow taller to make the other panes the
2498 specified height, but will never shrink to do so.
2500 .It Ic other-pane-width Ar width
2501 Like
2502 .Ic other-pane-height ,
2503 but set the width of other panes in the
2504 .Ic main-vertical
2505 layout.
2507 .It Ic pane-base-index Ar index
2508 Like
2509 .Ic base-index ,
2510 but set the starting index for pane numbers.
2512 .It Xo Ic remain-on-exit
2513 .Op Ic on | off
2515 A window with this flag set is not destroyed when the program running in it
2516 exits.
2517 The window may be reactivated with the
2518 .Ic respawn-window
2519 command.
2521 .It Xo Ic synchronize-panes
2522 .Op Ic on | off
2524 Duplicate input to any pane to all other panes in the same window (only
2525 for panes that are not in any special mode).
2527 .It Xo Ic utf8
2528 .Op Ic on | off
2530 Instructs
2532 to expect UTF-8 sequences to appear in this window.
2534 .It Ic window-status-bell-attr Ar attributes
2535 Set status line attributes for windows which have a bell alert.
2537 .It Ic window-status-bell-bg Ar colour
2538 Set status line background colour for windows with a bell alert.
2540 .It Ic window-status-bell-fg Ar colour
2541 Set status line foreground colour for windows with a bell alert.
2543 .It Ic window-status-content-attr Ar attributes
2544 Set status line attributes for windows which have a content alert.
2546 .It Ic window-status-content-bg Ar colour
2547 Set status line background colour for windows with a content alert.
2549 .It Ic window-status-content-fg Ar colour
2550 Set status line foreground colour for windows with a content alert.
2552 .It Ic window-status-activity-attr Ar attributes
2553 Set status line attributes for windows which have an activity (or silence) alert.
2555 .It Ic window-status-activity-bg Ar colour
2556 Set status line background colour for windows with an activity alert.
2558 .It Ic window-status-activity-fg Ar colour
2559 Set status line foreground colour for windows with an activity alert.
2561 .It Ic window-status-attr Ar attributes
2562 Set status line attributes for a single window.
2564 .It Ic window-status-bg Ar colour
2565 Set status line background colour for a single window.
2567 .It Ic window-status-current-attr Ar attributes
2568 Set status line attributes for the currently active window.
2570 .It Ic window-status-current-bg Ar colour
2571 Set status line background colour for the currently active window.
2573 .It Ic window-status-current-fg Ar colour
2574 Set status line foreground colour for the currently active window.
2576 .It Ic window-status-current-format Ar string
2577 Like
2578 .Ar window-status-format ,
2579 but is the format used when the window is the current window.
2581 .It Ic window-status-fg Ar colour
2582 Set status line foreground colour for a single window.
2584 .It Ic window-status-format Ar string
2585 Set the format in which the window is displayed in the status line window list.
2586 See the
2587 .Ar status-left
2588 option for details of special character sequences available.
2589 The default is
2590 .Ql #I:#W#F .
2592 .It Xo Ic xterm-keys
2593 .Op Ic on | off
2595 If this option is set,
2597 will generate
2598 .Xr xterm 1 -style
2599 function key sequences; these have a number included to indicate modifiers such
2600 as Shift, Alt or Ctrl.
2601 The default is off.
2603 .It Xo Ic show-options
2604 .Op Fl gsw
2605 .Op Fl t Ar target-session | Ar target-window
2607 .D1 (alias: Ic show )
2608 Show the window options with
2609 .Fl w
2610 (equivalent to
2611 .Ic show-window-options ) ,
2612 the server options with
2613 .Fl s ,
2614 otherwise the session options for
2615 .Ar target session .
2616 Global session or window options are listed if
2617 .Fl g
2618 is used.
2619 .It Xo Ic show-window-options
2620 .Op Fl g
2621 .Op Fl t Ar target-window
2623 .D1 (alias: Ic showw )
2624 List the window options for
2625 .Ar target-window ,
2626 or the global window options if
2627 .Fl g
2628 is used.
2630 .Sh FORMATS
2632 .Ic list-clients ,
2633 .Ic list-sessions ,
2634 .Ic list-windows
2636 .Ic list-panes
2637 commands accept the
2638 .Fl F
2639 flag with a
2640 .Ar format
2641 argument.
2642 This is a string which controls the output format of the command.
2643 Special character sequences are replaced as documented under the
2644 .Ic status-left
2645 option and an additional long form is accepted.
2646 Replacement variables are enclosed in
2647 .Ql #{
2649 .Ql } ,
2650 for example
2651 .Ql #{session_name}
2652 is equivalent to
2653 .Ql #S .
2654 Conditionals are also accepted by prefixing with
2655 .Ql \&?
2656 and separating two alternatives with a comma;
2657 if the specified variable exists and is not zero, the first alternative
2658 is chosen, otherwise the second is used.
2659 For example
2660 .Ql #{?session_attached,attached,not attached}
2661 will include the string
2662 .Ql attached
2663 if the session is attached and the string
2664 .Ql not attached
2665 if it is unattached.
2667 The following variables are available, where appropriate:
2668 .Bl -column "session_created_string" "Replaced with" -offset indent
2669 .It Sy "Variable name" Ta Sy "Replaced with"
2670 .It Li "client_activity" Ta "Integer time client last had activity"
2671 .It Li "client_activity_string" Ta "String time client last had activity"
2672 .It Li "client_created" Ta "Integer time client created"
2673 .It Li "client_created_string" Ta "String time client created"
2674 .It Li "client_cwd" Ta "Working directory of client"
2675 .It Li "client_height" Ta "Height of client"
2676 .It Li "client_readonly" Ta "1 if client is readonly"
2677 .It Li "client_termname" Ta "Terminal name of client"
2678 .It Li "client_tty" Ta "Pseudo terminal of client"
2679 .It Li "client_utf8" Ta "1 if client supports utf8"
2680 .It Li "client_width" Ta "Width of client"
2681 .It Li "host" Ta "Hostname of local host"
2682 .It Li "line" Ta "Line number in the list"
2683 .It Li "pane_active" Ta "1 if active pane"
2684 .It Li "pane_dead" Ta "1 if pane is dead"
2685 .It Li "pane_height" Ta "Height of pane"
2686 .It Li "pane_id" Ta "Unique pane id"
2687 .It Li "pane_pid" Ta "PID of first process in pane"
2688 .It Li "pane_start_command" Ta "Command pane started with"
2689 .It Li "pane_start_path" Ta "Path pane started with"
2690 .It Li "pane_title" Ta "Title of pane"
2691 .It Li "pane_tty" Ta "Pseudo terminal of pane"
2692 .It Li "pane_width" Ta "Width of pane"
2693 .It Li "session_attached" Ta "1 if session attached"
2694 .It Li "session_created" Ta "Integer time session created"
2695 .It Li "session_created_string" Ta "String time session created"
2696 .It Li "session_group" Ta "Number of session group"
2697 .It Li "session_grouped" Ta "1 if session in a group"
2698 .It Li "session_height" Ta "Height of session"
2699 .It Li "session_name" Ta "Name of session"
2700 .It Li "session_width" Ta "Width of session"
2701 .It Li "session_windows" Ta "Number of windows in session"
2702 .It Li "window_active" Ta "1 if window active"
2703 .It Li "window_flags" Ta "Window flags"
2704 .It Li "window_height" Ta "Height of window"
2705 .It Li "window_index" Ta "Index of window"
2706 .It Li "window_layout" Ta "Window layout description"
2707 .It Li "window_name" Ta "Name of window"
2708 .It Li "window_width" Ta "Width of window"
2710 .Sh NAMES AND TITLES
2712 distinguishes between names and titles.
2713 Windows and sessions have names, which may be used to specify them in targets
2714 and are displayed in the status line and various lists: the name is the
2716 identifier for a window or session.
2717 Only panes have titles.
2718 A pane's title is typically set by the program running inside the pane and
2719 is not modified by
2720 .Nm .
2721 It is the same mechanism used to set for example the
2722 .Xr xterm 1
2723 window title in an
2724 .Xr X 7
2725 window manager.
2726 Windows themselves do not have titles - a window's title is the title of its
2727 active pane.
2729 itself may set the title of the terminal in which the client is running, see
2731 .Ic set-titles
2732 option.
2734 A session's name is set with the
2735 .Ic new-session
2737 .Ic rename-session
2738 commands.
2739 A window's name is set with one of:
2740 .Bl -enum -width Ds
2742 A command argument (such as
2743 .Fl n
2745 .Ic new-window
2747 .Ic new-session ) .
2749 An escape sequence:
2750 .Bd -literal -offset indent
2751 $ printf '\e033kWINDOW_NAME\e033\e\e'
2754 Automatic renaming, which sets the name to the active command in the window's
2755 active pane.
2756 See the
2757 .Ic automatic-rename
2758 option.
2761 When a pane is first created, its title is the hostname.
2762 A pane's title can be set via the OSC title setting sequence, for example:
2763 .Bd -literal -offset indent
2764 $ printf '\e033]2;My Title\e033\e\e'
2766 .Sh ENVIRONMENT
2767 When the server is started,
2769 copies the environment into the
2770 .Em global environment ;
2771 in addition, each session has a
2772 .Em session environment .
2773 When a window is created, the session and global environments are merged.
2774 If a variable exists in both, the value from the session environment is used.
2775 The result is the initial environment passed to the new process.
2778 .Ic update-environment
2779 session option may be used to update the session environment from the client
2780 when a new session is created or an old reattached.
2782 also initialises the
2783 .Ev TMUX
2784 variable with some internal information to allow commands to be executed
2785 from inside, and the
2786 .Ev TERM
2787 variable with the correct terminal setting of
2788 .Ql screen .
2790 Commands to alter and view the environment are:
2791 .Bl -tag -width Ds
2792 .It Xo Ic set-environment
2793 .Op Fl gru
2794 .Op Fl t Ar target-session
2795 .Ar name Op Ar value
2797 .D1 (alias: Ic setenv )
2798 Set or unset an environment variable.
2800 .Fl g
2801 is used, the change is made in the global environment; otherwise, it is applied
2802 to the session environment for
2803 .Ar target-session .
2805 .Fl u
2806 flag unsets a variable.
2807 .Fl r
2808 indicates the variable is to be removed from the environment before starting a
2809 new process.
2810 .It Xo Ic show-environment
2811 .Op Fl g
2812 .Op Fl t Ar target-session
2814 .D1 (alias: Ic showenv )
2815 Display the environment for
2816 .Ar target-session
2817 or the global environment with
2818 .Fl g .
2819 Variables removed from the environment are prefixed with
2820 .Ql - .
2822 .Sh STATUS LINE
2824 includes an optional status line which is displayed in the bottom line of each
2825 terminal.
2826 By default, the status line is enabled (it may be disabled with the
2827 .Ic status
2828 session option) and contains, from left-to-right: the name of the current
2829 session in square brackets; the window list; the title of the active pane
2830 in double quotes; and the time and date.
2832 The status line is made of three parts: configurable left and right sections
2833 (which may contain dynamic content such as the time or output from a shell
2834 command, see the
2835 .Ic status-left ,
2836 .Ic status-left-length ,
2837 .Ic status-right ,
2839 .Ic status-right-length
2840 options below), and a central window list.
2841 By default, the window list shows the index, name and (if any) flag of the
2842 windows present in the current session in ascending numerical order.
2843 It may be customised with the
2844 .Ar window-status-format
2846 .Ar window-status-current-format
2847 options.
2848 The flag is one of the following symbols appended to the window name:
2849 .Bl -column "Symbol" "Meaning" -offset indent
2850 .It Sy "Symbol" Ta Sy "Meaning"
2851 .It Li "*" Ta "Denotes the current window."
2852 .It Li "-" Ta "Marks the last window (previously selected)."
2853 .It Li "#" Ta "Window is monitored and activity has been detected."
2854 .It Li "!" Ta "A bell has occurred in the window."
2855 .It Li "+" Ta "Window is monitored for content and it has appeared."
2856 .It Li "~" Ta "The window has been silent for the monitor-silence interval."
2859 The # symbol relates to the
2860 .Ic monitor-activity
2861 and + to the
2862 .Ic monitor-content
2863 window options.
2864 The window name is printed in inverted colours if an alert (bell, activity or
2865 content) is present.
2867 The colour and attributes of the status line may be configured, the entire
2868 status line using the
2869 .Ic status-attr ,
2870 .Ic status-fg
2872 .Ic status-bg
2873 session options and individual windows using the
2874 .Ic window-status-attr ,
2875 .Ic window-status-fg
2877 .Ic window-status-bg
2878 window options.
2880 The status line is automatically refreshed at interval if it has changed, the
2881 interval may be controlled with the
2882 .Ic status-interval
2883 session option.
2885 Commands related to the status line are as follows:
2886 .Bl -tag -width Ds
2887 .It Xo Ic command-prompt
2888 .Op Fl I Ar inputs
2889 .Op Fl p Ar prompts
2890 .Op Fl t Ar target-client
2891 .Op Ar template
2893 Open the command prompt in a client.
2894 This may be used from inside
2896 to execute commands interactively.
2899 .Ar template
2900 is specified, it is used as the command.
2901 If present,
2902 .Fl I
2903 is a comma-separated list of the initial text for each prompt.
2905 .Fl p
2906 is given,
2907 .Ar prompts
2908 is a comma-separated list of prompts which are displayed in order; otherwise
2909 a single prompt is displayed, constructed from
2910 .Ar template
2911 if it is present, or
2912 .Ql \&:
2913 if not.
2915 Both
2916 .Ar inputs
2918 .Ar prompts
2919 may contain the special character sequences supported by the
2920 .Ic status-left
2921 option.
2923 Before the command is executed, the first occurrence of the string
2924 .Ql %%
2925 and all occurrences of
2926 .Ql %1
2927 are replaced by the response to the first prompt, the second
2928 .Ql %%
2929 and all
2930 .Ql %2
2931 are replaced with the response to the second prompt, and so on for further
2932 prompts.
2933 Up to nine prompt responses may be replaced
2935 .Ql %1
2937 .Ql %9
2938 .Pc .
2939 .It Xo Ic confirm-before
2940 .Op Fl p Ar prompt
2941 .Op Fl t Ar target-client
2942 .Ar command
2944 .D1 (alias: Ic confirm )
2945 Ask for confirmation before executing
2946 .Ar command .
2948 .Fl p
2949 is given,
2950 .Ar prompt
2951 is the prompt to display; otherwise a prompt is constructed from
2952 .Ar command .
2953 It may contain the special character sequences supported by the
2954 .Ic status-left
2955 option.
2957 This command works only from inside
2958 .Nm .
2959 .It Xo Ic display-message
2960 .Op Fl p
2961 .Op Fl c Ar target-client
2962 .Op Fl t Ar target-pane
2963 .Op Ar message
2965 .D1 (alias: Ic display )
2966 Display a message.
2968 .Fl p
2969 is given, the output is printed to stdout, otherwise it is displayed in the
2970 .Ar target-client
2971 status line.
2972 The format of
2973 .Ar message
2974 is as for
2975 .Ic status-left ,
2976 with the exception that #() are not handled; information is taken from
2977 .Ar target-pane
2979 .Fl t
2980 is given, otherwise the active pane for the session attached to
2981 .Ar target-client .
2983 .Sh BUFFERS
2985 maintains a stack of
2986 .Em paste buffers .
2987 Up to the value of the
2988 .Ic buffer-limit
2989 option are kept; when a new buffer is added, the buffer at the bottom of the
2990 stack is removed.
2991 Buffers may be added using
2992 .Ic copy-mode
2993 or the
2994 .Ic set-buffer
2995 command, and pasted into a window using the
2996 .Ic paste-buffer
2997 command.
2999 A configurable history buffer is also maintained for each window.
3000 By default, up to 2000 lines are kept; this can be altered with the
3001 .Ic history-limit
3002 option (see the
3003 .Ic set-option
3004 command above).
3006 The buffer commands are as follows:
3007 .Bl -tag -width Ds
3008 .It Xo
3009 .Ic choose-buffer
3010 .Op Fl t Ar target-window
3011 .Op Ar template
3013 Put a window into buffer choice mode, where a buffer may be chosen
3014 interactively from a list.
3015 After a buffer is selected,
3016 .Ql %%
3017 is replaced by the buffer index in
3018 .Ar template
3019 and the result executed as a command.
3021 .Ar template
3022 is not given, "paste-buffer -b '%%'" is used.
3023 This command works only from inside
3024 .Nm .
3025 .It Ic clear-history Op Fl t Ar target-pane
3026 .D1 (alias: Ic clearhist )
3027 Remove and free the history for the specified pane.
3028 .It Ic delete-buffer Op Fl b Ar buffer-index
3029 .D1 (alias: Ic deleteb )
3030 Delete the buffer at
3031 .Ar buffer-index ,
3032 or the top buffer if not specified.
3033 .It Ic list-buffers
3034 .D1 (alias: Ic lsb )
3035 List the global buffers.
3036 .It Xo Ic load-buffer
3037 .Op Fl b Ar buffer-index
3038 .Ar path
3040 .D1 (alias: Ic loadb )
3041 Load the contents of the specified paste buffer from
3042 .Ar path .
3043 .It Xo Ic paste-buffer
3044 .Op Fl dr
3045 .Op Fl b Ar buffer-index
3046 .Op Fl s Ar separator
3047 .Op Fl t Ar target-pane
3049 .D1 (alias: Ic pasteb )
3050 Insert the contents of a paste buffer into the specified pane.
3051 If not specified, paste into the current one.
3052 With
3053 .Fl d ,
3054 also delete the paste buffer from the stack.
3055 When output, any linefeed (LF) characters in the paste buffer are replaced with
3056 a separator, by default carriage return (CR).
3057 A custom separator may be specified using the
3058 .Fl s
3059 flag.
3061 .Fl r
3062 flag means to do no replacement (equivalent to a separator of LF).
3063 .It Xo Ic save-buffer
3064 .Op Fl a
3065 .Op Fl b Ar buffer-index
3066 .Ar path
3068 .D1 (alias: Ic saveb )
3069 Save the contents of the specified paste buffer to
3070 .Ar path .
3072 .Fl a
3073 option appends to rather than overwriting the file.
3074 .It Xo Ic set-buffer
3075 .Op Fl b Ar buffer-index
3076 .Ar data
3078 .D1 (alias: Ic setb )
3079 Set the contents of the specified buffer to
3080 .Ar data .
3081 .It Xo Ic show-buffer
3082 .Op Fl b Ar buffer-index
3084 .D1 (alias: Ic showb )
3085 Display the contents of the specified buffer.
3087 .Sh MISCELLANEOUS
3088 Miscellaneous commands are as follows:
3089 .Bl -tag -width Ds
3090 .It Ic clock-mode Op Fl t Ar target-pane
3091 Display a large clock.
3092 .It Ic if-shell Ar shell-command command Op Ar command
3093 .D1 (alias: Ic if )
3094 Execute the first
3095 .Ar command
3097 .Ar shell-command
3098 returns success or the second
3099 .Ar command
3100 otherwise.
3101 .It Ic lock-server
3102 .D1 (alias: Ic lock )
3103 Lock each client individually by running the command specified by the
3104 .Ic lock-command
3105 option.
3106 .It Ic run-shell Ar shell-command
3107 .D1 (alias: Ic run )
3108 Execute
3109 .Ar shell-command
3110 in the background without creating a window.
3111 After it finishes, any output to stdout is displayed in copy mode.
3112 If the command doesn't return success, the exit status is also displayed.
3113 .It Ic server-info
3114 .D1 (alias: Ic info )
3115 Show server information and terminal details.
3117 .Sh TERMINFO EXTENSIONS
3119 understands some extensions to
3120 .Xr terminfo 5 :
3121 .Bl -tag -width Ds
3122 .It Em Cc , Cr
3123 Set the cursor colour.
3124 The first takes a single string argument and is used to set the colour;
3125 the second takes no arguments and restores the default cursor colour.
3126 If set, a sequence such as this may be used
3127 to change the cursor colour from inside
3128 .Nm :
3129 .Bd -literal -offset indent
3130 $ printf '\e033]12;red\e033\e\e'
3132 .It Em Cs , Csr
3133 Change the cursor style.
3134 If set, a sequence such as this may be used
3135 to change the cursor to an underline:
3136 .Bd -literal -offset indent
3137 $ printf '\e033[4 q'
3141 .Em Csr
3142 is set, it will be used to reset the cursor style instead
3144 .Em Cs .
3145 .It Em \&Ms
3146 This sequence can be used by
3148 to store the current buffer in the host terminal's selection (clipboard).
3149 See the
3150 .Em set-clipboard
3151 option above and the
3152 .Xr xterm 1
3153 man page.
3155 .Sh FILES
3156 .Bl -tag -width "/etc/tmux.confXXX" -compact
3157 .It Pa ~/.tmux.conf
3158 Default
3160 configuration file.
3161 .It Pa /etc/tmux.conf
3162 System-wide configuration file.
3164 .Sh EXAMPLES
3165 To create a new
3167 session running
3168 .Xr vi 1 :
3170 .Dl $ tmux new-session vi
3172 Most commands have a shorter form, known as an alias.
3173 For new-session, this is
3174 .Ic new :
3176 .Dl $ tmux new vi
3178 Alternatively, the shortest unambiguous form of a command is accepted.
3179 If there are several options, they are listed:
3180 .Bd -literal -offset indent
3181 $ tmux n
3182 ambiguous command: n, could be: new-session, new-window, next-window
3185 Within an active session, a new window may be created by typing
3186 .Ql C-b c
3187 (Ctrl
3188 followed by the
3189 .Ql b
3191 followed by the
3192 .Ql c
3193 key).
3195 Windows may be navigated with:
3196 .Ql C-b 0
3197 (to select window 0),
3198 .Ql C-b 1
3199 (to select window 1), and so on;
3200 .Ql C-b n
3201 to select the next window; and
3202 .Ql C-b p
3203 to select the previous window.
3205 A session may be detached using
3206 .Ql C-b d
3207 (or by an external event such as
3208 .Xr ssh 1
3209 disconnection) and reattached with:
3211 .Dl $ tmux attach-session
3213 Typing
3214 .Ql C-b \&?
3215 lists the current key bindings in the current window; up and down may be used
3216 to navigate the list or
3217 .Ql q
3218 to exit from it.
3220 Commands to be run when the
3222 server is started may be placed in the
3223 .Pa ~/.tmux.conf
3224 configuration file.
3225 Common examples include:
3227 Changing the default prefix key:
3228 .Bd -literal -offset indent
3229 set-option -g prefix C-a
3230 unbind-key C-b
3231 bind-key C-a send-prefix
3234 Turning the status line off, or changing its colour:
3235 .Bd -literal -offset indent
3236 set-option -g status off
3237 set-option -g status-bg blue
3240 Setting other options, such as the default command,
3241 or locking after 30 minutes of inactivity:
3242 .Bd -literal -offset indent
3243 set-option -g default-command "exec /bin/ksh"
3244 set-option -g lock-after-time 1800
3247 Creating new key bindings:
3248 .Bd -literal -offset indent
3249 bind-key b set-option status
3250 bind-key / command-prompt "split-window 'exec man %%'"
3251 bind-key S command-prompt "new-window -n %1 'ssh %1'"
3253 .Sh SEE ALSO
3254 .Xr pty 4
3255 .Sh AUTHORS
3256 .An Nicholas Marriott Aq nicm@users.sourceforge.net