File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / tmux / tmux.1
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 14 12:22:44 2017 UTC (7 years ago) by misho
Branches: tmux, MAIN
CVS tags: v2_4p0, v2_4, HEAD
tmux 2.4

    1: .\" $OpenBSD$
    2: .\"
    3: .\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
    4: .\"
    5: .\" Permission to use, copy, modify, and distribute this software for any
    6: .\" purpose with or without fee is hereby granted, provided that the above
    7: .\" copyright notice and this permission notice appear in all copies.
    8: .\"
    9: .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
   10: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   11: .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
   12: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   13: .\" WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
   14: .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
   15: .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   16: .\"
   17: .Dd $Mdocdate: March 25 2013 $
   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 2CluvV
   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
   85: In
   86: .Nm ,
   87: a session is displayed on screen by a
   88: .Em client
   89: and all sessions are managed by a single
   90: .Em server .
   91: The server and each client are separate processes which communicate through a
   92: socket in
   93: .Pa /tmp .
   94: .Pp
   95: The options are as follows:
   96: .Bl -tag -width "XXXXXXXXXXXX"
   97: .It Fl 2
   98: Force
   99: .Nm
  100: to assume the terminal supports 256 colours.
  101: .It Fl C
  102: Start in control mode (see the
  103: .Sx CONTROL MODE
  104: section).
  105: Given twice
  106: .Xo ( Fl CC ) Xc
  107: disables echo.
  108: .It Fl c Ar shell-command
  109: Execute
  110: .Ar shell-command
  111: using the default shell.
  112: If necessary, the
  113: .Nm
  114: server will be started to retrieve the
  115: .Ic default-shell
  116: option.
  117: This option is for compatibility with
  118: .Xr sh 1
  119: when
  120: .Nm
  121: is used as a login shell.
  122: .It Fl f Ar file
  123: Specify an alternative configuration file.
  124: By default,
  125: .Nm
  126: loads the system configuration file from
  127: .Pa @SYSCONFDIR@/tmux.conf ,
  128: if present, then looks for a user configuration file at
  129: .Pa ~/.tmux.conf .
  130: .Pp
  131: The configuration file is a set of
  132: .Nm
  133: commands which are executed in sequence when the server is first started.
  134: .Nm
  135: loads configuration files once when the server process has started.
  136: The
  137: .Ic source-file
  138: command may be used to load a file later.
  139: .Pp
  140: .Nm
  141: shows any error messages from commands in configuration files in the first
  142: session created, and continues to process the rest of the configuration file.
  143: .It Fl L Ar socket-name
  144: .Nm
  145: stores the server socket in a directory under
  146: .Ev TMUX_TMPDIR
  147: or
  148: .Pa /tmp
  149: if it is unset.
  150: The default socket is named
  151: .Em default .
  152: This option allows a different socket name to be specified, allowing several
  153: independent
  154: .Nm
  155: servers to be run.
  156: Unlike
  157: .Fl S
  158: a full path is not necessary: the sockets are all created in the same
  159: directory.
  160: .Pp
  161: If the socket is accidentally removed, the
  162: .Dv SIGUSR1
  163: signal may be sent to the
  164: .Nm
  165: server process to recreate it (note that this will fail if any parent
  166: directories are missing).
  167: .It Fl l
  168: Behave as a login shell.
  169: This flag currently has no effect and is for compatibility with other shells
  170: when using tmux as a login shell.
  171: .It Fl S Ar socket-path
  172: Specify a full alternative path to the server socket.
  173: If
  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
  179: When starting,
  180: .Nm
  181: looks for the
  182: .Ev LC_ALL ,
  183: .Ev LC_CTYPE
  184: and
  185: .Ev LANG
  186: environment variables: if the first found contains
  187: .Ql UTF-8 ,
  188: then the terminal is assumed to support UTF-8.
  189: This is not always correct: the
  190: .Fl u
  191: flag explicitly informs
  192: .Nm
  193: that UTF-8 is supported.
  194: .Pp
  195: Note that
  196: .Nm
  197: itself always accepts UTF-8; this controls whether it will send UTF-8
  198: characters to the terminal it is running (if not, they are replaced by
  199: .Ql _ ) .
  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
  205: and
  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 Fl V
  211: Report the
  212: .Nm
  213: version.
  214: .It Ar command Op Ar flags
  215: This specifies one of a set of commands used to control
  216: .Nm ,
  217: as described in the following sections.
  218: If no commands are specified, the
  219: .Ic new-session
  220: command is assumed.
  221: .El
  222: .Sh KEY BINDINGS
  223: .Nm
  224: may be controlled from an attached client by using a key combination of a
  225: prefix key,
  226: .Ql C-b
  227: (Ctrl-b) by default, followed by a command key.
  228: .Pp
  229: The default command key bindings are:
  230: .Pp
  231: .Bl -tag -width "XXXXXXXXXX" -offset indent -compact
  232: .It C-b
  233: Send the prefix key (C-b) through to the application.
  234: .It C-o
  235: Rotate the panes in the current window forwards.
  236: .It C-z
  237: Suspend the
  238: .Nm
  239: client.
  240: .It !
  241: Break the current pane out of the window.
  242: .It \&"
  243: Split the current pane into two, top and bottom.
  244: .It #
  245: List all paste buffers.
  246: .It $
  247: Rename the current session.
  248: .It %
  249: Split the current pane into two, left and right.
  250: .It &
  251: Kill the current window.
  252: .It '
  253: Prompt for a window index to select.
  254: .It \&(
  255: Switch the attached client to the previous session.
  256: .It \&)
  257: Switch the attached client to the next session.
  258: .It ,
  259: Rename the current window.
  260: .It -
  261: Delete the most recently copied buffer of text.
  262: .It .
  263: Prompt for an index to move the current window.
  264: .It 0 to 9
  265: Select windows 0 to 9.
  266: .It :
  267: Enter the
  268: .Nm
  269: command prompt.
  270: .It ;
  271: Move to the previously active pane.
  272: .It =
  273: Choose which buffer to paste interactively from a list.
  274: .It \&?
  275: List all key bindings.
  276: .It D
  277: Choose a client to detach.
  278: .It L
  279: Switch the attached client back to the last session.
  280: .It \&[
  281: Enter copy mode to copy text or view the history.
  282: .It \&]
  283: Paste the most recently copied buffer of text.
  284: .It c
  285: Create a new window.
  286: .It d
  287: Detach the current client.
  288: .It f
  289: Prompt to search for text in open windows.
  290: .It i
  291: Display some information about the current window.
  292: .It l
  293: Move to the previously selected window.
  294: .It n
  295: Change to the next window.
  296: .It o
  297: Select the next pane in the current window.
  298: .It p
  299: Change to the previous window.
  300: .It q
  301: Briefly display pane indexes.
  302: .It r
  303: Force redraw of the attached client.
  304: .It m
  305: Mark the current pane (see
  306: .Ic select-pane
  307: .Fl m ) .
  308: .It M
  309: Clear the marked pane.
  310: .It s
  311: Select a new session for the attached client interactively.
  312: .It t
  313: Show the time.
  314: .It w
  315: Choose the current window interactively.
  316: .It x
  317: Kill the current pane.
  318: .It z
  319: Toggle zoom state of the current pane.
  320: .It {
  321: Swap the current pane with the previous pane.
  322: .It }
  323: Swap the current pane with the next pane.
  324: .It ~
  325: Show previous messages from
  326: .Nm ,
  327: if any.
  328: .It Page Up
  329: Enter copy mode and scroll one page up.
  330: .It Up, Down
  331: .It Left, Right
  332: Change to the pane above, below, to the left, or to the right of the current
  333: pane.
  334: .It M-1 to M-5
  335: Arrange panes in one of the five preset layouts: even-horizontal,
  336: even-vertical, main-horizontal, main-vertical, or tiled.
  337: .It Space
  338: Arrange the current window in the next preset layout.
  339: .It M-n
  340: Move to the next window with a bell or activity marker.
  341: .It M-o
  342: Rotate the panes in the current window backwards.
  343: .It M-p
  344: Move to the previous window with a bell or activity marker.
  345: .It C-Up, C-Down
  346: .It C-Left, C-Right
  347: Resize the current pane in steps of one cell.
  348: .It M-Up, M-Down
  349: .It M-Left, M-Right
  350: Resize the current pane in steps of five cells.
  351: .El
  352: .Pp
  353: Key bindings may be changed with the
  354: .Ic bind-key
  355: and
  356: .Ic unbind-key
  357: commands.
  358: .Sh COMMANDS
  359: This section contains a list of the commands supported by
  360: .Nm .
  361: Most commands accept the optional
  362: .Fl t
  363: (and sometimes
  364: .Fl s )
  365: argument with one of
  366: .Ar target-client ,
  367: .Ar target-session
  368: .Ar target-window ,
  369: or
  370: .Ar target-pane .
  371: These specify the client, session, window or pane which a command should affect.
  372: .Pp
  373: .Ar target-client
  374: should be the name of the client,
  375: typically the
  376: .Xr pty 4
  377: file to which the client is connected, for example either of
  378: .Pa /dev/ttyp1
  379: or
  380: .Pa ttyp1
  381: for the client attached to
  382: .Pa /dev/ttyp1 .
  383: If no client is specified,
  384: .Nm
  385: attempts to work out the client currently in use; if that fails, an error is
  386: reported.
  387: Clients may be listed with the
  388: .Ic list-clients
  389: command.
  390: .Pp
  391: .Ar target-session
  392: is tried as, in order:
  393: .Bl -enum -offset Ds
  394: .It
  395: A session ID prefixed with a $.
  396: .It
  397: An exact name of a session (as listed by the
  398: .Ic list-sessions
  399: command).
  400: .It
  401: The start of a session name, for example
  402: .Ql mysess
  403: would match a session named
  404: .Ql mysession .
  405: .It
  406: An
  407: .Xr fnmatch 3
  408: pattern which is matched against the session name.
  409: .El
  410: .Pp
  411: If the session name is prefixed with an
  412: .Ql = ,
  413: only an exact match is accepted (so
  414: .Ql =mysess
  415: will only match exactly
  416: .Ql mysess ,
  417: not
  418: .Ql mysession ) .
  419: .Pp
  420: If a single session is found, it is used as the target session; multiple matches
  421: produce an error.
  422: If a session is omitted, the current session is used if available; if no
  423: current session is available, the most recently used is chosen.
  424: .Pp
  425: .Ar target-window
  426: (or
  427: .Ar src-window
  428: or
  429: .Ar dst-window )
  430: specifies a window in the form
  431: .Em session Ns \&: Ns Em window .
  432: .Em session
  433: follows the same rules as for
  434: .Ar target-session ,
  435: and
  436: .Em window
  437: is looked for in order as:
  438: .Bl -enum -offset Ds
  439: .It
  440: A special token, listed below.
  441: .It
  442: A window index, for example
  443: .Ql mysession:1
  444: is window 1 in session
  445: .Ql mysession .
  446: .It
  447: A window ID, such as @1.
  448: .It
  449: An exact window name, such as
  450: .Ql mysession:mywindow .
  451: .It
  452: The start of a window name, such as
  453: .Ql mysession:mywin .
  454: .It
  455: As an
  456: .Xr fnmatch 3
  457: pattern matched against the window name.
  458: .El
  459: .Pp
  460: Like sessions, a
  461: .Ql =
  462: prefix will do an exact match only.
  463: An empty window name specifies the next unused index if appropriate (for
  464: example the
  465: .Ic new-window
  466: and
  467: .Ic link-window
  468: commands)
  469: otherwise the current window in
  470: .Em session
  471: is chosen.
  472: .Pp
  473: The following special tokens are available to indicate particular windows.
  474: Each has a single-character alternative form.
  475: .Bl -column "XXXXXXXXXX" "X"
  476: .It Sy "Token" Ta Sy "" Ta Sy "Meaning"
  477: .It Li "{start}" Ta "^" Ta "The lowest-numbered window"
  478: .It Li "{end}" Ta "$" Ta "The highest-numbered window"
  479: .It Li "{last}" Ta "!" Ta "The last (previously current) window"
  480: .It Li "{next}" Ta "+" Ta "The next window by number"
  481: .It Li "{previous}" Ta "-" Ta "The previous window by number"
  482: .El
  483: .Pp
  484: .Ar target-pane
  485: (or
  486: .Ar src-pane
  487: or
  488: .Ar dst-pane )
  489: may be a pane ID or takes a similar form to
  490: .Ar target-window
  491: but with the optional addition of a period followed by a pane index or pane ID,
  492: for example:
  493: .Ql mysession:mywindow.1 .
  494: If the pane index is omitted, the currently active pane in the specified
  495: window is used.
  496: The following special tokens are available for the pane index:
  497: .Bl -column "XXXXXXXXXXXXXX" "X"
  498: .It Sy "Token" Ta Sy "" Ta Sy "Meaning"
  499: .It Li "{last}" Ta "!" Ta "The last (previously active) pane"
  500: .It Li "{next}" Ta "+" Ta "The next pane by number"
  501: .It Li "{previous}" Ta "-" Ta "The previous pane by number"
  502: .It Li "{top}" Ta "" Ta "The top pane"
  503: .It Li "{bottom}" Ta "" Ta "The bottom pane"
  504: .It Li "{left}" Ta "" Ta "The leftmost pane"
  505: .It Li "{right}" Ta "" Ta "The rightmost pane"
  506: .It Li "{top-left}" Ta "" Ta "The top-left pane"
  507: .It Li "{top-right}" Ta "" Ta "The top-right pane"
  508: .It Li "{bottom-left}" Ta "" Ta "The bottom-left pane"
  509: .It Li "{bottom-right}" Ta "" Ta "The bottom-right pane"
  510: .It Li "{up-of}" Ta "" Ta "The pane above the active pane"
  511: .It Li "{down-of}" Ta "" Ta "The pane below the active pane"
  512: .It Li "{left-of}" Ta "" Ta "The pane to the left of the active pane"
  513: .It Li "{right-of}" Ta "" Ta "The pane to the right of the active pane"
  514: .El
  515: .Pp
  516: The tokens
  517: .Ql +
  518: and
  519: .Ql -
  520: may be followed by an offset, for example:
  521: .Bd -literal -offset indent
  522: select-window -t:+2
  523: .Ed
  524: .Pp
  525: In addition,
  526: .Em target-session ,
  527: .Em target-window
  528: or
  529: .Em target-pane
  530: may consist entirely of the token
  531: .Ql {mouse}
  532: (alternative form
  533: .Ql = )
  534: to specify the most recent mouse event
  535: (see the
  536: .Sx MOUSE SUPPORT
  537: section)
  538: or
  539: .Ql {marked}
  540: (alternative form
  541: .Ql ~ )
  542: to specify the marked pane (see
  543: .Ic select-pane
  544: .Fl m ) .
  545: .Pp
  546: Sessions, window and panes are each numbered with a unique ID; session IDs are
  547: prefixed with a
  548: .Ql $ ,
  549: windows with a
  550: .Ql @ ,
  551: and panes with a
  552: .Ql % .
  553: These are unique and are unchanged for the life of the session, window or pane
  554: in the
  555: .Nm
  556: server.
  557: The pane ID is passed to the child process of the pane in the
  558: .Ev TMUX_PANE
  559: environment variable.
  560: IDs may be displayed using the
  561: .Ql session_id ,
  562: .Ql window_id ,
  563: or
  564: .Ql pane_id
  565: formats (see the
  566: .Sx FORMATS
  567: section) and the
  568: .Ic display-message ,
  569: .Ic list-sessions ,
  570: .Ic list-windows
  571: or
  572: .Ic list-panes
  573: commands.
  574: .Pp
  575: .Ar shell-command
  576: arguments are
  577: .Xr sh 1
  578: commands.
  579: This may be a single argument passed to the shell, for example:
  580: .Bd -literal -offset indent
  581: new-window 'vi /etc/passwd'
  582: .Ed
  583: .Pp
  584: Will run:
  585: .Bd -literal -offset indent
  586: /bin/sh -c 'vi /etc/passwd'
  587: .Ed
  588: .Pp
  589: Additionally, the
  590: .Ic new-window ,
  591: .Ic new-session ,
  592: .Ic split-window ,
  593: .Ic respawn-window
  594: and
  595: .Ic respawn-pane
  596: commands allow
  597: .Ar shell-command
  598: to be given as multiple arguments and executed directly (without
  599: .Ql sh -c ) .
  600: This can avoid issues with shell quoting.
  601: For example:
  602: .Bd -literal -offset indent
  603: $ tmux new-window vi /etc/passwd
  604: .Ed
  605: .Pp
  606: Will run
  607: .Xr vi 1
  608: directly without invoking the shell.
  609: .Pp
  610: .Ar command
  611: .Op Ar arguments
  612: refers to a
  613: .Nm
  614: command, passed with the command and arguments separately, for example:
  615: .Bd -literal -offset indent
  616: bind-key F1 set-window-option force-width 81
  617: .Ed
  618: .Pp
  619: Or if using
  620: .Xr sh 1 :
  621: .Bd -literal -offset indent
  622: $ tmux bind-key F1 set-window-option force-width 81
  623: .Ed
  624: .Pp
  625: Multiple commands may be specified together as part of a
  626: .Em command sequence .
  627: Each command should be separated by spaces and a semicolon;
  628: commands are executed sequentially from left to right and
  629: lines ending with a backslash continue on to the next line,
  630: except when escaped by another backslash.
  631: A literal semicolon may be included by escaping it with a backslash (for
  632: example, when specifying a command sequence to
  633: .Ic bind-key ) .
  634: .Pp
  635: Example
  636: .Nm
  637: commands include:
  638: .Bd -literal -offset indent
  639: refresh-client -t/dev/ttyp2
  640: 
  641: rename-session -tfirst newname
  642: 
  643: set-window-option -t:0 monitor-activity on
  644: 
  645: new-window ; split-window -d
  646: 
  647: bind-key R source-file ~/.tmux.conf \e; \e
  648: 	display-message "source-file done"
  649: .Ed
  650: .Pp
  651: Or from
  652: .Xr sh 1 :
  653: .Bd -literal -offset indent
  654: $ tmux kill-window -t :1
  655: 
  656: $ tmux new-window \e; split-window -d
  657: 
  658: $ tmux new-session -d 'vi /etc/passwd' \e; split-window -d \e; attach
  659: .Ed
  660: .Sh CLIENTS AND SESSIONS
  661: The
  662: .Nm
  663: server manages clients, sessions, windows and panes.
  664: Clients are attached to sessions to interact with them, either
  665: when they are created with the
  666: .Ic new-session
  667: command, or later with the
  668: .Ic attach-session
  669: command.
  670: Each session has one or more windows
  671: .Em linked
  672: into it.
  673: Windows may be linked to multiple sessions and are made up of one or
  674: more panes,
  675: each of which contains a pseudo terminal.
  676: Commands for creating, linking and otherwise manipulating windows
  677: are covered
  678: in the
  679: .Sx WINDOWS AND PANES
  680: section.
  681: .Pp
  682: The following commands are available to manage clients and sessions:
  683: .Bl -tag -width Ds
  684: .It Xo Ic attach-session
  685: .Op Fl dEr
  686: .Op Fl c Ar working-directory
  687: .Op Fl t Ar target-session
  688: .Xc
  689: .D1 (alias: Ic attach )
  690: If run from outside
  691: .Nm ,
  692: create a new client in the current terminal and attach it to
  693: .Ar target-session .
  694: If used from inside, switch the current client.
  695: If
  696: .Fl d
  697: is specified, any other clients attached to the session are detached.
  698: .Fl r
  699: signifies the client is read-only (only keys bound to the
  700: .Ic detach-client
  701: or
  702: .Ic switch-client
  703: commands have any effect)
  704: .Pp
  705: If no server is started,
  706: .Ic attach-session
  707: will attempt to start it; this will fail unless sessions are created in the
  708: configuration file.
  709: .Pp
  710: The
  711: .Ar target-session
  712: rules for
  713: .Ic attach-session
  714: are slightly adjusted: if
  715: .Nm
  716: needs to select the most recently used session, it will prefer the most
  717: recently used
  718: .Em unattached
  719: session.
  720: .Pp
  721: .Fl c
  722: will set the session working directory (used for new windows) to
  723: .Ar working-directory .
  724: .Pp
  725: If
  726: .Fl E
  727: is used, the
  728: .Ic update-environment
  729: option will not be applied.
  730: .It Xo Ic detach-client
  731: .Op Fl aP
  732: .Op Fl E Ar shell-command
  733: .Op Fl s Ar target-session
  734: .Op Fl t Ar target-client
  735: .Xc
  736: .D1 (alias: Ic detach )
  737: Detach the current client if bound to a key, the client specified with
  738: .Fl t ,
  739: or all clients currently attached to the session specified by
  740: .Fl s .
  741: The
  742: .Fl a
  743: option kills all but the client given with
  744: .Fl t .
  745: If
  746: .Fl P
  747: is given, send SIGHUP to the parent process of the client, typically causing it
  748: to exit.
  749: With
  750: .Fl E ,
  751: run
  752: .Ar shell-command
  753: to replace the client.
  754: .It Ic has-session Op Fl t Ar target-session
  755: .D1 (alias: Ic has )
  756: Report an error and exit with 1 if the specified session does not exist.
  757: If it does exist, exit with 0.
  758: .It Ic kill-server
  759: Kill the
  760: .Nm
  761: server and clients and destroy all sessions.
  762: .It Xo Ic kill-session
  763: .Op Fl aC
  764: .Op Fl t Ar target-session
  765: .Xc
  766: Destroy the given session, closing any windows linked to it and no other
  767: sessions, and detaching all clients attached to it.
  768: If
  769: .Fl a
  770: is given, all sessions but the specified one is killed.
  771: The
  772: .Fl C
  773: flag clears alerts (bell, activity, or silence) in all windows linked to the
  774: session.
  775: .It Xo Ic list-clients
  776: .Op Fl F Ar format
  777: .Op Fl t Ar target-session
  778: .Xc
  779: .D1 (alias: Ic lsc )
  780: List all clients attached to the server.
  781: For the meaning of the
  782: .Fl F
  783: flag, see the
  784: .Sx FORMATS
  785: section.
  786: If
  787: .Ar target-session
  788: is specified, list only clients connected to that session.
  789: .It Xo Ic list-commands
  790: .Op Fl F Ar format
  791: .Xc
  792: .D1 (alias: Ic lscm )
  793: List the syntax of all commands supported by
  794: .Nm .
  795: .It Ic list-sessions Op Fl F Ar format
  796: .D1 (alias: Ic ls )
  797: List all sessions managed by the server.
  798: For the meaning of the
  799: .Fl F
  800: flag, see the
  801: .Sx FORMATS
  802: section.
  803: .It Ic lock-client Op Fl t Ar target-client
  804: .D1 (alias: Ic lockc )
  805: Lock
  806: .Ar target-client ,
  807: see the
  808: .Ic lock-server
  809: command.
  810: .It Ic lock-session Op Fl t Ar target-session
  811: .D1 (alias: Ic locks )
  812: Lock all clients attached to
  813: .Ar target-session .
  814: .It Xo Ic new-session
  815: .Op Fl AdDEP
  816: .Op Fl c Ar start-directory
  817: .Op Fl F Ar format
  818: .Op Fl n Ar window-name
  819: .Op Fl s Ar session-name
  820: .Op Fl t Ar group-name
  821: .Op Fl x Ar width
  822: .Op Fl y Ar height
  823: .Op Ar shell-command
  824: .Xc
  825: .D1 (alias: Ic new )
  826: Create a new session with name
  827: .Ar session-name .
  828: .Pp
  829: The new session is attached to the current terminal unless
  830: .Fl d
  831: is given.
  832: .Ar window-name
  833: and
  834: .Ar shell-command
  835: are the name of and shell command to execute in the initial window.
  836: If
  837: .Fl d
  838: is used,
  839: .Fl x
  840: and
  841: .Fl y
  842: specify the size of the initial window.
  843: .Pp
  844: If run from a terminal, any
  845: .Xr termios 4
  846: special characters are saved and used for new windows in the new session.
  847: .Pp
  848: The
  849: .Fl A
  850: flag makes
  851: .Ic new-session
  852: behave like
  853: .Ic attach-session
  854: if
  855: .Ar session-name
  856: already exists; in this case,
  857: .Fl D
  858: behaves like
  859: .Fl d
  860: to
  861: .Ic attach-session .
  862: .Pp
  863: If
  864: .Fl t
  865: is given, it specifies a
  866: .Ic session group .
  867: Sessions in the same group share the same set of windows - new windows are
  868: linked to all sessions in the group and any windows closed removed from all
  869: sessions.
  870: The current and previous window and any session options remain independent and
  871: any session in a group may be killed without affecting the others.
  872: The
  873: .Ar group-name
  874: argument may be:
  875: .Bl -enum -width Ds
  876: .It
  877: the name of an existing group, in which case the new session is added to that
  878: group;
  879: .It
  880: the name of an existing session - the new session is added to the same group
  881: as that session, creating a new group if necessary;
  882: .It
  883: the name for a new group containing only the new session.
  884: .El
  885: .Pp
  886: .Fl n
  887: and
  888: .Ar shell-command
  889: are invalid if
  890: .Fl t
  891: is used.
  892: .Pp
  893: The
  894: .Fl P
  895: option prints information about the new session after it has been created.
  896: By default, it uses the format
  897: .Ql #{session_name}:
  898: but a different format may be specified with
  899: .Fl F .
  900: .Pp
  901: If
  902: .Fl E
  903: is used, the
  904: .Ic update-environment
  905: option will not be applied.
  906: .It Xo Ic refresh-client
  907: .Op Fl C Ar width,height
  908: .Op Fl S
  909: .Op Fl t Ar target-client
  910: .Xc
  911: .D1 (alias: Ic refresh )
  912: Refresh the current client if bound to a key, or a single client if one is given
  913: with
  914: .Fl t .
  915: If
  916: .Fl S
  917: is specified, only update the client's status line.
  918: .Pp
  919: .Fl C
  920: sets the width and height of a control client.
  921: .It Xo Ic rename-session
  922: .Op Fl t Ar target-session
  923: .Ar new-name
  924: .Xc
  925: .D1 (alias: Ic rename )
  926: Rename the session to
  927: .Ar new-name .
  928: .It Xo Ic show-messages
  929: .Op Fl JT
  930: .Op Fl t Ar target-client
  931: .Xc
  932: .D1 (alias: Ic showmsgs )
  933: Show client messages or server information.
  934: Any messages displayed on the status line are saved in a per-client message
  935: log, up to a maximum of the limit set by the
  936: .Ar message-limit
  937: server option.
  938: With
  939: .Fl t ,
  940: display the log for
  941: .Ar target-client .
  942: .Fl J
  943: and
  944: .Fl T
  945: show debugging information about jobs and terminals.
  946: .It Xo Ic source-file
  947: .Op Fl q
  948: .Ar path
  949: .Xc
  950: .D1 (alias: Ic source )
  951: Execute commands from
  952: .Ar path
  953: (which may be a
  954: .Xr glob 3
  955: pattern).
  956: If
  957: .Fl q
  958: is given, no error will be returned if
  959: .Ar path
  960: does not exist.
  961: .Pp
  962: Within a configuration file, commands may be made conditional by surrounding
  963: them with
  964: .Em %if
  965: and
  966: .Em %endif
  967: lines.
  968: The argument to
  969: .Em %if
  970: is expanded as a format and if it evaluates to false
  971: (zero or empty), subsequent lines are ignored until
  972: .Em %endif .
  973: For example:
  974: .Bd -literal -offset indent
  975: %if #{==:#{host},myhost}
  976: set -g status-style bg=red
  977: %endif
  978: .Ed
  979: .Pp
  980: Will change the status line to red if running on
  981: .Ql myhost .
  982: .Em %if
  983: may not be nested.
  984: .It Ic start-server
  985: .D1 (alias: Ic start )
  986: Start the
  987: .Nm
  988: server, if not already running, without creating any sessions.
  989: .It Xo Ic suspend-client
  990: .Op Fl t Ar target-client
  991: .Xc
  992: .D1 (alias: Ic suspendc )
  993: Suspend a client by sending
  994: .Dv SIGTSTP
  995: (tty stop).
  996: .It Xo Ic switch-client
  997: .Op Fl Elnpr
  998: .Op Fl c Ar target-client
  999: .Op Fl t Ar target-session
 1000: .Op Fl T Ar key-table
 1001: .Xc
 1002: .D1 (alias: Ic switchc )
 1003: Switch the current session for client
 1004: .Ar target-client
 1005: to
 1006: .Ar target-session .
 1007: If
 1008: .Fl l ,
 1009: .Fl n
 1010: or
 1011: .Fl p
 1012: is used, the client is moved to the last, next or previous session
 1013: respectively.
 1014: .Fl r
 1015: toggles whether a client is read-only (see the
 1016: .Ic attach-session
 1017: command).
 1018: .Pp
 1019: If
 1020: .Fl E
 1021: is used,
 1022: .Ic update-environment
 1023: option will not be applied.
 1024: .Pp
 1025: .Fl T
 1026: sets the client's key table; the next key from the client will be interpreted from
 1027: .Ar key-table .
 1028: This may be used to configure multiple prefix keys, or to bind commands to
 1029: sequences of keys.
 1030: For example, to make typing
 1031: .Ql abc
 1032: run the
 1033: .Ic list-keys
 1034: command:
 1035: .Bd -literal -offset indent
 1036: bind-key -Ttable2 c list-keys
 1037: bind-key -Ttable1 b switch-client -Ttable2
 1038: bind-key -Troot   a switch-client -Ttable1
 1039: .Ed
 1040: .El
 1041: .Sh WINDOWS AND PANES
 1042: A
 1043: .Nm
 1044: window may be in one of two modes.
 1045: The default permits direct access to the terminal attached to the window.
 1046: The other is copy mode, which permits a section of a window or its
 1047: history to be copied to a
 1048: .Em paste buffer
 1049: for later insertion into another window.
 1050: This mode is entered with the
 1051: .Ic copy-mode
 1052: command, bound to
 1053: .Ql \&[
 1054: by default.
 1055: It is also entered when a command that produces output, such as
 1056: .Ic list-keys ,
 1057: is executed from a key binding.
 1058: .Pp
 1059: Commands are sent to copy mode using the
 1060: .Fl X
 1061: flag to the
 1062: .Ic send-keys
 1063: command.
 1064: When a key is pressed, copy mode automatically uses one of two key tables,
 1065: depending on the
 1066: .Ic mode-keys
 1067: option:
 1068: .Ic copy-mode
 1069: for emacs, or
 1070: .Ic copy-mode-vi
 1071: for vi.
 1072: Key tables may be viewed with the
 1073: .Ic list-keys
 1074: command.
 1075: .Pp
 1076: The following commands are supported in copy mode:
 1077: .Bl -column "CommandXXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent
 1078: .It Sy "Command" Ta Sy "vi" Ta Sy "emacs"
 1079: .It Li "append-selection" Ta "" Ta ""
 1080: .It Li "append-selection-and-cancel" Ta "A" Ta ""
 1081: .It Li "back-to-indentation" Ta "^" Ta "M-m"
 1082: .It Li "begin-selection" Ta "Space" Ta "C-Space"
 1083: .It Li "bottom-line" Ta "L" Ta ""
 1084: .It Li "cancel" Ta "q" Ta "Escape"
 1085: .It Li "clear-selection" Ta "Escape" Ta "C-g"
 1086: .It Li "copy-end-of-line" Ta "D" Ta "C-k"
 1087: .It Li "copy-line" Ta "" Ta ""
 1088: .It Li "copy-pipe <command>" Ta "" Ta ""
 1089: .It Li "copy-pipe-and-cancel <command>" Ta "" Ta ""
 1090: .It Li "copy-selection" Ta "" Ta ""
 1091: .It Li "copy-selection-and-cancel" Ta "Enter" Ta "M-w"
 1092: .It Li "cursor-down" Ta "j" Ta "Down"
 1093: .It Li "cursor-left" Ta "h" Ta "Left"
 1094: .It Li "cursor-right" Ta "l" Ta "Right"
 1095: .It Li "cursor-up" Ta "k" Ta "Up"
 1096: .It Li "end-of-line" Ta "$" Ta "C-e"
 1097: .It Li "goto-line <line>" Ta ":" Ta "g"
 1098: .It Li "halfpage-down" Ta "C-d" Ta "M-Down"
 1099: .It Li "halfpage-up" Ta "C-u" Ta "M-Up"
 1100: .It Li "history-bottom" Ta "G" Ta "M-<"
 1101: .It Li "history-top" Ta "g" Ta "M->"
 1102: .It Li "jump-again" Ta ";" Ta ";"
 1103: .It Li "jump-backward <to>" Ta "F" Ta "F"
 1104: .It Li "jump-forward <to>" Ta "f" Ta "f"
 1105: .It Li "jump-reverse" Ta "," Ta ","
 1106: .It Li "jump-to-backward <to>" Ta "T" Ta ""
 1107: .It Li "jump-to-forward <to>" Ta "t" Ta ""
 1108: .It Li "middle-line" Ta "M" Ta "M-r"
 1109: .It Li "next-paragraph" Ta "}" Ta "M-}"
 1110: .It Li "next-space" Ta "W" Ta ""
 1111: .It Li "next-space-end" Ta "E" Ta ""
 1112: .It Li "next-word" Ta "w" Ta ""
 1113: .It Li "next-word-end" Ta "e" Ta "M-f"
 1114: .It Li "other-end" Ta "o" Ta ""
 1115: .It Li "page-down" Ta "C-f" Ta "PageDown"
 1116: .It Li "page-up" Ta "C-b" Ta "PageUp"
 1117: .It Li "previous-paragraph" Ta "{" Ta "M-{"
 1118: .It Li "previous-space" Ta "B" Ta ""
 1119: .It Li "previous-word" Ta "b" Ta "M-b"
 1120: .It Li "rectangle-toggle" Ta "v" Ta "R"
 1121: .It Li "scroll-down" Ta "C-e" Ta "C-Down"
 1122: .It Li "scroll-up" Ta "C-y" Ta "C-Up"
 1123: .It Li "search-again" Ta "n" Ta "n"
 1124: .It Li "search-backward <for>" Ta "?" Ta ""
 1125: .It Li "search-forward <for>" Ta "/" Ta ""
 1126: .It Li "search-backward-incremental <for>" Ta "" Ta "C-r"
 1127: .It Li "search-forward-incremental <for>" Ta "" Ta "C-s"
 1128: .It Li "search-reverse" Ta "N" Ta "N"
 1129: .It Li "select-line" Ta "V" Ta ""
 1130: .It Li "start-of-line" Ta "0" Ta "C-a"
 1131: .It Li "stop-selection" Ta "" Ta ""
 1132: .It Li "top-line" Ta "H" Ta "M-R"
 1133: .El
 1134: .Pp
 1135: The next and previous word keys use space and the
 1136: .Ql - ,
 1137: .Ql _
 1138: and
 1139: .Ql @
 1140: characters as word delimiters by default, but this can be adjusted by
 1141: setting the
 1142: .Em word-separators
 1143: session option.
 1144: Next word moves to the start of the next word, next word end to the end of the
 1145: next word and previous word to the start of the previous word.
 1146: The three next and previous space keys work similarly but use a space alone as
 1147: the word separator.
 1148: .Pp
 1149: The jump commands enable quick movement within a line.
 1150: For instance, typing
 1151: .Ql f
 1152: followed by
 1153: .Ql /
 1154: will move the cursor to the next
 1155: .Ql /
 1156: character on the current line.
 1157: A
 1158: .Ql \&;
 1159: will then jump to the next occurrence.
 1160: .Pp
 1161: Commands in copy mode may be prefaced by an optional repeat count.
 1162: With vi key bindings, a prefix is entered using the number keys; with
 1163: emacs, the Alt (meta) key and a number begins prefix entry.
 1164: .Pp
 1165: The synopsis for the
 1166: .Ic copy-mode
 1167: command is:
 1168: .Bl -tag -width Ds
 1169: .It Xo Ic copy-mode
 1170: .Op Fl Meu
 1171: .Op Fl t Ar target-pane
 1172: .Xc
 1173: Enter copy mode.
 1174: The
 1175: .Fl u
 1176: option scrolls one page up.
 1177: .Fl M
 1178: begins a mouse drag (only valid if bound to a mouse key binding, see
 1179: .Sx MOUSE SUPPORT ) .
 1180: .Fl e
 1181: specifies that scrolling to the bottom of the history (to the visible screen)
 1182: should exit copy mode.
 1183: While in copy mode, pressing a key other than those used for scrolling will
 1184: disable this behaviour.
 1185: This is intended to allow fast scrolling through a pane's history, for
 1186: example with:
 1187: .Bd -literal -offset indent
 1188: bind PageUp copy-mode -eu
 1189: .Ed
 1190: .El
 1191: .Pp
 1192: Each window displayed by
 1193: .Nm
 1194: may be split into one or more
 1195: .Em panes ;
 1196: each pane takes up a certain area of the display and is a separate terminal.
 1197: A window may be split into panes using the
 1198: .Ic split-window
 1199: command.
 1200: Windows may be split horizontally (with the
 1201: .Fl h
 1202: flag) or vertically.
 1203: Panes may be resized with the
 1204: .Ic resize-pane
 1205: command (bound to
 1206: .Ql C-Up ,
 1207: .Ql C-Down
 1208: .Ql C-Left
 1209: and
 1210: .Ql C-Right
 1211: by default), the current pane may be changed with the
 1212: .Ic select-pane
 1213: command and the
 1214: .Ic rotate-window
 1215: and
 1216: .Ic swap-pane
 1217: commands may be used to swap panes without changing their position.
 1218: Panes are numbered beginning from zero in the order they are created.
 1219: .Pp
 1220: A number of preset
 1221: .Em layouts
 1222: are available.
 1223: These may be selected with the
 1224: .Ic select-layout
 1225: command or cycled with
 1226: .Ic next-layout
 1227: (bound to
 1228: .Ql Space
 1229: by default); once a layout is chosen, panes within it may be moved and resized
 1230: as normal.
 1231: .Pp
 1232: The following layouts are supported:
 1233: .Bl -tag -width Ds
 1234: .It Ic even-horizontal
 1235: Panes are spread out evenly from left to right across the window.
 1236: .It Ic even-vertical
 1237: Panes are spread evenly from top to bottom.
 1238: .It Ic main-horizontal
 1239: A large (main) pane is shown at the top of the window and the remaining panes
 1240: are spread from left to right in the leftover space at the bottom.
 1241: Use the
 1242: .Em main-pane-height
 1243: window option to specify the height of the top pane.
 1244: .It Ic main-vertical
 1245: Similar to
 1246: .Ic main-horizontal
 1247: but the large pane is placed on the left and the others spread from top to
 1248: bottom along the right.
 1249: See the
 1250: .Em main-pane-width
 1251: window option.
 1252: .It Ic tiled
 1253: Panes are spread out as evenly as possible over the window in both rows and
 1254: columns.
 1255: .El
 1256: .Pp
 1257: In addition,
 1258: .Ic select-layout
 1259: may be used to apply a previously used layout - the
 1260: .Ic list-windows
 1261: command displays the layout of each window in a form suitable for use with
 1262: .Ic select-layout .
 1263: For example:
 1264: .Bd -literal -offset indent
 1265: $ tmux list-windows
 1266: 0: ksh [159x48]
 1267:     layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0}
 1268: $ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0}
 1269: .Ed
 1270: .Pp
 1271: .Nm
 1272: automatically adjusts the size of the layout for the current window size.
 1273: Note that a layout cannot be applied to a window with more panes than that
 1274: from which the layout was originally defined.
 1275: .Pp
 1276: Commands related to windows and panes are as follows:
 1277: .Bl -tag -width Ds
 1278: .It Xo Ic break-pane
 1279: .Op Fl dP
 1280: .Op Fl F Ar format
 1281: .Op Fl n Ar window-name
 1282: .Op Fl s Ar src-pane
 1283: .Op Fl t Ar dst-window
 1284: .Xc
 1285: .D1 (alias: Ic breakp )
 1286: Break
 1287: .Ar src-pane
 1288: off from its containing window to make it the only pane in
 1289: .Ar dst-window .
 1290: If
 1291: .Fl d
 1292: is given, the new window does not become the current window.
 1293: The
 1294: .Fl P
 1295: option prints information about the new window after it has been created.
 1296: By default, it uses the format
 1297: .Ql #{session_name}:#{window_index}
 1298: but a different format may be specified with
 1299: .Fl F .
 1300: .It Xo Ic capture-pane
 1301: .Op Fl aepPqCJ
 1302: .Op Fl b Ar buffer-name
 1303: .Op Fl E Ar end-line
 1304: .Op Fl S Ar start-line
 1305: .Op Fl t Ar target-pane
 1306: .Xc
 1307: .D1 (alias: Ic capturep )
 1308: Capture the contents of a pane.
 1309: If
 1310: .Fl p
 1311: is given, the output goes to stdout, otherwise to the buffer specified with
 1312: .Fl b
 1313: or a new buffer if omitted.
 1314: If
 1315: .Fl a
 1316: is given, the alternate screen is used, and the history is not accessible.
 1317: If no alternate screen exists, an error will be returned unless
 1318: .Fl q
 1319: is given.
 1320: If
 1321: .Fl e
 1322: is given, the output includes escape sequences for text and background
 1323: attributes.
 1324: .Fl C
 1325: also escapes non-printable characters as octal \exxx.
 1326: .Fl J
 1327: joins wrapped lines and preserves trailing spaces at each line's end.
 1328: .Fl P
 1329: captures only any output that the pane has received that is the beginning of an
 1330: as-yet incomplete escape sequence.
 1331: .Pp
 1332: .Fl S
 1333: and
 1334: .Fl E
 1335: specify the starting and ending line numbers, zero is the first line of the
 1336: visible pane and negative numbers are lines in the history.
 1337: .Ql -
 1338: to
 1339: .Fl S
 1340: is the start of the history and to
 1341: .Fl E
 1342: the end of the visible pane.
 1343: The default is to capture only the visible contents of the pane.
 1344: .It Xo
 1345: .Ic choose-client
 1346: .Op Fl F Ar format
 1347: .Op Fl t Ar target-window
 1348: .Op Ar template
 1349: .Xc
 1350: Put a window into client choice mode, allowing a client to be selected
 1351: interactively from a list.
 1352: After a client is chosen,
 1353: .Ql %%
 1354: is replaced by the client
 1355: .Xr pty 4
 1356: path in
 1357: .Ar template
 1358: and the result executed as a command.
 1359: If
 1360: .Ar template
 1361: is not given, "detach-client -t '%%'" is used.
 1362: For the meaning of the
 1363: .Fl F
 1364: flag, see the
 1365: .Sx FORMATS
 1366: section.
 1367: This command works only if at least one client is attached.
 1368: .It Xo
 1369: .Ic choose-session
 1370: .Op Fl F Ar format
 1371: .Op Fl t Ar target-window
 1372: .Op Ar template
 1373: .Xc
 1374: Put a window into session choice mode, where a session may be selected
 1375: interactively from a list.
 1376: When one is chosen,
 1377: .Ql %%
 1378: is replaced by the session name in
 1379: .Ar template
 1380: and the result executed as a command.
 1381: If
 1382: .Ar template
 1383: is not given, "switch-client -t '%%'" is used.
 1384: For the meaning of the
 1385: .Fl F
 1386: flag, see the
 1387: .Sx FORMATS
 1388: section.
 1389: This command works only if at least one client is attached.
 1390: .It Xo
 1391: .Ic choose-tree
 1392: .Op Fl suw
 1393: .Op Fl b Ar session-template
 1394: .Op Fl c Ar window-template
 1395: .Op Fl S Ar format
 1396: .Op Fl W Ar format
 1397: .Op Fl t Ar target-window
 1398: .Xc
 1399: Put a window into tree choice mode, where either sessions or windows may be
 1400: selected interactively from a list.
 1401: By default, windows belonging to a session are indented to show their
 1402: relationship to a session.
 1403: .Pp
 1404: Note that the
 1405: .Ic choose-window
 1406: and
 1407: .Ic choose-session
 1408: commands are wrappers around
 1409: .Ic choose-tree .
 1410: .Pp
 1411: If
 1412: .Fl s
 1413: is given, will show sessions.
 1414: If
 1415: .Fl w
 1416: is given, will show windows.
 1417: .Pp
 1418: By default, the tree is collapsed and sessions must be expanded to windows
 1419: with the right arrow key.
 1420: The
 1421: .Fl u
 1422: option will start with all sessions expanded instead.
 1423: .Pp
 1424: If
 1425: .Fl b
 1426: is given, will override the default session command.
 1427: Note that
 1428: .Ql %%
 1429: can be used and will be replaced with the session name.
 1430: The default option if not specified is "switch-client -t '%%'".
 1431: If
 1432: .Fl c
 1433: is given, will override the default window command.
 1434: Like
 1435: .Fl b ,
 1436: .Ql %%
 1437: can be used and will be replaced with the session name and window index.
 1438: When a window is chosen from the list, the session command is run before the
 1439: window command.
 1440: .Pp
 1441: .Fl S
 1442: uses
 1443: .Ar format
 1444: instead of the default session
 1445: format and
 1446: .Fl W
 1447: instead of the default window format.
 1448: For the meaning of
 1449: .Ar format ,
 1450: see the
 1451: .Sx FORMATS
 1452: section.
 1453: .Pp
 1454: This command works only if at least one client is attached.
 1455: .It Xo
 1456: .Ic choose-window
 1457: .Op Fl F Ar format
 1458: .Op Fl t Ar target-window
 1459: .Op Ar template
 1460: .Xc
 1461: Put a window into window choice mode, where a window may be chosen
 1462: interactively from a list.
 1463: After a window is selected,
 1464: .Ql %%
 1465: is replaced by the session name and window index in
 1466: .Ar template
 1467: and the result executed as a command.
 1468: If
 1469: .Ar template
 1470: is not given, "select-window -t '%%'" is used.
 1471: For the meaning of the
 1472: .Fl F
 1473: flag, see the
 1474: .Sx FORMATS
 1475: section.
 1476: This command works only if at least one client is attached.
 1477: .It Xo
 1478: .Ic display-panes
 1479: .Op Fl t Ar target-client
 1480: .Op Ar template
 1481: .Xc
 1482: .D1 (alias: Ic displayp )
 1483: Display a visible indicator of each pane shown by
 1484: .Ar target-client .
 1485: See the
 1486: .Ic display-panes-time ,
 1487: .Ic display-panes-colour ,
 1488: and
 1489: .Ic display-panes-active-colour
 1490: session options.
 1491: While the indicator is on screen, a pane may be chosen with the
 1492: .Ql 0
 1493: to
 1494: .Ql 9
 1495: keys, which will cause
 1496: .Ar template
 1497: to be executed as a command with
 1498: .Ql %%
 1499: substituted by the pane ID.
 1500: The default
 1501: .Ar template
 1502: is "select-pane -t '%%'".
 1503: .It Xo Ic find-window
 1504: .Op Fl CNT
 1505: .Op Fl F Ar format
 1506: .Op Fl t Ar target-window
 1507: .Ar match-string
 1508: .Xc
 1509: .D1 (alias: Ic findw )
 1510: Search for the
 1511: .Xr fnmatch 3
 1512: pattern
 1513: .Ar match-string
 1514: in window names, titles, and visible content (but not history).
 1515: The flags control matching behavior:
 1516: .Fl C
 1517: matches only visible window contents,
 1518: .Fl N
 1519: matches only the window name and
 1520: .Fl T
 1521: matches only the window title.
 1522: The default is
 1523: .Fl CNT .
 1524: If only one window is matched, it'll be automatically selected,
 1525: otherwise a choice list is shown.
 1526: For the meaning of the
 1527: .Fl F
 1528: flag, see the
 1529: .Sx FORMATS
 1530: section.
 1531: This command works only if at least one client is attached.
 1532: .It Xo Ic join-pane
 1533: .Op Fl bdhv
 1534: .Oo Fl l
 1535: .Ar size |
 1536: .Fl p Ar percentage Oc
 1537: .Op Fl s Ar src-pane
 1538: .Op Fl t Ar dst-pane
 1539: .Xc
 1540: .D1 (alias: Ic joinp )
 1541: Like
 1542: .Ic split-window ,
 1543: but instead of splitting
 1544: .Ar dst-pane
 1545: and creating a new pane, split it and move
 1546: .Ar src-pane
 1547: into the space.
 1548: This can be used to reverse
 1549: .Ic break-pane .
 1550: The
 1551: .Fl b
 1552: option causes
 1553: .Ar src-pane
 1554: to be joined to left of or above
 1555: .Ar dst-pane .
 1556: .Pp
 1557: If
 1558: .Fl s
 1559: is omitted and a marked pane is present (see
 1560: .Ic select-pane
 1561: .Fl m ) ,
 1562: the marked pane is used rather than the current pane.
 1563: .It Xo Ic kill-pane
 1564: .Op Fl a
 1565: .Op Fl t Ar target-pane
 1566: .Xc
 1567: .D1 (alias: Ic killp )
 1568: Destroy the given pane.
 1569: If no panes remain in the containing window, it is also destroyed.
 1570: The
 1571: .Fl a
 1572: option kills all but the pane given with
 1573: .Fl t .
 1574: .It Xo Ic kill-window
 1575: .Op Fl a
 1576: .Op Fl t Ar target-window
 1577: .Xc
 1578: .D1 (alias: Ic killw )
 1579: Kill the current window or the window at
 1580: .Ar target-window ,
 1581: removing it from any sessions to which it is linked.
 1582: The
 1583: .Fl a
 1584: option kills all but the window given with
 1585: .Fl t .
 1586: .It Xo Ic last-pane
 1587: .Op Fl de
 1588: .Op Fl t Ar target-window
 1589: .Xc
 1590: .D1 (alias: Ic lastp )
 1591: Select the last (previously selected) pane.
 1592: .Fl e
 1593: enables or
 1594: .Fl d
 1595: disables input to the pane.
 1596: .It Ic last-window Op Fl t Ar target-session
 1597: .D1 (alias: Ic last )
 1598: Select the last (previously selected) window.
 1599: If no
 1600: .Ar target-session
 1601: is specified, select the last window of the current session.
 1602: .It Xo Ic link-window
 1603: .Op Fl adk
 1604: .Op Fl s Ar src-window
 1605: .Op Fl t Ar dst-window
 1606: .Xc
 1607: .D1 (alias: Ic linkw )
 1608: Link the window at
 1609: .Ar src-window
 1610: to the specified
 1611: .Ar dst-window .
 1612: If
 1613: .Ar dst-window
 1614: is specified and no such window exists, the
 1615: .Ar src-window
 1616: is linked there.
 1617: With
 1618: .Fl a ,
 1619: the window is moved to the next index up (following windows
 1620: are moved if necessary).
 1621: If
 1622: .Fl k
 1623: is given and
 1624: .Ar dst-window
 1625: exists, it is killed, otherwise an error is generated.
 1626: If
 1627: .Fl d
 1628: is given, the newly linked window is not selected.
 1629: .It Xo Ic list-panes
 1630: .Op Fl as
 1631: .Op Fl F Ar format
 1632: .Op Fl t Ar target
 1633: .Xc
 1634: .D1 (alias: Ic lsp )
 1635: If
 1636: .Fl a
 1637: is given,
 1638: .Ar target
 1639: is ignored and all panes on the server are listed.
 1640: If
 1641: .Fl s
 1642: is given,
 1643: .Ar target
 1644: is a session (or the current session).
 1645: If neither is given,
 1646: .Ar target
 1647: is a window (or the current window).
 1648: For the meaning of the
 1649: .Fl F
 1650: flag, see the
 1651: .Sx FORMATS
 1652: section.
 1653: .It Xo Ic list-windows
 1654: .Op Fl a
 1655: .Op Fl F Ar format
 1656: .Op Fl t Ar target-session
 1657: .Xc
 1658: .D1 (alias: Ic lsw )
 1659: If
 1660: .Fl a
 1661: is given, list all windows on the server.
 1662: Otherwise, list windows in the current session or in
 1663: .Ar target-session .
 1664: For the meaning of the
 1665: .Fl F
 1666: flag, see the
 1667: .Sx FORMATS
 1668: section.
 1669: .It Xo Ic move-pane
 1670: .Op Fl bdhv
 1671: .Oo Fl l
 1672: .Ar size |
 1673: .Fl p Ar percentage Oc
 1674: .Op Fl s Ar src-pane
 1675: .Op Fl t Ar dst-pane
 1676: .Xc
 1677: .D1 (alias: Ic movep )
 1678: Like
 1679: .Ic join-pane ,
 1680: but
 1681: .Ar src-pane
 1682: and
 1683: .Ar dst-pane
 1684: may belong to the same window.
 1685: .It Xo Ic move-window
 1686: .Op Fl ardk
 1687: .Op Fl s Ar src-window
 1688: .Op Fl t Ar dst-window
 1689: .Xc
 1690: .D1 (alias: Ic movew )
 1691: This is similar to
 1692: .Ic link-window ,
 1693: except the window at
 1694: .Ar src-window
 1695: is moved to
 1696: .Ar dst-window .
 1697: With
 1698: .Fl r ,
 1699: all windows in the session are renumbered in sequential order, respecting
 1700: the
 1701: .Ic base-index
 1702: option.
 1703: .It Xo Ic new-window
 1704: .Op Fl adkP
 1705: .Op Fl c Ar start-directory
 1706: .Op Fl F Ar format
 1707: .Op Fl n Ar window-name
 1708: .Op Fl t Ar target-window
 1709: .Op Ar shell-command
 1710: .Xc
 1711: .D1 (alias: Ic neww )
 1712: Create a new window.
 1713: With
 1714: .Fl a ,
 1715: the new window is inserted at the next index up from the specified
 1716: .Ar target-window ,
 1717: moving windows up if necessary,
 1718: otherwise
 1719: .Ar target-window
 1720: is the new window location.
 1721: .Pp
 1722: If
 1723: .Fl d
 1724: is given, the session does not make the new window the current window.
 1725: .Ar target-window
 1726: represents the window to be created; if the target already exists an error is
 1727: shown, unless the
 1728: .Fl k
 1729: flag is used, in which case it is destroyed.
 1730: .Ar shell-command
 1731: is the command to execute.
 1732: If
 1733: .Ar shell-command
 1734: is not specified, the value of the
 1735: .Ic default-command
 1736: option is used.
 1737: .Fl c
 1738: specifies the working directory in which the new window is created.
 1739: .Pp
 1740: When the shell command completes, the window closes.
 1741: See the
 1742: .Ic remain-on-exit
 1743: option to change this behaviour.
 1744: .Pp
 1745: The
 1746: .Ev TERM
 1747: environment variable must be set to
 1748: .Ql screen
 1749: or
 1750: .Ql tmux
 1751: for all programs running
 1752: .Em inside
 1753: .Nm .
 1754: New windows will automatically have
 1755: .Ql TERM=screen
 1756: added to their environment, but care must be taken not to reset this in shell
 1757: start-up files.
 1758: .Pp
 1759: The
 1760: .Fl P
 1761: option prints information about the new window after it has been created.
 1762: By default, it uses the format
 1763: .Ql #{session_name}:#{window_index}
 1764: but a different format may be specified with
 1765: .Fl F .
 1766: .It Ic next-layout Op Fl t Ar target-window
 1767: .D1 (alias: Ic nextl )
 1768: Move a window to the next layout and rearrange the panes to fit.
 1769: .It Xo Ic next-window
 1770: .Op Fl a
 1771: .Op Fl t Ar target-session
 1772: .Xc
 1773: .D1 (alias: Ic next )
 1774: Move to the next window in the session.
 1775: If
 1776: .Fl a
 1777: is used, move to the next window with an alert.
 1778: .It Xo Ic pipe-pane
 1779: .Op Fl o
 1780: .Op Fl t Ar target-pane
 1781: .Op Ar shell-command
 1782: .Xc
 1783: .D1 (alias: Ic pipep )
 1784: Pipe any output sent by the program in
 1785: .Ar target-pane
 1786: to a shell command.
 1787: A pane may only be piped to one command at a time, any existing pipe is
 1788: closed before
 1789: .Ar shell-command
 1790: is executed.
 1791: The
 1792: .Ar shell-command
 1793: string may contain the special character sequences supported by the
 1794: .Ic status-left
 1795: option.
 1796: If no
 1797: .Ar shell-command
 1798: is given, the current pipe (if any) is closed.
 1799: .Pp
 1800: The
 1801: .Fl o
 1802: option only opens a new pipe if no previous pipe exists, allowing a pipe to
 1803: be toggled with a single key, for example:
 1804: .Bd -literal -offset indent
 1805: bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'
 1806: .Ed
 1807: .It Xo Ic previous-layout
 1808: .Op Fl t Ar target-window
 1809: .Xc
 1810: .D1 (alias: Ic prevl )
 1811: Move to the previous layout in the session.
 1812: .It Xo Ic previous-window
 1813: .Op Fl a
 1814: .Op Fl t Ar target-session
 1815: .Xc
 1816: .D1 (alias: Ic prev )
 1817: Move to the previous window in the session.
 1818: With
 1819: .Fl a ,
 1820: move to the previous window with an alert.
 1821: .It Xo Ic rename-window
 1822: .Op Fl t Ar target-window
 1823: .Ar new-name
 1824: .Xc
 1825: .D1 (alias: Ic renamew )
 1826: Rename the current window, or the window at
 1827: .Ar target-window
 1828: if specified, to
 1829: .Ar new-name .
 1830: .It Xo Ic resize-pane
 1831: .Op Fl DLMRUZ
 1832: .Op Fl t Ar target-pane
 1833: .Op Fl x Ar width
 1834: .Op Fl y Ar height
 1835: .Op Ar adjustment
 1836: .Xc
 1837: .D1 (alias: Ic resizep )
 1838: Resize a pane, up, down, left or right by
 1839: .Ar adjustment
 1840: with
 1841: .Fl U ,
 1842: .Fl D ,
 1843: .Fl L
 1844: or
 1845: .Fl R ,
 1846: or
 1847: to an absolute size
 1848: with
 1849: .Fl x
 1850: or
 1851: .Fl y .
 1852: The
 1853: .Ar adjustment
 1854: is given in lines or cells (the default is 1).
 1855: .Pp
 1856: With
 1857: .Fl Z ,
 1858: the active pane is toggled between zoomed (occupying the whole of the window)
 1859: and unzoomed (its normal position in the layout).
 1860: .Pp
 1861: .Fl M
 1862: begins mouse resizing (only valid if bound to a mouse key binding, see
 1863: .Sx MOUSE SUPPORT ) .
 1864: .It Xo Ic respawn-pane
 1865: .Op Fl k
 1866: .Op Fl t Ar target-pane
 1867: .Op Ar shell-command
 1868: .Xc
 1869: .D1 (alias: Ic respawnp )
 1870: Reactivate a pane in which the command has exited (see the
 1871: .Ic remain-on-exit
 1872: window option).
 1873: If
 1874: .Ar shell-command
 1875: is not given, the command used when the pane was created is executed.
 1876: The pane must be already inactive, unless
 1877: .Fl k
 1878: is given, in which case any existing command is killed.
 1879: .It Xo Ic respawn-window
 1880: .Op Fl k
 1881: .Op Fl t Ar target-window
 1882: .Op Ar shell-command
 1883: .Xc
 1884: .D1 (alias: Ic respawnw )
 1885: Reactivate a window in which the command has exited (see the
 1886: .Ic remain-on-exit
 1887: window option).
 1888: If
 1889: .Ar shell-command
 1890: is not given, the command used when the window was created is executed.
 1891: The window must be already inactive, unless
 1892: .Fl k
 1893: is given, in which case any existing command is killed.
 1894: .It Xo Ic rotate-window
 1895: .Op Fl DU
 1896: .Op Fl t Ar target-window
 1897: .Xc
 1898: .D1 (alias: Ic rotatew )
 1899: Rotate the positions of the panes within a window, either upward (numerically
 1900: lower) with
 1901: .Fl U
 1902: or downward (numerically higher).
 1903: .It Xo Ic select-layout
 1904: .Op Fl nop
 1905: .Op Fl t Ar target-window
 1906: .Op Ar layout-name
 1907: .Xc
 1908: .D1 (alias: Ic selectl )
 1909: Choose a specific layout for a window.
 1910: If
 1911: .Ar layout-name
 1912: is not given, the last preset layout used (if any) is reapplied.
 1913: .Fl n
 1914: and
 1915: .Fl p
 1916: are equivalent to the
 1917: .Ic next-layout
 1918: and
 1919: .Ic previous-layout
 1920: commands.
 1921: .Fl o
 1922: applies the last set layout if possible (undoes the most recent layout change).
 1923: .It Xo Ic select-pane
 1924: .Op Fl DdegLlMmRU
 1925: .Op Fl P Ar style
 1926: .Op Fl t Ar target-pane
 1927: .Xc
 1928: .D1 (alias: Ic selectp )
 1929: Make pane
 1930: .Ar target-pane
 1931: the active pane in window
 1932: .Ar target-window ,
 1933: or set its style (with
 1934: .Fl P ) .
 1935: If one of
 1936: .Fl D ,
 1937: .Fl L ,
 1938: .Fl R ,
 1939: or
 1940: .Fl U
 1941: is used, respectively the pane below, to the left, to the right, or above the
 1942: target pane is used.
 1943: .Fl l
 1944: is the same as using the
 1945: .Ic last-pane
 1946: command.
 1947: .Fl e
 1948: enables or
 1949: .Fl d
 1950: disables input to the pane.
 1951: .Pp
 1952: .Fl m
 1953: and
 1954: .Fl M
 1955: are used to set and clear the
 1956: .Em marked pane .
 1957: There is one marked pane at a time, setting a new marked pane clears the last.
 1958: The marked pane is the default target for
 1959: .Fl s
 1960: to
 1961: .Ic join-pane ,
 1962: .Ic swap-pane
 1963: and
 1964: .Ic swap-window .
 1965: .Pp
 1966: Each pane has a style: by default the
 1967: .Ic window-style
 1968: and
 1969: .Ic window-active-style
 1970: options are used,
 1971: .Ic select-pane
 1972: .Fl P
 1973: sets the style for a single pane.
 1974: For example, to set the pane 1 background to red:
 1975: .Bd -literal -offset indent
 1976: select-pane -t:.1 -P 'bg=red'
 1977: .Ed
 1978: .Pp
 1979: .Fl g
 1980: shows the current pane style.
 1981: .It Xo Ic select-window
 1982: .Op Fl lnpT
 1983: .Op Fl t Ar target-window
 1984: .Xc
 1985: .D1 (alias: Ic selectw )
 1986: Select the window at
 1987: .Ar target-window .
 1988: .Fl l ,
 1989: .Fl n
 1990: and
 1991: .Fl p
 1992: are equivalent to the
 1993: .Ic last-window ,
 1994: .Ic next-window
 1995: and
 1996: .Ic previous-window
 1997: commands.
 1998: If
 1999: .Fl T
 2000: is given and the selected window is already the current window,
 2001: the command behaves like
 2002: .Ic last-window .
 2003: .It Xo Ic split-window
 2004: .Op Fl bdfhvP
 2005: .Op Fl c Ar start-directory
 2006: .Oo Fl l
 2007: .Ar size |
 2008: .Fl p Ar percentage Oc
 2009: .Op Fl t Ar target-pane
 2010: .Op Ar shell-command
 2011: .Op Fl F Ar format
 2012: .Xc
 2013: .D1 (alias: Ic splitw )
 2014: Create a new pane by splitting
 2015: .Ar target-pane :
 2016: .Fl h
 2017: does a horizontal split and
 2018: .Fl v
 2019: a vertical split; if neither is specified,
 2020: .Fl v
 2021: is assumed.
 2022: The
 2023: .Fl l
 2024: and
 2025: .Fl p
 2026: options specify the size of the new pane in lines (for vertical split) or in
 2027: cells (for horizontal split), or as a percentage, respectively.
 2028: The
 2029: .Fl b
 2030: option causes the new pane to be created to the left of or above
 2031: .Ar target-pane .
 2032: The
 2033: .Fl f
 2034: option creates a new pane spanning the full window height (with
 2035: .Fl h )
 2036: or full window width (with
 2037: .Fl v ) ,
 2038: instead of splitting the active pane.
 2039: All other options have the same meaning as for the
 2040: .Ic new-window
 2041: command.
 2042: .It Xo Ic swap-pane
 2043: .Op Fl dDU
 2044: .Op Fl s Ar src-pane
 2045: .Op Fl t Ar dst-pane
 2046: .Xc
 2047: .D1 (alias: Ic swapp )
 2048: Swap two panes.
 2049: If
 2050: .Fl U
 2051: is used and no source pane is specified with
 2052: .Fl s ,
 2053: .Ar dst-pane
 2054: is swapped with the previous pane (before it numerically);
 2055: .Fl D
 2056: swaps with the next pane (after it numerically).
 2057: .Fl d
 2058: instructs
 2059: .Nm
 2060: not to change the active pane.
 2061: .Pp
 2062: If
 2063: .Fl s
 2064: is omitted and a marked pane is present (see
 2065: .Ic select-pane
 2066: .Fl m ) ,
 2067: the marked pane is used rather than the current pane.
 2068: .It Xo Ic swap-window
 2069: .Op Fl d
 2070: .Op Fl s Ar src-window
 2071: .Op Fl t Ar dst-window
 2072: .Xc
 2073: .D1 (alias: Ic swapw )
 2074: This is similar to
 2075: .Ic link-window ,
 2076: except the source and destination windows are swapped.
 2077: It is an error if no window exists at
 2078: .Ar src-window .
 2079: .Pp
 2080: Like
 2081: .Ic swap-pane ,
 2082: if
 2083: .Fl s
 2084: is omitted and a marked pane is present (see
 2085: .Ic select-pane
 2086: .Fl m ) ,
 2087: the window containing the marked pane is used rather than the current window.
 2088: .It Xo Ic unlink-window
 2089: .Op Fl k
 2090: .Op Fl t Ar target-window
 2091: .Xc
 2092: .D1 (alias: Ic unlinkw )
 2093: Unlink
 2094: .Ar target-window .
 2095: Unless
 2096: .Fl k
 2097: is given, a window may be unlinked only if it is linked to multiple sessions -
 2098: windows may not be linked to no sessions;
 2099: if
 2100: .Fl k
 2101: is specified and the window is linked to only one session, it is unlinked and
 2102: destroyed.
 2103: .El
 2104: .Sh KEY BINDINGS
 2105: .Nm
 2106: allows a command to be bound to most keys, with or without a prefix key.
 2107: When specifying keys, most represent themselves (for example
 2108: .Ql A
 2109: to
 2110: .Ql Z ) .
 2111: Ctrl keys may be prefixed with
 2112: .Ql C-
 2113: or
 2114: .Ql ^ ,
 2115: and Alt (meta) with
 2116: .Ql M- .
 2117: In addition, the following special key names are accepted:
 2118: .Em Up ,
 2119: .Em Down ,
 2120: .Em Left ,
 2121: .Em Right ,
 2122: .Em BSpace ,
 2123: .Em BTab ,
 2124: .Em DC
 2125: (Delete),
 2126: .Em End ,
 2127: .Em Enter ,
 2128: .Em Escape ,
 2129: .Em F1
 2130: to
 2131: .Em F12 ,
 2132: .Em Home ,
 2133: .Em IC
 2134: (Insert),
 2135: .Em NPage/PageDown/PgDn ,
 2136: .Em PPage/PageUp/PgUp ,
 2137: .Em Space ,
 2138: and
 2139: .Em Tab .
 2140: Note that to bind the
 2141: .Ql \&"
 2142: or
 2143: .Ql '
 2144: keys, quotation marks are necessary, for example:
 2145: .Bd -literal -offset indent
 2146: bind-key '"' split-window
 2147: bind-key "'" new-window
 2148: .Ed
 2149: .Pp
 2150: Commands related to key bindings are as follows:
 2151: .Bl -tag -width Ds
 2152: .It Xo Ic bind-key
 2153: .Op Fl nr
 2154: .Op Fl T Ar key-table
 2155: .Ar key Ar command Op Ar arguments
 2156: .Xc
 2157: .D1 (alias: Ic bind )
 2158: Bind key
 2159: .Ar key
 2160: to
 2161: .Ar command .
 2162: Keys are bound in a key table.
 2163: By default (without -T), the key is bound in
 2164: the
 2165: .Em prefix
 2166: key table.
 2167: This table is used for keys pressed after the prefix key (for example,
 2168: by default
 2169: .Ql c
 2170: is bound to
 2171: .Ic new-window
 2172: in the
 2173: .Em prefix
 2174: table, so
 2175: .Ql C-b c
 2176: creates a new window).
 2177: The
 2178: .Em root
 2179: table is used for keys pressed without the prefix key: binding
 2180: .Ql c
 2181: to
 2182: .Ic new-window
 2183: in the
 2184: .Em root
 2185: table (not recommended) means a plain
 2186: .Ql c
 2187: will create a new window.
 2188: .Fl n
 2189: is an alias
 2190: for
 2191: .Fl T Ar root .
 2192: Keys may also be bound in custom key tables and the
 2193: .Ic switch-client
 2194: .Fl T
 2195: command used to switch to them from a key binding.
 2196: The
 2197: .Fl r
 2198: flag indicates this key may repeat, see the
 2199: .Ic repeat-time
 2200: option.
 2201: .Pp
 2202: To view the default bindings and possible commands, see the
 2203: .Ic list-keys
 2204: command.
 2205: .It Xo Ic list-keys
 2206: .Op Fl T Ar key-table
 2207: .Xc
 2208: .D1 (alias: Ic lsk )
 2209: List all key bindings.
 2210: Without
 2211: .Fl T
 2212: all key tables are printed.
 2213: With
 2214: .Fl T
 2215: only
 2216: .Ar key-table .
 2217: .It Xo Ic send-keys
 2218: .Op Fl lMRX
 2219: .Op Fl N Ar repeat-count
 2220: .Op Fl t Ar target-pane
 2221: .Ar key Ar ...
 2222: .Xc
 2223: .D1 (alias: Ic send )
 2224: Send a key or keys to a window.
 2225: Each argument
 2226: .Ar key
 2227: is the name of the key (such as
 2228: .Ql C-a
 2229: or
 2230: .Ql NPage )
 2231: to send; if the string is not recognised as a key, it is sent as a series of
 2232: characters.
 2233: The
 2234: .Fl l
 2235: flag disables key name lookup and sends the keys literally.
 2236: All arguments are sent sequentially from first to last.
 2237: The
 2238: .Fl R
 2239: flag causes the terminal state to be reset.
 2240: .Pp
 2241: .Fl M
 2242: passes through a mouse event (only valid if bound to a mouse key binding, see
 2243: .Sx MOUSE SUPPORT ) .
 2244: .Pp
 2245: .Fl X
 2246: is used to send a command into copy mode - see
 2247: the
 2248: .Sx WINDOWS AND PANES
 2249: section.
 2250: .Fl N
 2251: specifies a repeat count.
 2252: .It Xo Ic send-prefix
 2253: .Op Fl 2
 2254: .Op Fl t Ar target-pane
 2255: .Xc
 2256: Send the prefix key, or with
 2257: .Fl 2
 2258: the secondary prefix key, to a window as if it was pressed.
 2259: .It Xo Ic unbind-key
 2260: .Op Fl an
 2261: .Op Fl T Ar key-table
 2262: .Ar key
 2263: .Xc
 2264: .D1 (alias: Ic unbind )
 2265: Unbind the command bound to
 2266: .Ar key .
 2267: .Fl n
 2268: and
 2269: .Fl T
 2270: are the same as for
 2271: .Ic bind-key .
 2272: If
 2273: .Fl a
 2274: is present, all key bindings are removed.
 2275: .El
 2276: .Sh OPTIONS
 2277: The appearance and behaviour of
 2278: .Nm
 2279: may be modified by changing the value of various options.
 2280: There are three types of option:
 2281: .Em server options ,
 2282: .Em session options
 2283: and
 2284: .Em window options .
 2285: .Pp
 2286: The
 2287: .Nm
 2288: server has a set of global options which do not apply to any particular
 2289: window or session.
 2290: These are altered with the
 2291: .Ic set-option
 2292: .Fl s
 2293: command, or displayed with the
 2294: .Ic show-options
 2295: .Fl s
 2296: command.
 2297: .Pp
 2298: In addition, each individual session may have a set of session options, and
 2299: there is a separate set of global session options.
 2300: Sessions which do not have a particular option configured inherit the value
 2301: from the global session options.
 2302: Session options are set or unset with the
 2303: .Ic set-option
 2304: command and may be listed with the
 2305: .Ic show-options
 2306: command.
 2307: The available server and session options are listed under the
 2308: .Ic set-option
 2309: command.
 2310: .Pp
 2311: Similarly, a set of window options is attached to each window, and there is
 2312: a set of global window options from which any unset options are inherited.
 2313: Window options are altered with the
 2314: .Ic set-window-option
 2315: command and can be listed with the
 2316: .Ic show-window-options
 2317: command.
 2318: All window options are documented with the
 2319: .Ic set-window-option
 2320: command.
 2321: .Pp
 2322: .Nm
 2323: also supports user options which are prefixed with a
 2324: .Ql \&@ .
 2325: User options may have any name, so long as they are prefixed with
 2326: .Ql \&@ ,
 2327: and be set to any string.
 2328: For example:
 2329: .Bd -literal -offset indent
 2330: $ tmux setw -q @foo "abc123"
 2331: $ tmux showw -v @foo
 2332: abc123
 2333: .Ed
 2334: .Pp
 2335: Commands which set options are as follows:
 2336: .Bl -tag -width Ds
 2337: .It Xo Ic set-option
 2338: .Op Fl agoqsuw
 2339: .Op Fl t Ar target-session | Ar target-window
 2340: .Ar option Ar value
 2341: .Xc
 2342: .D1 (alias: Ic set )
 2343: Set a window option with
 2344: .Fl w
 2345: (equivalent to the
 2346: .Ic set-window-option
 2347: command),
 2348: a server option with
 2349: .Fl s ,
 2350: otherwise a session option.
 2351: If
 2352: .Fl g
 2353: is given, the global session or window option is set.
 2354: The
 2355: .Fl u
 2356: flag unsets an option, so a session inherits the option from the global
 2357: options (or with
 2358: .Fl g ,
 2359: restores a global option to the default).
 2360: .Pp
 2361: The
 2362: .Fl o
 2363: flag prevents setting an option that is already set and the
 2364: .Fl q
 2365: flag suppresses errors about unknown or ambiguous options.
 2366: .Pp
 2367: With
 2368: .Fl a ,
 2369: and if the option expects a string or a style,
 2370: .Ar value
 2371: is appended to the existing setting.
 2372: For example:
 2373: .Bd -literal -offset indent
 2374: set -g status-left "foo"
 2375: set -ag status-left "bar"
 2376: .Ed
 2377: .Pp
 2378: Will result in
 2379: .Ql foobar .
 2380: And:
 2381: .Bd -literal -offset indent
 2382: set -g status-style "bg=red"
 2383: set -ag status-style "fg=blue"
 2384: .Ed
 2385: .Pp
 2386: Will result in a red background
 2387: .Em and
 2388: blue foreground.
 2389: Without
 2390: .Fl a ,
 2391: the result would be the default background and a blue foreground.
 2392: .Pp
 2393: Available window options are listed under
 2394: .Ic set-window-option .
 2395: .Pp
 2396: .Ar value
 2397: depends on the option and may be a number, a string, or a flag (on, off, or
 2398: omitted to toggle).
 2399: .Pp
 2400: Available server options are:
 2401: .Bl -tag -width Ds
 2402: .It Ic buffer-limit Ar number
 2403: Set the number of buffers; as new buffers are added to the top of the stack,
 2404: old ones are removed from the bottom if necessary to maintain this maximum
 2405: length.
 2406: .It Xo Ic command-alias[]
 2407: .Ar name=value
 2408: .Xc
 2409: This is an array of custom aliases for commands.
 2410: If an unknown command matches
 2411: .Ar name ,
 2412: it is replaced with
 2413: .Ar value .
 2414: For example, after:
 2415: .Pp
 2416: .Dl set -s command-alias[2] zoom='resize-pane -Z'
 2417: .Pp
 2418: Using:
 2419: .Pp
 2420: .Dl zoom -t:.1
 2421: .Pp
 2422: Is equivalent to:
 2423: .Pp
 2424: .Dl resize-pane -Z -t:.1
 2425: .Pp
 2426: Note that aliases are expanded when a command is parsed rather than when it is
 2427: executed, so binding an alias with
 2428: .Ic bind-key
 2429: will bind the expanded form.
 2430: .It Ic default-terminal Ar terminal
 2431: Set the default terminal for new windows created in this session - the
 2432: default value of the
 2433: .Ev TERM
 2434: environment variable.
 2435: For
 2436: .Nm
 2437: to work correctly, this
 2438: .Em must
 2439: be set to
 2440: .Ql screen ,
 2441: .Ql tmux
 2442: or a derivative of them.
 2443: .It Ic escape-time Ar time
 2444: Set the time in milliseconds for which
 2445: .Nm
 2446: waits after an escape is input to determine if it is part of a function or meta
 2447: key sequences.
 2448: The default is 500 milliseconds.
 2449: .It Xo Ic exit-unattached
 2450: .Op Ic on | off
 2451: .Xc
 2452: If enabled, the server will exit when there are no attached clients.
 2453: .It Xo Ic focus-events
 2454: .Op Ic on | off
 2455: .Xc
 2456: When enabled, focus events are requested from the terminal if supported and
 2457: passed through to applications running in
 2458: .Nm .
 2459: Attached clients should be detached and attached again after changing this
 2460: option.
 2461: .It Ic history-file Ar path
 2462: If not empty, a file to which
 2463: .Nm
 2464: will write command prompt history on exit and load it from on start.
 2465: .It Ic message-limit Ar number
 2466: Set the number of error or information messages to save in the message log for
 2467: each client.
 2468: The default is 100.
 2469: .It Xo Ic set-clipboard
 2470: .Op Ic on | off
 2471: .Xc
 2472: Attempt to set the terminal clipboard content using the
 2473: \ee]52;...\e007
 2474: .Xr xterm 1
 2475: escape sequences.
 2476: This option is on by default if there is an
 2477: .Em \&Ms
 2478: entry in the
 2479: .Xr terminfo 5
 2480: description for the client terminal.
 2481: Note that this feature needs to be enabled in
 2482: .Xr xterm 1
 2483: by setting the resource:
 2484: .Bd -literal -offset indent
 2485: disallowedWindowOps: 20,21,SetXprop
 2486: .Ed
 2487: .Pp
 2488: Or changing this property from the
 2489: .Xr xterm 1
 2490: interactive menu when required.
 2491: .It Ic terminal-overrides[] Ar string
 2492: Allow terminal descriptions read using
 2493: .Xr terminfo 5
 2494: to be overridden.
 2495: Each entry is a colon-separated string made up of a terminal type pattern
 2496: (matched using
 2497: .Xr fnmatch 3 )
 2498: and a set of
 2499: .Em name=value
 2500: entries.
 2501: .Pp
 2502: For example, to set the
 2503: .Ql clear
 2504: .Xr terminfo 5
 2505: entry to
 2506: .Ql \ee[H\ee[2J
 2507: for all terminal types matching
 2508: .Ql rxvt* :
 2509: .Pp
 2510: .Dl "rxvt*:clear=\ee[H\ee[2J"
 2511: .Pp
 2512: The terminal entry value is passed through
 2513: .Xr strunvis 3
 2514: before interpretation.
 2515: .El
 2516: .Pp
 2517: Available session options are:
 2518: .Bl -tag -width Ds
 2519: .It Ic assume-paste-time Ar milliseconds
 2520: If keys are entered faster than one in
 2521: .Ar milliseconds ,
 2522: they are assumed to have been pasted rather than typed and
 2523: .Nm
 2524: key bindings are not processed.
 2525: The default is one millisecond and zero disables.
 2526: .It Ic base-index Ar index
 2527: Set the base index from which an unused index should be searched when a new
 2528: window is created.
 2529: The default is zero.
 2530: .It Xo Ic bell-action
 2531: .Op Ic any | none | current | other
 2532: .Xc
 2533: Set action on window bell.
 2534: .Ic any
 2535: means a bell in any window linked to a session causes a bell in the current
 2536: window of that session,
 2537: .Ic none
 2538: means all bells are ignored,
 2539: .Ic current
 2540: means only bells in windows other than the current window are ignored and
 2541: .Ic other
 2542: means bells in the current window are ignored but not those in other windows.
 2543: .It Xo Ic bell-on-alert
 2544: .Op Ic on | off
 2545: .Xc
 2546: If on, ring the terminal bell when an alert
 2547: occurs.
 2548: .It Ic default-command Ar shell-command
 2549: Set the command used for new windows (if not specified when the window is
 2550: created) to
 2551: .Ar shell-command ,
 2552: which may be any
 2553: .Xr sh 1
 2554: command.
 2555: The default is an empty string, which instructs
 2556: .Nm
 2557: to create a login shell using the value of the
 2558: .Ic default-shell
 2559: option.
 2560: .It Ic default-shell Ar path
 2561: Specify the default shell.
 2562: This is used as the login shell for new windows when the
 2563: .Ic default-command
 2564: option is set to empty, and must be the full path of the executable.
 2565: When started
 2566: .Nm
 2567: tries to set a default value from the first suitable of the
 2568: .Ev SHELL
 2569: environment variable, the shell returned by
 2570: .Xr getpwuid 3 ,
 2571: or
 2572: .Pa /bin/sh .
 2573: This option should be configured when
 2574: .Nm
 2575: is used as a login shell.
 2576: .It Xo Ic destroy-unattached
 2577: .Op Ic on | off
 2578: .Xc
 2579: If enabled and the session is no longer attached to any clients, it is
 2580: destroyed.
 2581: .It Xo Ic detach-on-destroy
 2582: .Op Ic on | off
 2583: .Xc
 2584: If on (the default), the client is detached when the session it is attached to
 2585: is destroyed.
 2586: If off, the client is switched to the most recently active of the remaining
 2587: sessions.
 2588: .It Ic display-panes-active-colour Ar colour
 2589: Set the colour used by the
 2590: .Ic display-panes
 2591: command to show the indicator for the active pane.
 2592: .It Ic display-panes-colour Ar colour
 2593: Set the colour used by the
 2594: .Ic display-panes
 2595: command to show the indicators for inactive panes.
 2596: .It Ic display-panes-time Ar time
 2597: Set the time in milliseconds for which the indicators shown by the
 2598: .Ic display-panes
 2599: command appear.
 2600: .It Ic display-time Ar time
 2601: Set the amount of time for which status line messages and other on-screen
 2602: indicators are displayed.
 2603: If set to 0, messages and indicators are displayed until a key is pressed.
 2604: .Ar time
 2605: is in milliseconds.
 2606: .It Ic history-limit Ar lines
 2607: Set the maximum number of lines held in window history.
 2608: This setting applies only to new windows - existing window histories are not
 2609: resized and retain the limit at the point they were created.
 2610: .It Ic key-table Ar key-table
 2611: Set the default key table to
 2612: .Ar key-table
 2613: instead of
 2614: .Em root .
 2615: .It Ic lock-after-time Ar number
 2616: Lock the session (like the
 2617: .Ic lock-session
 2618: command) after
 2619: .Ar number
 2620: seconds of inactivity.
 2621: The default is not to lock (set to 0).
 2622: .It Ic lock-command Ar shell-command
 2623: Command to run when locking each client.
 2624: The default is to run
 2625: .Xr lock 1
 2626: with
 2627: .Fl np .
 2628: .It Ic message-command-style Ar style
 2629: Set status line message command style, where
 2630: .Ar style
 2631: is a comma-separated list of characteristics to be specified.
 2632: .Pp
 2633: These may be
 2634: .Ql bg=colour
 2635: to set the background colour,
 2636: .Ql fg=colour
 2637: to set the foreground colour, and a list of attributes as specified below.
 2638: .Pp
 2639: The colour is one of:
 2640: .Ic black ,
 2641: .Ic red ,
 2642: .Ic green ,
 2643: .Ic yellow ,
 2644: .Ic blue ,
 2645: .Ic magenta ,
 2646: .Ic cyan ,
 2647: .Ic white ,
 2648: aixterm bright variants (if supported:
 2649: .Ic brightred ,
 2650: .Ic brightgreen ,
 2651: and so on),
 2652: .Ic colour0
 2653: to
 2654: .Ic colour255
 2655: from the 256-colour set,
 2656: .Ic default ,
 2657: or a hexadecimal RGB string such as
 2658: .Ql #ffffff ,
 2659: which chooses the closest match from the default 256-colour set.
 2660: .Pp
 2661: The attributes is either
 2662: .Ic none
 2663: or a comma-delimited list of one or more of:
 2664: .Ic bright
 2665: (or
 2666: .Ic bold ) ,
 2667: .Ic dim ,
 2668: .Ic underscore ,
 2669: .Ic blink ,
 2670: .Ic reverse ,
 2671: .Ic hidden ,
 2672: .Ic italics ,
 2673: or
 2674: .Ic strikethrough
 2675: to turn an attribute on, or an attribute prefixed with
 2676: .Ql no
 2677: to turn one off.
 2678: .Pp
 2679: Examples are:
 2680: .Bd -literal -offset indent
 2681: fg=yellow,bold,underscore,blink
 2682: bg=black,fg=default,noreverse
 2683: .Ed
 2684: .Pp
 2685: With the
 2686: .Fl a
 2687: flag to the
 2688: .Ic set-option
 2689: command the new style is added otherwise the existing style is replaced.
 2690: .It Ic message-style Ar style
 2691: Set status line message style.
 2692: For how to specify
 2693: .Ar style ,
 2694: see the
 2695: .Ic message-command-style
 2696: option.
 2697: .It Xo Ic mouse
 2698: .Op Ic on | off
 2699: .Xc
 2700: If on,
 2701: .Nm
 2702: captures the mouse and allows mouse events to be bound as key bindings.
 2703: See the
 2704: .Sx MOUSE SUPPORT
 2705: section for details.
 2706: .It Ic prefix Ar key
 2707: Set the key accepted as a prefix key.
 2708: In addition to the standard keys described under
 2709: .Sx KEY BINDINGS ,
 2710: .Ic prefix
 2711: can be set to the special key
 2712: .Ql None
 2713: to set no prefix.
 2714: .It Ic prefix2 Ar key
 2715: Set a secondary key accepted as a prefix key.
 2716: Like
 2717: .Ic prefix ,
 2718: .Ic prefix2
 2719: can be set to
 2720: .Ql None .
 2721: .It Xo Ic renumber-windows
 2722: .Op Ic on | off
 2723: .Xc
 2724: If on, when a window is closed in a session, automatically renumber the other
 2725: windows in numerical order.
 2726: This respects the
 2727: .Ic base-index
 2728: option if it has been set.
 2729: If off, do not renumber the windows.
 2730: .It Ic repeat-time Ar time
 2731: Allow multiple commands to be entered without pressing the prefix-key again
 2732: in the specified
 2733: .Ar time
 2734: milliseconds (the default is 500).
 2735: Whether a key repeats may be set when it is bound using the
 2736: .Fl r
 2737: flag to
 2738: .Ic bind-key .
 2739: Repeat is enabled for the default keys bound to the
 2740: .Ic resize-pane
 2741: command.
 2742: .It Xo Ic set-titles
 2743: .Op Ic on | off
 2744: .Xc
 2745: Attempt to set the client terminal title using the
 2746: .Em tsl
 2747: and
 2748: .Em fsl
 2749: .Xr terminfo 5
 2750: entries if they exist.
 2751: .Nm
 2752: automatically sets these to the \ee]0;...\e007 sequence if
 2753: the terminal appears to be
 2754: .Xr xterm 1 .
 2755: This option is off by default.
 2756: .It Ic set-titles-string Ar string
 2757: String used to set the window title if
 2758: .Ic set-titles
 2759: is on.
 2760: Formats are expanded, see the
 2761: .Sx FORMATS
 2762: section.
 2763: .It Xo Ic status
 2764: .Op Ic on | off
 2765: .Xc
 2766: Show or hide the status line.
 2767: .It Ic status-interval Ar interval
 2768: Update the status line every
 2769: .Ar interval
 2770: seconds.
 2771: By default, updates will occur every 15 seconds.
 2772: A setting of zero disables redrawing at interval.
 2773: .It Xo Ic status-justify
 2774: .Op Ic left | centre | right
 2775: .Xc
 2776: Set the position of the window list component of the status line: left, centre
 2777: or right justified.
 2778: .It Xo Ic status-keys
 2779: .Op Ic vi | emacs
 2780: .Xc
 2781: Use vi or emacs-style
 2782: key bindings in the status line, for example at the command prompt.
 2783: The default is emacs, unless the
 2784: .Ev VISUAL
 2785: or
 2786: .Ev EDITOR
 2787: environment variables are set and contain the string
 2788: .Ql vi .
 2789: .It Ic status-left Ar string
 2790: Display
 2791: .Ar string
 2792: (by default the session name) to the left of the status line.
 2793: .Ar string
 2794: will be passed through
 2795: .Xr strftime 3
 2796: and formats (see
 2797: .Sx FORMATS )
 2798: will be expanded.
 2799: It may also contain the special character sequence #[] to change the colour
 2800: or attributes, for example
 2801: .Ql #[fg=red,bright]
 2802: to set a bright red foreground.
 2803: See the
 2804: .Ic message-command-style
 2805: option for a description of colours and attributes.
 2806: .Pp
 2807: For details on how the names and titles can be set see the
 2808: .Sx "NAMES AND TITLES"
 2809: section.
 2810: .Pp
 2811: Examples are:
 2812: .Bd -literal -offset indent
 2813: #(sysctl vm.loadavg)
 2814: #[fg=yellow,bold]#(apm -l)%%#[default] [#S]
 2815: .Ed
 2816: .Pp
 2817: The default is
 2818: .Ql "[#S] " .
 2819: .It Ic status-left-length Ar length
 2820: Set the maximum
 2821: .Ar length
 2822: of the left component of the status line.
 2823: The default is 10.
 2824: .It Ic status-left-style Ar style
 2825: Set the style of the left part of the status line.
 2826: For how to specify
 2827: .Ar style ,
 2828: see the
 2829: .Ic message-command-style
 2830: option.
 2831: .It Xo Ic status-position
 2832: .Op Ic top | bottom
 2833: .Xc
 2834: Set the position of the status line.
 2835: .It Ic status-right Ar string
 2836: Display
 2837: .Ar string
 2838: to the right of the status line.
 2839: By default, the current window title in double quotes, the date and the time
 2840: are shown.
 2841: As with
 2842: .Ic status-left ,
 2843: .Ar string
 2844: will be passed to
 2845: .Xr strftime 3
 2846: and character pairs are replaced.
 2847: .It Ic status-right-length Ar length
 2848: Set the maximum
 2849: .Ar length
 2850: of the right component of the status line.
 2851: The default is 40.
 2852: .It Ic status-right-style Ar style
 2853: Set the style of the right part of the status line.
 2854: For how to specify
 2855: .Ar style ,
 2856: see the
 2857: .Ic message-command-style
 2858: option.
 2859: .It Ic status-style Ar style
 2860: Set status line style.
 2861: For how to specify
 2862: .Ar style ,
 2863: see the
 2864: .Ic message-command-style
 2865: option.
 2866: .It Ic update-environment[] Ar variable
 2867: Set list of environment variables to be copied into the session environment
 2868: when a new session is created or an existing session is attached.
 2869: Any variables that do not exist in the source environment are set to be
 2870: removed from the session environment (as if
 2871: .Fl r
 2872: was given to the
 2873: .Ic set-environment
 2874: command).
 2875: .It Xo Ic visual-activity
 2876: .Op Ic on | off
 2877: .Xc
 2878: If on, display a status line message when activity occurs in a window
 2879: for which the
 2880: .Ic monitor-activity
 2881: window option is enabled.
 2882: .It Xo Ic visual-bell
 2883: .Op Ic on | off
 2884: .Xc
 2885: If this option is on, a message is shown on a bell instead of it being passed
 2886: through to the terminal (which normally makes a sound).
 2887: Also see the
 2888: .Ic bell-action
 2889: option.
 2890: .It Xo Ic visual-silence
 2891: .Op Ic on | off
 2892: .Xc
 2893: If
 2894: .Ic monitor-silence
 2895: is enabled, prints a message after the interval has expired on a given window.
 2896: .It Ic word-separators Ar string
 2897: Sets the session's conception of what characters are considered word
 2898: separators, for the purposes of the next and previous word commands in
 2899: copy mode.
 2900: The default is
 2901: .Ql \ -_@ .
 2902: .El
 2903: .It Xo Ic set-window-option
 2904: .Op Fl agoqu
 2905: .Op Fl t Ar target-window
 2906: .Ar option Ar value
 2907: .Xc
 2908: .D1 (alias: Ic setw )
 2909: Set a window option.
 2910: The
 2911: .Fl a ,
 2912: .Fl g ,
 2913: .Fl o ,
 2914: .Fl q
 2915: and
 2916: .Fl u
 2917: flags work similarly to the
 2918: .Ic set-option
 2919: command.
 2920: .Pp
 2921: Supported window options are:
 2922: .Pp
 2923: .Bl -tag -width Ds -compact
 2924: .It Xo Ic aggressive-resize
 2925: .Op Ic on | off
 2926: .Xc
 2927: Aggressively resize the chosen window.
 2928: This means that
 2929: .Nm
 2930: will resize the window to the size of the smallest session for which it is the
 2931: current window, rather than the smallest session to which it is attached.
 2932: The window may resize when the current window is changed on another sessions;
 2933: this option is good for full-screen programs which support
 2934: .Dv SIGWINCH
 2935: and poor for interactive programs such as shells.
 2936: .Pp
 2937: .It Xo Ic allow-rename
 2938: .Op Ic on | off
 2939: .Xc
 2940: Allow programs to change the window name using a terminal escape
 2941: sequence (\eek...\ee\e\e).
 2942: The default is on.
 2943: .Pp
 2944: .It Xo Ic alternate-screen
 2945: .Op Ic on | off
 2946: .Xc
 2947: This option configures whether programs running inside
 2948: .Nm
 2949: may use the terminal alternate screen feature, which allows the
 2950: .Em smcup
 2951: and
 2952: .Em rmcup
 2953: .Xr terminfo 5
 2954: capabilities.
 2955: The alternate screen feature preserves the contents of the window when an
 2956: interactive application starts and restores it on exit, so that any output
 2957: visible before the application starts reappears unchanged after it exits.
 2958: The default is on.
 2959: .Pp
 2960: .It Xo Ic automatic-rename
 2961: .Op Ic on | off
 2962: .Xc
 2963: Control automatic window renaming.
 2964: When this setting is enabled,
 2965: .Nm
 2966: will rename the window automatically using the format specified by
 2967: .Ic automatic-rename-format .
 2968: This flag is automatically disabled for an individual window when a name
 2969: is specified at creation with
 2970: .Ic new-window
 2971: or
 2972: .Ic new-session ,
 2973: or later with
 2974: .Ic rename-window ,
 2975: or with a terminal escape sequence.
 2976: It may be switched off globally with:
 2977: .Bd -literal -offset indent
 2978: set-window-option -g automatic-rename off
 2979: .Ed
 2980: .Pp
 2981: .It Ic automatic-rename-format Ar format
 2982: The format (see
 2983: .Sx FORMATS )
 2984: used when the
 2985: .Ic automatic-rename
 2986: option is enabled.
 2987: .Pp
 2988: .It Ic clock-mode-colour Ar colour
 2989: Set clock colour.
 2990: .Pp
 2991: .It Xo Ic clock-mode-style
 2992: .Op Ic 12 | 24
 2993: .Xc
 2994: Set clock hour format.
 2995: .Pp
 2996: .It Ic force-height Ar height
 2997: .It Ic force-width Ar width
 2998: Prevent
 2999: .Nm
 3000: from resizing a window to greater than
 3001: .Ar width
 3002: or
 3003: .Ar height .
 3004: A value of zero restores the default unlimited setting.
 3005: .Pp
 3006: .It Ic main-pane-height Ar height
 3007: .It Ic main-pane-width Ar width
 3008: Set the width or height of the main (left or top) pane in the
 3009: .Ic main-horizontal
 3010: or
 3011: .Ic main-vertical
 3012: layouts.
 3013: .Pp
 3014: .It Xo Ic mode-keys
 3015: .Op Ic vi | emacs
 3016: .Xc
 3017: Use vi or emacs-style key bindings in copy mode.
 3018: The default is emacs, unless
 3019: .Ev VISUAL
 3020: or
 3021: .Ev EDITOR
 3022: contains
 3023: .Ql vi .
 3024: .Pp
 3025: .It Ic mode-style Ar style
 3026: Set window modes style.
 3027: For how to specify
 3028: .Ar style ,
 3029: see the
 3030: .Ic message-command-style
 3031: option.
 3032: .Pp
 3033: .It Xo Ic monitor-activity
 3034: .Op Ic on | off
 3035: .Xc
 3036: Monitor for activity in the window.
 3037: Windows with activity are highlighted in the status line.
 3038: .Pp
 3039: .It Xo Ic monitor-silence
 3040: .Op Ic interval
 3041: .Xc
 3042: Monitor for silence (no activity) in the window within
 3043: .Ic interval
 3044: seconds.
 3045: Windows that have been silent for the interval are highlighted in the
 3046: status line.
 3047: An interval of zero disables the monitoring.
 3048: .Pp
 3049: .It Ic other-pane-height Ar height
 3050: Set the height of the other panes (not the main pane) in the
 3051: .Ic main-horizontal
 3052: layout.
 3053: If this option is set to 0 (the default), it will have no effect.
 3054: If both the
 3055: .Ic main-pane-height
 3056: and
 3057: .Ic other-pane-height
 3058: options are set, the main pane will grow taller to make the other panes the
 3059: specified height, but will never shrink to do so.
 3060: .Pp
 3061: .It Ic other-pane-width Ar width
 3062: Like
 3063: .Ic other-pane-height ,
 3064: but set the width of other panes in the
 3065: .Ic main-vertical
 3066: layout.
 3067: .Pp
 3068: .It Ic pane-active-border-style Ar style
 3069: Set the pane border style for the currently active pane.
 3070: For how to specify
 3071: .Ar style ,
 3072: see the
 3073: .Ic message-command-style
 3074: option.
 3075: Attributes are ignored.
 3076: .Pp
 3077: .It Ic pane-base-index Ar index
 3078: Like
 3079: .Ic base-index ,
 3080: but set the starting index for pane numbers.
 3081: .Pp
 3082: .It Ic pane-border-format Ar format
 3083: Set the text shown in pane border status lines.
 3084: .Pp
 3085: .It Xo Ic pane-border-status
 3086: .Op Ic off | top | bottom
 3087: .Xc
 3088: Turn pane border status lines off or set their position.
 3089: .Pp
 3090: .It Ic pane-border-style Ar style
 3091: Set the pane border style for panes aside from the active pane.
 3092: For how to specify
 3093: .Ar style ,
 3094: see the
 3095: .Ic message-command-style
 3096: option.
 3097: Attributes are ignored.
 3098: .Pp
 3099: .It Xo Ic remain-on-exit
 3100: .Op Ic on | off
 3101: .Xc
 3102: A window with this flag set is not destroyed when the program running in it
 3103: exits.
 3104: The window may be reactivated with the
 3105: .Ic respawn-window
 3106: command.
 3107: .Pp
 3108: .It Xo Ic synchronize-panes
 3109: .Op Ic on | off
 3110: .Xc
 3111: Duplicate input to any pane to all other panes in the same window (only
 3112: for panes that are not in any special mode).
 3113: .Pp
 3114: .It Ic window-active-style Ar style
 3115: Set the style for the window's active pane.
 3116: For how to specify
 3117: .Ar style ,
 3118: see the
 3119: .Ic message-command-style
 3120: option.
 3121: .Pp
 3122: .It Ic window-status-activity-style Ar style
 3123: Set status line style for windows with an activity alert.
 3124: For how to specify
 3125: .Ar style ,
 3126: see the
 3127: .Ic message-command-style
 3128: option.
 3129: .Pp
 3130: .It Ic window-status-bell-style Ar style
 3131: Set status line style for windows with a bell alert.
 3132: For how to specify
 3133: .Ar style ,
 3134: see the
 3135: .Ic message-command-style
 3136: option.
 3137: .Pp
 3138: .It Ic window-status-current-format Ar string
 3139: Like
 3140: .Ar window-status-format ,
 3141: but is the format used when the window is the current window.
 3142: .Pp
 3143: .It Ic window-status-current-style Ar style
 3144: Set status line style for the currently active window.
 3145: For how to specify
 3146: .Ar style ,
 3147: see the
 3148: .Ic message-command-style
 3149: option.
 3150: .Pp
 3151: .It Ic window-status-format Ar string
 3152: Set the format in which the window is displayed in the status line window list.
 3153: See the
 3154: .Ar status-left
 3155: option for details of special character sequences available.
 3156: The default is
 3157: .Ql #I:#W#F .
 3158: .Pp
 3159: .It Ic window-status-last-style Ar style
 3160: Set status line style for the last active window.
 3161: For how to specify
 3162: .Ar style ,
 3163: see the
 3164: .Ic message-command-style
 3165: option.
 3166: .Pp
 3167: .It Ic window-status-separator Ar string
 3168: Sets the separator drawn between windows in the status line.
 3169: The default is a single space character.
 3170: .Pp
 3171: .It Ic window-status-style Ar style
 3172: Set status line style for a single window.
 3173: For how to specify
 3174: .Ar style ,
 3175: see the
 3176: .Ic message-command-style
 3177: option.
 3178: .Pp
 3179: .It Ic window-style Ar style
 3180: Set the default window style.
 3181: For how to specify
 3182: .Ar style ,
 3183: see the
 3184: .Ic message-command-style
 3185: option.
 3186: .Pp
 3187: .It Xo Ic wrap-search
 3188: .Op Ic on | off
 3189: .Xc
 3190: If this option is set, searches will wrap around the end of the pane contents.
 3191: The default is on.
 3192: .Pp
 3193: .It Xo Ic xterm-keys
 3194: .Op Ic on | off
 3195: .Xc
 3196: If this option is set,
 3197: .Nm
 3198: will generate
 3199: .Xr xterm 1 -style
 3200: function key sequences; these have a number included to indicate modifiers such
 3201: as Shift, Alt or Ctrl.
 3202: The default is off.
 3203: .El
 3204: .It Xo Ic show-options
 3205: .Op Fl gqsvw
 3206: .Op Fl t Ar target-session | Ar target-window
 3207: .Op Ar option
 3208: .Xc
 3209: .D1 (alias: Ic show )
 3210: Show the window options (or a single window option if given) with
 3211: .Fl w
 3212: (equivalent to
 3213: .Ic show-window-options ) ,
 3214: the server options with
 3215: .Fl s ,
 3216: otherwise the session options for
 3217: .Ar target session .
 3218: Global session or window options are listed if
 3219: .Fl g
 3220: is used.
 3221: .Fl v
 3222: shows only the option value, not the name.
 3223: If
 3224: .Fl q
 3225: is set, no error will be returned if
 3226: .Ar option
 3227: is unset.
 3228: .It Xo Ic show-window-options
 3229: .Op Fl gv
 3230: .Op Fl t Ar target-window
 3231: .Op Ar option
 3232: .Xc
 3233: .D1 (alias: Ic showw )
 3234: List the window options or a single option for
 3235: .Ar target-window ,
 3236: or the global window options if
 3237: .Fl g
 3238: is used.
 3239: .Fl v
 3240: shows only the option value, not the name.
 3241: .El
 3242: .Sh HOOKS
 3243: .Nm
 3244: allows commands to run on various triggers, called
 3245: .Em hooks .
 3246: Most
 3247: .Nm
 3248: commands have an
 3249: .Em after
 3250: hook and there are a number of hooks not associated with commands.
 3251: .Pp
 3252: A command's after
 3253: hook is run after it completes, except when the command is run as part of a hook
 3254: itself.
 3255: They are named with an
 3256: .Ql after-
 3257: prefix.
 3258: For example, the following command adds a hook to select the even-vertical
 3259: layout after every
 3260: .Ic split-window :
 3261: .Bd -literal -offset indent
 3262: set-hook after-split-window "selectl even-vertical"
 3263: .Ed
 3264: .Pp
 3265: In addition, the following hooks are available:
 3266: .Bl -tag -width "XXXXXXXXXXXXXXXX"
 3267: .It alert-activity
 3268: Run when a window has activity.
 3269: See
 3270: .Ic monitor-activity .
 3271: .It alert-bell
 3272: Run when a window has received a bell.
 3273: .It alert-silence
 3274: Run when a window has been silent.
 3275: See
 3276: .Ic monitor-silence .
 3277: .It client-attached
 3278: Run when a client is attached.
 3279: .It client-detached
 3280: Run when a client is detached
 3281: .It client-resized
 3282: Run when a client is resized.
 3283: .It client-session-changed
 3284: Run when a client's attached session is changed.
 3285: .It pane-died
 3286: Run when the program running in a pane exits, but
 3287: .Ic remain-on-exit
 3288: is on so the pane has not closed.
 3289: .It pane-exited
 3290: Run when the program running in a pane exits.
 3291: .It session-created
 3292: Run when a new session created.
 3293: .It session-closed
 3294: Run when a session closed.
 3295: .It session-renamed
 3296: Run when a session is renamed.
 3297: .It window-linked
 3298: Run when a window is linked into a session.
 3299: .It window-renamed
 3300: Run when a window is renamed.
 3301: .It window-unlinked
 3302: Run when a window is unlinked from a session.
 3303: .El
 3304: .Pp
 3305: Hooks are managed with these commands:
 3306: .Bl -tag -width Ds
 3307: .It Xo Ic set-hook
 3308: .Op Fl gu
 3309: .Op Fl t Ar target-session
 3310: .Ar hook-name
 3311: .Ar command
 3312: .Xc
 3313: Sets (or with
 3314: .Fl u
 3315: unsets) hook
 3316: .Ar hook-name
 3317: to
 3318: .Ar command .
 3319: If
 3320: .Fl g
 3321: is given,
 3322: .Em hook-name
 3323: is added to the global list of hooks, otherwise it is added to the session
 3324: hooks (for
 3325: .Ar target-session
 3326: with
 3327: .Fl t ) .
 3328: Like options, session hooks inherit from the global ones.
 3329: .It Xo Ic show-hooks
 3330: .Op Fl g
 3331: .Op Fl t Ar target-session
 3332: .Xc
 3333: Shows the global list of hooks with
 3334: .Fl g ,
 3335: otherwise the session hooks.
 3336: .El
 3337: .Sh MOUSE SUPPORT
 3338: If the
 3339: .Ic mouse
 3340: option is on (the default is off),
 3341: .Nm
 3342: allows mouse events to be bound as keys.
 3343: The name of each key is made up of a mouse event (such as
 3344: .Ql MouseUp1 )
 3345: and a location suffix (one of
 3346: .Ql Pane
 3347: for the contents of a pane,
 3348: .Ql Border
 3349: for a pane border or
 3350: .Ql Status
 3351: for the status line).
 3352: The following mouse events are available:
 3353: .Bl -column "MouseDown1" "MouseDrag1" "WheelDown" -offset indent
 3354: .It Li "WheelUp" Ta "WheelDown" Ta ""
 3355: .It Li "MouseDown1" Ta "MouseUp1" Ta "MouseDrag1" Ta "MouseDragEnd1"
 3356: .It Li "MouseDown2" Ta "MouseUp2" Ta "MouseDrag2" Ta "MouseDragEnd2"
 3357: .It Li "MouseDown3" Ta "MouseUp3" Ta "MouseDrag3" Ta "MouseDragEnd3"
 3358: .It Li "DoubleClick1" Ta "DoubleClick2" Ta "DoubleClick3" Ta "WheelUp"
 3359: .It Li "TripleClick1" Ta "TripleClick2" Ta "TripleClick3" Ta "WheelDown"
 3360: .El
 3361: .Pp
 3362: Each should be suffixed with a location, for example
 3363: .Ql MouseDown1Status .
 3364: .Pp
 3365: The special token
 3366: .Ql {mouse}
 3367: or
 3368: .Ql =
 3369: may be used as
 3370: .Ar target-window
 3371: or
 3372: .Ar target-pane
 3373: in commands bound to mouse key bindings.
 3374: It resolves to the window or pane over which the mouse event took place
 3375: (for example, the window in the status line over which button 1 was released for a
 3376: .Ql MouseUp1Status
 3377: binding, or the pane over which the wheel was scrolled for a
 3378: .Ql WheelDownPane
 3379: binding).
 3380: .Pp
 3381: The
 3382: .Ic send-keys
 3383: .Fl M
 3384: flag may be used to forward a mouse event to a pane.
 3385: .Pp
 3386: The default key bindings allow the mouse to be used to select and resize panes,
 3387: to copy text and to change window using the status line.
 3388: These take effect if the
 3389: .Ic mouse
 3390: option is turned on.
 3391: .Sh FORMATS
 3392: Certain commands accept the
 3393: .Fl F
 3394: flag with a
 3395: .Ar format
 3396: argument.
 3397: This is a string which controls the output format of the command.
 3398: Replacement variables are enclosed in
 3399: .Ql #{
 3400: and
 3401: .Ql } ,
 3402: for example
 3403: .Ql #{session_name} .
 3404: The possible variables are listed in the table below, or the name of a
 3405: .Nm
 3406: option may be used for an option's value.
 3407: Some variables have a shorter alias such as
 3408: .Ql #S ,
 3409: and
 3410: .Ql ##
 3411: is replaced by a single
 3412: .Ql # .
 3413: .Pp
 3414: Conditionals are available by prefixing with
 3415: .Ql \&?
 3416: and separating two alternatives with a comma;
 3417: if the specified variable exists and is not zero, the first alternative
 3418: is chosen, otherwise the second is used.
 3419: For example
 3420: .Ql #{?session_attached,attached,not attached}
 3421: will include the string
 3422: .Ql attached
 3423: if the session is attached and the string
 3424: .Ql not attached
 3425: if it is unattached, or
 3426: .Ql #{?automatic-rename,yes,no}
 3427: will include
 3428: .Ql yes
 3429: if
 3430: .Ic automatic-rename
 3431: is enabled, or
 3432: .Ql no
 3433: if not.
 3434: .Pp
 3435: Simple comparisons may be expressed by prefixing two comma-separated
 3436: alternatives by
 3437: .Ql ==
 3438: or
 3439: .Ql !=
 3440: and a colon.
 3441: For example
 3442: .Ql #{==,#{host},myhost}
 3443: will be replaced by
 3444: .Ql 1
 3445: if running on
 3446: .Ql myhost ,
 3447: otherwise by
 3448: .Ql 0.
 3449: .Pp
 3450: A limit may be placed on the length of the resultant string by prefixing it
 3451: by an
 3452: .Ql = ,
 3453: a number and a colon.
 3454: Positive numbers count from the start of the string and negative from the end,
 3455: so
 3456: .Ql #{=5:pane_title}
 3457: will include at most the first 5 characters of the pane title, or
 3458: .Ql #{=-5:pane_title}
 3459: the last 5 characters.
 3460: Prefixing a time variable with
 3461: .Ql t:
 3462: will convert it to a string, so if
 3463: .Ql #{window_activity}
 3464: gives
 3465: .Ql 1445765102 ,
 3466: .Ql #{t:window_activity}
 3467: gives
 3468: .Ql Sun Oct 25 09:25:02 2015 .
 3469: The
 3470: .Ql b:
 3471: and
 3472: .Ql d:
 3473: prefixes are
 3474: .Xr basename 3
 3475: and
 3476: .Xr dirname 3
 3477: of the variable respectively.
 3478: A prefix of the form
 3479: .Ql s/foo/bar/:
 3480: will substitute
 3481: .Ql foo
 3482: with
 3483: .Ql bar
 3484: throughout.
 3485: .Pp
 3486: In addition, the first line of a shell command's output may be inserted using
 3487: .Ql #() .
 3488: For example,
 3489: .Ql #(uptime)
 3490: will insert the system's uptime.
 3491: When constructing formats,
 3492: .Nm
 3493: does not wait for
 3494: .Ql #()
 3495: commands to finish; instead, the previous result from running the same command is used,
 3496: or a placeholder if the command has not been run before.
 3497: Commands are executed with the
 3498: .Nm
 3499: global environment set (see the
 3500: .Sx ENVIRONMENT
 3501: section).
 3502: .Pp
 3503: The following variables are available, where appropriate:
 3504: .Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX"
 3505: .It Sy "Variable name" Ta Sy "Alias" Ta Sy "Replaced with"
 3506: .It Li "alternate_on" Ta "" Ta "If pane is in alternate screen"
 3507: .It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen"
 3508: .It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen"
 3509: .It Li "buffer_name" Ta "" Ta "Name of buffer"
 3510: .It Li "buffer_sample" Ta "" Ta "Sample of start of buffer"
 3511: .It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes"
 3512: .It Li "client_activity" Ta "" Ta "Integer time client last had activity"
 3513: .It Li "client_created" Ta "" Ta "Integer time client created"
 3514: .It Li "client_control_mode" Ta "" Ta "1 if client is in control mode"
 3515: .It Li "client_height" Ta "" Ta "Height of client"
 3516: .It Li "client_key_table" Ta "" Ta "Current key table"
 3517: .It Li "client_last_session" Ta "" Ta "Name of the client's last session"
 3518: .It Li "client_name" Ta "" Ta "Name of client"
 3519: .It Li "client_pid" Ta "" Ta "PID of client process"
 3520: .It Li "client_prefix" Ta "" Ta "1 if prefix key has been pressed"
 3521: .It Li "client_readonly" Ta "" Ta "1 if client is readonly"
 3522: .It Li "client_session" Ta "" Ta "Name of the client's session"
 3523: .It Li "client_termname" Ta "" Ta "Terminal name of client"
 3524: .It Li "client_termtype" Ta "" Ta "Terminal type of client"
 3525: .It Li "client_tty" Ta "" Ta "Pseudo terminal of client"
 3526: .It Li "client_utf8" Ta "" Ta "1 if client supports utf8"
 3527: .It Li "client_width" Ta "" Ta "Width of client"
 3528: .It Li "client_written" Ta "" Ta "Bytes written to client"
 3529: .It Li "command" Ta "" Ta "Name of command in use, if any"
 3530: .It Li "command_list_name" Ta "" Ta "Command name if listing commands"
 3531: .It Li "command_list_alias" Ta "" Ta "Command alias if listing commands"
 3532: .It Li "command_list_usage" Ta "" Ta "Command usage if listing commands"
 3533: .It Li "cursor_flag" Ta "" Ta "Pane cursor flag"
 3534: .It Li "cursor_x" Ta "" Ta "Cursor X position in pane"
 3535: .It Li "cursor_y" Ta "" Ta "Cursor Y position in pane"
 3536: .It Li "history_bytes" Ta "" Ta "Number of bytes in window history"
 3537: .It Li "history_limit" Ta "" Ta "Maximum window history lines"
 3538: .It Li "history_size" Ta "" Ta "Size of history in bytes"
 3539: .It Li "hook" Ta "" Ta "Name of running hook, if any"
 3540: .It Li "hook_pane" Ta "" Ta "ID of pane where hook was run, if any"
 3541: .It Li "hook_session" Ta "" Ta "ID of session where hook was run, if any"
 3542: .It Li "hook_session_name" Ta "" Ta "Name of session where hook was run, if any"
 3543: .It Li "hook_window" Ta "" Ta "ID of window where hook was run, if any"
 3544: .It Li "hook_window_name" Ta "" Ta "Name of window where hook was run, if any"
 3545: .It Li "host" Ta "#H" Ta "Hostname of local host"
 3546: .It Li "host_short" Ta "#h" Ta "Hostname of local host (no domain name)"
 3547: .It Li "insert_flag" Ta "" Ta "Pane insert flag"
 3548: .It Li "keypad_cursor_flag" Ta "" Ta "Pane keypad cursor flag"
 3549: .It Li "keypad_flag" Ta "" Ta "Pane keypad flag"
 3550: .It Li "line" Ta "" Ta "Line number in the list"
 3551: .It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag"
 3552: .It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag"
 3553: .It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag"
 3554: .It Li "mouse_all_flag" Ta "" Ta "Pane mouse all flag"
 3555: .It Li "pane_active" Ta "" Ta "1 if active pane"
 3556: .It Li "pane_bottom" Ta "" Ta "Bottom of pane"
 3557: .It Li "pane_current_command" Ta "" Ta "Current command if available"
 3558: .It Li "pane_current_path" Ta "" Ta "Current path if available"
 3559: .It Li "pane_dead" Ta "" Ta "1 if pane is dead"
 3560: .It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane"
 3561: .It Li "pane_height" Ta "" Ta "Height of pane"
 3562: .It Li "pane_id" Ta "#D" Ta "Unique pane ID"
 3563: .It Li "pane_in_mode" Ta "" Ta "If pane is in a mode"
 3564: .It Li "pane_input_off" Ta "" Ta "If input to pane is disabled"
 3565: .It Li "pane_index" Ta "#P" Ta "Index of pane"
 3566: .It Li "pane_left" Ta "" Ta "Left of pane"
 3567: .It Li "pane_pid" Ta "" Ta "PID of first process in pane"
 3568: .It Li "pane_right" Ta "" Ta "Right of pane"
 3569: .It Li "pane_start_command" Ta "" Ta "Command pane started with"
 3570: .It Li "pane_synchronized" Ta "" Ta "If pane is synchronized"
 3571: .It Li "pane_tabs" Ta "" Ta "Pane tab positions"
 3572: .It Li "pane_title" Ta "#T" Ta "Title of pane"
 3573: .It Li "pane_top" Ta "" Ta "Top of pane"
 3574: .It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane"
 3575: .It Li "pane_width" Ta "" Ta "Width of pane"
 3576: .It Li "pid" Ta ""  Ta "Server PID"
 3577: .It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane"
 3578: .It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane"
 3579: .It Li "scroll_position" Ta "" Ta "Scroll position in copy mode"
 3580: .It Li "session_alerts" Ta "" Ta "List of window indexes with alerts"
 3581: .It Li "session_attached" Ta "" Ta "Number of clients session is attached to"
 3582: .It Li "session_activity" Ta "" Ta "Integer time of session last activity"
 3583: .It Li "session_created" Ta "" Ta "Integer time session created"
 3584: .It Li "session_last_attached" Ta "" Ta "Integer time session last attached"
 3585: .It Li "session_group" Ta "" Ta "Name of session group"
 3586: .It Li "session_grouped" Ta "" Ta "1 if session in a group"
 3587: .It Li "session_height" Ta "" Ta "Height of session"
 3588: .It Li "session_id" Ta "" Ta "Unique session ID"
 3589: .It Li "session_many_attached" Ta "" Ta "1 if multiple clients attached"
 3590: .It Li "session_name" Ta "#S" Ta "Name of session"
 3591: .It Li "session_width" Ta "" Ta "Width of session"
 3592: .It Li "session_windows" Ta "" Ta "Number of windows in session"
 3593: .It Li "socket_path" Ta "" Ta "Server socket path"
 3594: .It Li "start_time" Ta "" Ta "Server start time"
 3595: .It Li "version" Ta "" Ta "Server version"
 3596: .It Li "window_activity" Ta "" Ta "Integer time of window last activity"
 3597: .It Li "window_activity_flag" Ta "" Ta "1 if window has activity"
 3598: .It Li "window_active" Ta "" Ta "1 if window active"
 3599: .It Li "window_bell_flag" Ta "" Ta "1 if window has bell"
 3600: .It Li "window_find_matches" Ta "" Ta "Matched data from the find-window"
 3601: .It Li "window_flags" Ta "#F" Ta "Window flags"
 3602: .It Li "window_height" Ta "" Ta "Height of window"
 3603: .It Li "window_id" Ta "" Ta "Unique window ID"
 3604: .It Li "window_index" Ta "#I" Ta "Index of window"
 3605: .It Li "window_last_flag" Ta "" Ta "1 if window is the last used"
 3606: .It Li "window_layout" Ta "" Ta "Window layout description, ignoring zoomed window panes"
 3607: .It Li "window_linked" Ta "" Ta "1 if window is linked across sessions"
 3608: .It Li "window_name" Ta "#W" Ta "Name of window"
 3609: .It Li "window_panes" Ta "" Ta "Number of panes in window"
 3610: .It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert"
 3611: .It Li "window_visible_layout" Ta "" Ta "Window layout description, respecting zoomed window panes"
 3612: .It Li "window_width" Ta "" Ta "Width of window"
 3613: .It Li "window_zoomed_flag" Ta "" Ta "1 if window is zoomed"
 3614: .It Li "wrap_flag" Ta "" Ta "Pane wrap flag"
 3615: .El
 3616: .Sh NAMES AND TITLES
 3617: .Nm
 3618: distinguishes between names and titles.
 3619: Windows and sessions have names, which may be used to specify them in targets
 3620: and are displayed in the status line and various lists: the name is the
 3621: .Nm
 3622: identifier for a window or session.
 3623: Only panes have titles.
 3624: A pane's title is typically set by the program running inside the pane and
 3625: is not modified by
 3626: .Nm .
 3627: It is the same mechanism used to set for example the
 3628: .Xr xterm 1
 3629: window title in an
 3630: .Xr X 7
 3631: window manager.
 3632: Windows themselves do not have titles - a window's title is the title of its
 3633: active pane.
 3634: .Nm
 3635: itself may set the title of the terminal in which the client is running, see
 3636: the
 3637: .Ic set-titles
 3638: option.
 3639: .Pp
 3640: A session's name is set with the
 3641: .Ic new-session
 3642: and
 3643: .Ic rename-session
 3644: commands.
 3645: A window's name is set with one of:
 3646: .Bl -enum -width Ds
 3647: .It
 3648: A command argument (such as
 3649: .Fl n
 3650: for
 3651: .Ic new-window
 3652: or
 3653: .Ic new-session ) .
 3654: .It
 3655: An escape sequence:
 3656: .Bd -literal -offset indent
 3657: $ printf '\e033kWINDOW_NAME\e033\e\e'
 3658: .Ed
 3659: .It
 3660: Automatic renaming, which sets the name to the active command in the window's
 3661: active pane.
 3662: See the
 3663: .Ic automatic-rename
 3664: option.
 3665: .El
 3666: .Pp
 3667: When a pane is first created, its title is the hostname.
 3668: A pane's title can be set via the OSC title setting sequence, for example:
 3669: .Bd -literal -offset indent
 3670: $ printf '\e033]2;My Title\e033\e\e'
 3671: .Ed
 3672: .Sh ENVIRONMENT
 3673: When the server is started,
 3674: .Nm
 3675: copies the environment into the
 3676: .Em global environment ;
 3677: in addition, each session has a
 3678: .Em session environment .
 3679: When a window is created, the session and global environments are merged.
 3680: If a variable exists in both, the value from the session environment is used.
 3681: The result is the initial environment passed to the new process.
 3682: .Pp
 3683: The
 3684: .Ic update-environment
 3685: session option may be used to update the session environment from the client
 3686: when a new session is created or an old reattached.
 3687: .Nm
 3688: also initialises the
 3689: .Ev TMUX
 3690: variable with some internal information to allow commands to be executed
 3691: from inside, and the
 3692: .Ev TERM
 3693: variable with the correct terminal setting of
 3694: .Ql screen .
 3695: .Pp
 3696: Commands to alter and view the environment are:
 3697: .Bl -tag -width Ds
 3698: .It Xo Ic set-environment
 3699: .Op Fl gru
 3700: .Op Fl t Ar target-session
 3701: .Ar name Op Ar value
 3702: .Xc
 3703: .D1 (alias: Ic setenv )
 3704: Set or unset an environment variable.
 3705: If
 3706: .Fl g
 3707: is used, the change is made in the global environment; otherwise, it is applied
 3708: to the session environment for
 3709: .Ar target-session .
 3710: The
 3711: .Fl u
 3712: flag unsets a variable.
 3713: .Fl r
 3714: indicates the variable is to be removed from the environment before starting a
 3715: new process.
 3716: .It Xo Ic show-environment
 3717: .Op Fl gs
 3718: .Op Fl t Ar target-session
 3719: .Op Ar variable
 3720: .Xc
 3721: .D1 (alias: Ic showenv )
 3722: Display the environment for
 3723: .Ar target-session
 3724: or the global environment with
 3725: .Fl g .
 3726: If
 3727: .Ar variable
 3728: is omitted, all variables are shown.
 3729: Variables removed from the environment are prefixed with
 3730: .Ql - .
 3731: If
 3732: .Fl s
 3733: is used, the output is formatted as a set of Bourne shell commands.
 3734: .El
 3735: .Sh STATUS LINE
 3736: .Nm
 3737: includes an optional status line which is displayed in the bottom line of each
 3738: terminal.
 3739: By default, the status line is enabled (it may be disabled with the
 3740: .Ic status
 3741: session option) and contains, from left-to-right: the name of the current
 3742: session in square brackets; the window list; the title of the active pane
 3743: in double quotes; and the time and date.
 3744: .Pp
 3745: The status line is made of three parts: configurable left and right sections
 3746: (which may contain dynamic content such as the time or output from a shell
 3747: command, see the
 3748: .Ic status-left ,
 3749: .Ic status-left-length ,
 3750: .Ic status-right ,
 3751: and
 3752: .Ic status-right-length
 3753: options below), and a central window list.
 3754: By default, the window list shows the index, name and (if any) flag of the
 3755: windows present in the current session in ascending numerical order.
 3756: It may be customised with the
 3757: .Ar window-status-format
 3758: and
 3759: .Ar window-status-current-format
 3760: options.
 3761: The flag is one of the following symbols appended to the window name:
 3762: .Bl -column "Symbol" "Meaning" -offset indent
 3763: .It Sy "Symbol" Ta Sy "Meaning"
 3764: .It Li "*" Ta "Denotes the current window."
 3765: .It Li "-" Ta "Marks the last window (previously selected)."
 3766: .It Li "#" Ta "Window is monitored and activity has been detected."
 3767: .It Li "!" Ta "A bell has occurred in the window."
 3768: .It Li "~" Ta "The window has been silent for the monitor-silence interval."
 3769: .It Li "M" Ta "The window contains the marked pane."
 3770: .It Li "Z" Ta "The window's active pane is zoomed."
 3771: .El
 3772: .Pp
 3773: The # symbol relates to the
 3774: .Ic monitor-activity
 3775: window option.
 3776: The window name is printed in inverted colours if an alert (bell, activity or
 3777: silence) is present.
 3778: .Pp
 3779: The colour and attributes of the status line may be configured, the entire
 3780: status line using the
 3781: .Ic status-style
 3782: session option and individual windows using the
 3783: .Ic window-status-style
 3784: window option.
 3785: .Pp
 3786: The status line is automatically refreshed at interval if it has changed, the
 3787: interval may be controlled with the
 3788: .Ic status-interval
 3789: session option.
 3790: .Pp
 3791: Commands related to the status line are as follows:
 3792: .Bl -tag -width Ds
 3793: .It Xo Ic command-prompt
 3794: .Op Fl 1i
 3795: .Op Fl I Ar inputs
 3796: .Op Fl p Ar prompts
 3797: .Op Fl t Ar target-client
 3798: .Op Ar template
 3799: .Xc
 3800: Open the command prompt in a client.
 3801: This may be used from inside
 3802: .Nm
 3803: to execute commands interactively.
 3804: .Pp
 3805: If
 3806: .Ar template
 3807: is specified, it is used as the command.
 3808: If present,
 3809: .Fl I
 3810: is a comma-separated list of the initial text for each prompt.
 3811: If
 3812: .Fl p
 3813: is given,
 3814: .Ar prompts
 3815: is a comma-separated list of prompts which are displayed in order; otherwise
 3816: a single prompt is displayed, constructed from
 3817: .Ar template
 3818: if it is present, or
 3819: .Ql \&:
 3820: if not.
 3821: .Pp
 3822: Before the command is executed, the first occurrence of the string
 3823: .Ql %%
 3824: and all occurrences of
 3825: .Ql %1
 3826: are replaced by the response to the first prompt, all
 3827: .Ql %2
 3828: are replaced with the response to the second prompt, and so on for further
 3829: prompts.
 3830: Up to nine prompt responses may be replaced
 3831: .Po
 3832: .Ql %1
 3833: to
 3834: .Ql %9
 3835: .Pc .
 3836: .Ql %%%
 3837: is like
 3838: .Ql %%
 3839: but any quotation marks are escaped.
 3840: .Pp
 3841: .Fl 1
 3842: makes the prompt only accept one key press, in this case the resulting input
 3843: is a single character.
 3844: .Fl i
 3845: executes the command every time the prompt input changes instead of when the
 3846: user exits the command prompt.
 3847: .Pp
 3848: The following keys have a special meaning in the command prompt, depending
 3849: on the value of the
 3850: .Ic status-keys
 3851: option:
 3852: .Bl -column "FunctionXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXX" "emacsX" -offset indent
 3853: .It Sy "Function" Ta Sy "vi" Ta Sy "emacs"
 3854: .It Li "Cancel command prompt" Ta "Escape" Ta "Escape"
 3855: .It Li "Delete current word" Ta "" Ta "C-w"
 3856: .It Li "Delete entire command" Ta "d" Ta "C-u"
 3857: .It Li "Delete from cursor to end" Ta "D" Ta "C-k"
 3858: .It Li "Execute command" Ta "Enter" Ta "Enter"
 3859: .It Li "Get next command from history" Ta "" Ta "Down"
 3860: .It Li "Get previous command from history" Ta "" Ta "Up"
 3861: .It Li "Insert top paste buffer" Ta "p" Ta "C-y"
 3862: .It Li "Look for completions" Ta "Tab" Ta "Tab"
 3863: .It Li "Move cursor left" Ta "h" Ta "Left"
 3864: .It Li "Move cursor right" Ta "l" Ta "Right"
 3865: .It Li "Move cursor to end" Ta "$" Ta "C-e"
 3866: .It Li "Move cursor to next word" Ta "w" Ta "M-f"
 3867: .It Li "Move cursor to previous word" Ta "b" Ta "M-b"
 3868: .It Li "Move cursor to start" Ta "0" Ta "C-a"
 3869: .It Li "Transpose characters" Ta "" Ta "C-t"
 3870: .El
 3871: .It Xo Ic confirm-before
 3872: .Op Fl p Ar prompt
 3873: .Op Fl t Ar target-client
 3874: .Ar command
 3875: .Xc
 3876: .D1 (alias: Ic confirm )
 3877: Ask for confirmation before executing
 3878: .Ar command .
 3879: If
 3880: .Fl p
 3881: is given,
 3882: .Ar prompt
 3883: is the prompt to display; otherwise a prompt is constructed from
 3884: .Ar command .
 3885: It may contain the special character sequences supported by the
 3886: .Ic status-left
 3887: option.
 3888: .Pp
 3889: This command works only from inside
 3890: .Nm .
 3891: .It Xo Ic display-message
 3892: .Op Fl p
 3893: .Op Fl c Ar target-client
 3894: .Op Fl t Ar target-pane
 3895: .Op Ar message
 3896: .Xc
 3897: .D1 (alias: Ic display )
 3898: Display a message.
 3899: If
 3900: .Fl p
 3901: is given, the output is printed to stdout, otherwise it is displayed in the
 3902: .Ar target-client
 3903: status line.
 3904: The format of
 3905: .Ar message
 3906: is described in the
 3907: .Sx FORMATS
 3908: section; information is taken from
 3909: .Ar target-pane
 3910: if
 3911: .Fl t
 3912: is given, otherwise the active pane for the session attached to
 3913: .Ar target-client .
 3914: .El
 3915: .Sh BUFFERS
 3916: .Nm
 3917: maintains a set of named
 3918: .Em paste buffers .
 3919: Each buffer may be either explicitly or automatically named.
 3920: Explicitly named buffers are named when created with the
 3921: .Ic set-buffer
 3922: or
 3923: .Ic load-buffer
 3924: commands, or by renaming an automatically named buffer with
 3925: .Ic set-buffer
 3926: .Fl n .
 3927: Automatically named buffers are given a name such as
 3928: .Ql buffer0001 ,
 3929: .Ql buffer0002
 3930: and so on.
 3931: When the
 3932: .Ic buffer-limit
 3933: option is reached, the oldest automatically named buffer is deleted.
 3934: Explicitly named buffers are not subject to
 3935: .Ic buffer-limit
 3936: and may be deleted with
 3937: .Ic delete-buffer
 3938: command.
 3939: .Pp
 3940: Buffers may be added using
 3941: .Ic copy-mode
 3942: or the
 3943: .Ic set-buffer
 3944: and
 3945: .Ic load-buffer
 3946: commands, and pasted into a window using the
 3947: .Ic paste-buffer
 3948: command.
 3949: If a buffer command is used and no buffer is specified, the most
 3950: recently added automatically named buffer is assumed.
 3951: .Pp
 3952: A configurable history buffer is also maintained for each window.
 3953: By default, up to 2000 lines are kept; this can be altered with the
 3954: .Ic history-limit
 3955: option (see the
 3956: .Ic set-option
 3957: command above).
 3958: .Pp
 3959: The buffer commands are as follows:
 3960: .Bl -tag -width Ds
 3961: .It Xo
 3962: .Ic choose-buffer
 3963: .Op Fl F Ar format
 3964: .Op Fl t Ar target-window
 3965: .Op Ar template
 3966: .Xc
 3967: Put a window into buffer choice mode, where a buffer may be chosen
 3968: interactively from a list.
 3969: After a buffer is selected,
 3970: .Ql %%
 3971: is replaced by the buffer name in
 3972: .Ar template
 3973: and the result executed as a command.
 3974: If
 3975: .Ar template
 3976: is not given, "paste-buffer -b '%%'" is used.
 3977: For the meaning of the
 3978: .Fl F
 3979: flag, see the
 3980: .Sx FORMATS
 3981: section.
 3982: This command works only if at least one client is attached.
 3983: .It Ic clear-history Op Fl t Ar target-pane
 3984: .D1 (alias: Ic clearhist )
 3985: Remove and free the history for the specified pane.
 3986: .It Ic delete-buffer Op Fl b Ar buffer-name
 3987: .D1 (alias: Ic deleteb )
 3988: Delete the buffer named
 3989: .Ar buffer-name ,
 3990: or the most recently added automatically named buffer if not specified.
 3991: .It Xo Ic list-buffers
 3992: .Op Fl F Ar format
 3993: .Xc
 3994: .D1 (alias: Ic lsb )
 3995: List the global buffers.
 3996: For the meaning of the
 3997: .Fl F
 3998: flag, see the
 3999: .Sx FORMATS
 4000: section.
 4001: .It Xo Ic load-buffer
 4002: .Op Fl b Ar buffer-name
 4003: .Ar path
 4004: .Xc
 4005: .D1 (alias: Ic loadb )
 4006: Load the contents of the specified paste buffer from
 4007: .Ar path .
 4008: .It Xo Ic paste-buffer
 4009: .Op Fl dpr
 4010: .Op Fl b Ar buffer-name
 4011: .Op Fl s Ar separator
 4012: .Op Fl t Ar target-pane
 4013: .Xc
 4014: .D1 (alias: Ic pasteb )
 4015: Insert the contents of a paste buffer into the specified pane.
 4016: If not specified, paste into the current one.
 4017: With
 4018: .Fl d ,
 4019: also delete the paste buffer.
 4020: When output, any linefeed (LF) characters in the paste buffer are replaced with
 4021: a separator, by default carriage return (CR).
 4022: A custom separator may be specified using the
 4023: .Fl s
 4024: flag.
 4025: The
 4026: .Fl r
 4027: flag means to do no replacement (equivalent to a separator of LF).
 4028: If
 4029: .Fl p
 4030: is specified, paste bracket control codes are inserted around the
 4031: buffer if the application has requested bracketed paste mode.
 4032: .It Xo Ic save-buffer
 4033: .Op Fl a
 4034: .Op Fl b Ar buffer-name
 4035: .Ar path
 4036: .Xc
 4037: .D1 (alias: Ic saveb )
 4038: Save the contents of the specified paste buffer to
 4039: .Ar path .
 4040: The
 4041: .Fl a
 4042: option appends to rather than overwriting the file.
 4043: .It Xo Ic set-buffer
 4044: .Op Fl a
 4045: .Op Fl b Ar buffer-name
 4046: .Op Fl n Ar new-buffer-name
 4047: .Ar data
 4048: .Xc
 4049: .D1 (alias: Ic setb )
 4050: Set the contents of the specified buffer to
 4051: .Ar data .
 4052: The
 4053: .Fl a
 4054: option appends to rather than overwriting the buffer.
 4055: The
 4056: .Fl n
 4057: option renames the buffer to
 4058: .Ar new-buffer-name .
 4059: .It Xo Ic show-buffer
 4060: .Op Fl b Ar buffer-name
 4061: .Xc
 4062: .D1 (alias: Ic showb )
 4063: Display the contents of the specified buffer.
 4064: .El
 4065: .Sh MISCELLANEOUS
 4066: Miscellaneous commands are as follows:
 4067: .Bl -tag -width Ds
 4068: .It Ic clock-mode Op Fl t Ar target-pane
 4069: Display a large clock.
 4070: .It Xo Ic if-shell
 4071: .Op Fl bF
 4072: .Op Fl t Ar target-pane
 4073: .Ar shell-command command
 4074: .Op Ar command
 4075: .Xc
 4076: .D1 (alias: Ic if )
 4077: Execute the first
 4078: .Ar command
 4079: if
 4080: .Ar shell-command
 4081: returns success or the second
 4082: .Ar command
 4083: otherwise.
 4084: Before being executed,
 4085: .Ar shell-command
 4086: is expanded using the rules specified in the
 4087: .Sx FORMATS
 4088: section, including those relevant to
 4089: .Ar target-pane .
 4090: With
 4091: .Fl b ,
 4092: .Ar shell-command
 4093: is run in the background.
 4094: .Pp
 4095: If
 4096: .Fl F
 4097: is given,
 4098: .Ar shell-command
 4099: is not executed but considered success if neither empty nor zero (after formats
 4100: are expanded).
 4101: .It Ic lock-server
 4102: .D1 (alias: Ic lock )
 4103: Lock each client individually by running the command specified by the
 4104: .Ic lock-command
 4105: option.
 4106: .It Xo Ic run-shell
 4107: .Op Fl b
 4108: .Op Fl t Ar target-pane
 4109: .Ar shell-command
 4110: .Xc
 4111: .D1 (alias: Ic run )
 4112: Execute
 4113: .Ar shell-command
 4114: in the background without creating a window.
 4115: Before being executed, shell-command is expanded using the rules specified in
 4116: the
 4117: .Sx FORMATS
 4118: section.
 4119: With
 4120: .Fl b ,
 4121: the command is run in the background.
 4122: After it finishes, any output to stdout is displayed in copy mode (in the pane
 4123: specified by
 4124: .Fl t
 4125: or the current pane if omitted).
 4126: If the command doesn't return success, the exit status is also displayed.
 4127: .It Xo Ic wait-for
 4128: .Op Fl L | S | U
 4129: .Ar channel
 4130: .Xc
 4131: .D1 (alias: Ic wait )
 4132: When used without options, prevents the client from exiting until woken using
 4133: .Ic wait-for
 4134: .Fl S
 4135: with the same channel.
 4136: When
 4137: .Fl L
 4138: is used, the channel is locked and any clients that try to lock the same
 4139: channel are made to wait until the channel is unlocked with
 4140: .Ic wait-for
 4141: .Fl U .
 4142: This command only works from outside
 4143: .Nm .
 4144: .El
 4145: .Sh TERMINFO EXTENSIONS
 4146: .Nm
 4147: understands some unofficial extensions to
 4148: .Xr terminfo 5 :
 4149: .Bl -tag -width Ds
 4150: .It Em Cs , Cr
 4151: Set the cursor colour.
 4152: The first takes a single string argument and is used to set the colour;
 4153: the second takes no arguments and restores the default cursor colour.
 4154: If set, a sequence such as this may be used
 4155: to change the cursor colour from inside
 4156: .Nm :
 4157: .Bd -literal -offset indent
 4158: $ printf '\e033]12;red\e033\e\e'
 4159: .Ed
 4160: .It Em \&Ss , Se
 4161: Set or reset the cursor style.
 4162: If set, a sequence such as this may be used
 4163: to change the cursor to an underline:
 4164: .Bd -literal -offset indent
 4165: $ printf '\e033[4 q'
 4166: .Ed
 4167: .Pp
 4168: If
 4169: .Em Se
 4170: is not set, \&Ss with argument 0 will be used to reset the cursor style instead.
 4171: .It Em \&Tc
 4172: Indicate that the terminal supports the
 4173: .Ql direct colour
 4174: RGB escape sequence (for example, \ee[38;2;255;255;255m).
 4175: .Pp
 4176: If supported, this is used for the OSC initialize colour escape sequence (which
 4177: may be enabled by adding the
 4178: .Ql initc
 4179: and
 4180: .Ql ccc
 4181: capabilities to the
 4182: .Nm
 4183: .Xr terminfo 5
 4184: entry).
 4185: .It Em \&Ms
 4186: Store the current buffer in the host terminal's selection (clipboard).
 4187: See the
 4188: .Em set-clipboard
 4189: option above and the
 4190: .Xr xterm 1
 4191: man page.
 4192: .El
 4193: .Sh CONTROL MODE
 4194: .Nm
 4195: offers a textual interface called
 4196: .Em control mode .
 4197: This allows applications to communicate with
 4198: .Nm
 4199: using a simple text-only protocol.
 4200: .Pp
 4201: In control mode, a client sends
 4202: .Nm
 4203: commands or command sequences terminated by newlines on standard input.
 4204: Each command will produce one block of output on standard output.
 4205: An output block consists of a
 4206: .Em %begin
 4207: line followed by the output (which may be empty).
 4208: The output block ends with a
 4209: .Em %end
 4210: or
 4211: .Em %error .
 4212: .Em %begin
 4213: and matching
 4214: .Em %end
 4215: or
 4216: .Em %error
 4217: have two arguments: an integer time (as seconds from epoch) and command number.
 4218: For example:
 4219: .Bd -literal -offset indent
 4220: %begin 1363006971 2
 4221: 0: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active)
 4222: %end 1363006971 2
 4223: .Ed
 4224: .Pp
 4225: The
 4226: .Ic refresh-client
 4227: .Fl C
 4228: command may be used to set the size of a client in control mode.
 4229: .Pp
 4230: In control mode,
 4231: .Nm
 4232: outputs notifications.
 4233: A notification will never occur inside an output block.
 4234: .Pp
 4235: The following notifications are defined:
 4236: .Bl -tag -width Ds
 4237: .It Ic %exit Op Ar reason
 4238: The
 4239: .Nm
 4240: client is exiting immediately, either because it is not attached to any session
 4241: or an error occurred.
 4242: If present,
 4243: .Ar reason
 4244: describes why the client exited.
 4245: .It Ic %layout-change Ar window-id Ar window-layout Ar window-visible-layout Ar window-flags
 4246: The layout of a window with ID
 4247: .Ar window-id
 4248: changed.
 4249: The new layout is
 4250: .Ar window-layout .
 4251: The window's visible layout is
 4252: .Ar window-visible-layout
 4253: and the window flags are
 4254: .Ar window-flags .
 4255: .It Ic %output Ar pane-id Ar value
 4256: A window pane produced output.
 4257: .Ar value
 4258: escapes non-printable characters and backslash as octal \\xxx.
 4259: .It Ic %session-changed Ar session-id Ar name
 4260: The client is now attached to the session with ID
 4261: .Ar session-id ,
 4262: which is named
 4263: .Ar name .
 4264: .It Ic %session-renamed Ar name
 4265: The current session was renamed to
 4266: .Ar name .
 4267: .It Ic %sessions-changed
 4268: A session was created or destroyed.
 4269: .It Ic %unlinked-window-add Ar window-id
 4270: The window with ID
 4271: .Ar window-id
 4272: was created but is not linked to the current session.
 4273: .It Ic %window-add Ar window-id
 4274: The window with ID
 4275: .Ar window-id
 4276: was linked to the current session.
 4277: .It Ic %window-close Ar window-id
 4278: The window with ID
 4279: .Ar window-id
 4280: closed.
 4281: .It Ic %window-renamed Ar window-id Ar name
 4282: The window with ID
 4283: .Ar window-id
 4284: was renamed to
 4285: .Ar name .
 4286: .El
 4287: .Sh FILES
 4288: .Bl -tag -width "@SYSCONFDIR@/tmux.confXXX" -compact
 4289: .It Pa ~/.tmux.conf
 4290: Default
 4291: .Nm
 4292: configuration file.
 4293: .It Pa @SYSCONFDIR@/tmux.conf
 4294: System-wide configuration file.
 4295: .El
 4296: .Sh EXAMPLES
 4297: To create a new
 4298: .Nm
 4299: session running
 4300: .Xr vi 1 :
 4301: .Pp
 4302: .Dl $ tmux new-session vi
 4303: .Pp
 4304: Most commands have a shorter form, known as an alias.
 4305: For new-session, this is
 4306: .Ic new :
 4307: .Pp
 4308: .Dl $ tmux new vi
 4309: .Pp
 4310: Alternatively, the shortest unambiguous form of a command is accepted.
 4311: If there are several options, they are listed:
 4312: .Bd -literal -offset indent
 4313: $ tmux n
 4314: ambiguous command: n, could be: new-session, new-window, next-window
 4315: .Ed
 4316: .Pp
 4317: Within an active session, a new window may be created by typing
 4318: .Ql C-b c
 4319: (Ctrl
 4320: followed by the
 4321: .Ql b
 4322: key
 4323: followed by the
 4324: .Ql c
 4325: key).
 4326: .Pp
 4327: Windows may be navigated with:
 4328: .Ql C-b 0
 4329: (to select window 0),
 4330: .Ql C-b 1
 4331: (to select window 1), and so on;
 4332: .Ql C-b n
 4333: to select the next window; and
 4334: .Ql C-b p
 4335: to select the previous window.
 4336: .Pp
 4337: A session may be detached using
 4338: .Ql C-b d
 4339: (or by an external event such as
 4340: .Xr ssh 1
 4341: disconnection) and reattached with:
 4342: .Pp
 4343: .Dl $ tmux attach-session
 4344: .Pp
 4345: Typing
 4346: .Ql C-b \&?
 4347: lists the current key bindings in the current window; up and down may be used
 4348: to navigate the list or
 4349: .Ql q
 4350: to exit from it.
 4351: .Pp
 4352: Commands to be run when the
 4353: .Nm
 4354: server is started may be placed in the
 4355: .Pa ~/.tmux.conf
 4356: configuration file.
 4357: Common examples include:
 4358: .Pp
 4359: Changing the default prefix key:
 4360: .Bd -literal -offset indent
 4361: set-option -g prefix C-a
 4362: unbind-key C-b
 4363: bind-key C-a send-prefix
 4364: .Ed
 4365: .Pp
 4366: Turning the status line off, or changing its colour:
 4367: .Bd -literal -offset indent
 4368: set-option -g status off
 4369: set-option -g status-style bg=blue
 4370: .Ed
 4371: .Pp
 4372: Setting other options, such as the default command,
 4373: or locking after 30 minutes of inactivity:
 4374: .Bd -literal -offset indent
 4375: set-option -g default-command "exec /bin/ksh"
 4376: set-option -g lock-after-time 1800
 4377: .Ed
 4378: .Pp
 4379: Creating new key bindings:
 4380: .Bd -literal -offset indent
 4381: bind-key b set-option status
 4382: bind-key / command-prompt "split-window 'exec man %%'"
 4383: bind-key S command-prompt "new-window -n %1 'ssh %1'"
 4384: .Ed
 4385: .Sh SEE ALSO
 4386: .Xr pty 4
 4387: .Sh AUTHORS
 4388: .An Nicholas Marriott Aq Mt nicholas.marriott@gmail.com

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>