1.\" $OpenBSD: tmux.1,v 1.935 2023/12/27 20:23:59 nicm Exp $ 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: December 27 2023 $ 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 2CDlNuVv 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 Fl T Ar features 32.Op Ar command Op Ar flags 33.Ek 34.Sh DESCRIPTION 35.Nm 36is a terminal multiplexer: 37it enables a number of terminals to be created, accessed, and 38controlled from a single screen. 39.Nm 40may be detached from a screen 41and continue running in the background, 42then later reattached. 43.Pp 44When 45.Nm 46is started, it creates a new 47.Em session 48with a single 49.Em window 50and displays it on screen. 51A status line at the bottom of the screen 52shows information on the current session 53and is used to enter interactive commands. 54.Pp 55A session is a single collection of 56.Em pseudo terminals 57under the management of 58.Nm . 59Each session has one or more 60windows linked to it. 61A window occupies the entire screen 62and may be split into rectangular panes, 63each of which is a separate pseudo terminal 64(the 65.Xr pty 4 66manual page documents the technical details of pseudo terminals). 67Any number of 68.Nm 69instances may connect to the same session, 70and any number of windows may be present in the same session. 71Once all sessions are killed, 72.Nm 73exits. 74.Pp 75Each session is persistent and will survive accidental disconnection 76(such as 77.Xr ssh 1 78connection timeout) or intentional detaching (with the 79.Ql C-b d 80key strokes). 81.Nm 82may be reattached using: 83.Pp 84.Dl $ tmux attach 85.Pp 86In 87.Nm , 88a session is displayed on screen by a 89.Em client 90and all sessions are managed by a single 91.Em server . 92The server and each client are separate processes which communicate through a 93socket in 94.Pa /tmp . 95.Pp 96The options are as follows: 97.Bl -tag -width "XXXXXXXXXXXX" 98.It Fl 2 99Force 100.Nm 101to assume the terminal supports 256 colours. 102This is equivalent to 103.Fl T Ar 256 . 104.It Fl C 105Start in control mode (see the 106.Sx CONTROL MODE 107section). 108Given twice 109.Xo ( Fl CC ) Xc 110disables echo. 111.It Fl c Ar shell-command 112Execute 113.Ar shell-command 114using the default shell. 115If necessary, the 116.Nm 117server will be started to retrieve the 118.Ic default-shell 119option. 120This option is for compatibility with 121.Xr sh 1 122when 123.Nm 124is used as a login shell. 125.It Fl D 126Do not start the 127.Nm 128server as a daemon. 129This also turns the 130.Ic exit-empty 131option off. 132With 133.Fl D , 134.Ar command 135may not be specified. 136.It Fl f Ar file 137Specify an alternative configuration file. 138By default, 139.Nm 140loads the system configuration file from 141.Pa /etc/tmux.conf , 142if present, then looks for a user configuration file at 143.Pa \[ti]/.tmux.conf . 144.Pp 145The configuration file is a set of 146.Nm 147commands which are executed in sequence when the server is first started. 148.Nm 149loads configuration files once when the server process has started. 150The 151.Ic source-file 152command may be used to load a file later. 153.Pp 154.Nm 155shows any error messages from commands in configuration files in the first 156session created, and continues to process the rest of the configuration file. 157.It Fl L Ar socket-name 158.Nm 159stores the server socket in a directory under 160.Ev TMUX_TMPDIR 161or 162.Pa /tmp 163if it is unset. 164The default socket is named 165.Em default . 166This option allows a different socket name to be specified, allowing several 167independent 168.Nm 169servers to be run. 170Unlike 171.Fl S 172a full path is not necessary: the sockets are all created in a directory 173.Pa tmux-UID 174under the directory given by 175.Ev TMUX_TMPDIR 176or in 177.Pa /tmp . 178The 179.Pa tmux-UID 180directory is created by 181.Nm 182and must not be world readable, writable or executable. 183.Pp 184If the socket is accidentally removed, the 185.Dv SIGUSR1 186signal may be sent to the 187.Nm 188server process to recreate it (note that this will fail if any parent 189directories are missing). 190.It Fl l 191Behave as a login shell. 192This flag currently has no effect and is for compatibility with other shells 193when using tmux as a login shell. 194.It Fl N 195Do not start the server even if the command would normally do so (for example 196.Ic new-session 197or 198.Ic start-server ) . 199.It Fl S Ar socket-path 200Specify a full alternative path to the server socket. 201If 202.Fl S 203is specified, the default socket directory is not used and any 204.Fl L 205flag is ignored. 206.It Fl T Ar features 207Set terminal features for the client. 208This is a comma-separated list of features. 209See the 210.Ic terminal-features 211option. 212.It Fl u 213Write UTF-8 output to the terminal even if the first environment 214variable of 215.Ev LC_ALL , 216.Ev LC_CTYPE , 217or 218.Ev LANG 219that is set does not contain 220.Qq UTF-8 221or 222.Qq UTF8 . 223.It Fl V 224Report the 225.Nm 226version. 227.It Fl v 228Request verbose logging. 229Log messages will be saved into 230.Pa tmux-client-PID.log 231and 232.Pa tmux-server-PID.log 233files in the current directory, where 234.Em PID 235is the PID of the server or client process. 236If 237.Fl v 238is specified twice, an additional 239.Pa tmux-out-PID.log 240file is generated with a copy of everything 241.Nm 242writes to the terminal. 243.Pp 244The 245.Dv SIGUSR2 246signal may be sent to the 247.Nm 248server process to toggle logging between on (as if 249.Fl v 250was given) and off. 251.It Ar command Op Ar flags 252This specifies one of a set of commands used to control 253.Nm , 254as described in the following sections. 255If no commands are specified, the 256.Ic new-session 257command is assumed. 258.El 259.Sh DEFAULT KEY BINDINGS 260.Nm 261may be controlled from an attached client by using a key combination of a 262prefix key, 263.Ql C-b 264(Ctrl-b) by default, followed by a command key. 265.Pp 266The default command key bindings are: 267.Pp 268.Bl -tag -width "XXXXXXXXXX" -offset indent -compact 269.It C-b 270Send the prefix key (C-b) through to the application. 271.It C-o 272Rotate the panes in the current window forwards. 273.It C-z 274Suspend the 275.Nm 276client. 277.It ! 278Break the current pane out of the window. 279.It \&" 280.\" " 281Split the current pane into two, top and bottom. 282.It # 283List all paste buffers. 284.It $ 285Rename the current session. 286.It % 287Split the current pane into two, left and right. 288.It & 289Kill the current window. 290.It \[aq] 291Prompt for a window index to select. 292.It \&( 293Switch the attached client to the previous session. 294.It \&) 295Switch the attached client to the next session. 296.It , 297Rename the current window. 298.It - 299Delete the most recently copied buffer of text. 300.It . 301Prompt for an index to move the current window. 302.It 0 to 9 303Select windows 0 to 9. 304.It : 305Enter the 306.Nm 307command prompt. 308.It ; 309Move to the previously active pane. 310.It = 311Choose which buffer to paste interactively from a list. 312.It \&? 313List all key bindings. 314.It D 315Choose a client to detach. 316.It L 317Switch the attached client back to the last session. 318.It \&[ 319Enter copy mode to copy text or view the history. 320.It \&] 321Paste the most recently copied buffer of text. 322.It c 323Create a new window. 324.It d 325Detach the current client. 326.It f 327Prompt to search for text in open windows. 328.It i 329Display some information about the current window. 330.It l 331Move to the previously selected window. 332.It m 333Mark the current pane (see 334.Ic select-pane 335.Fl m ) . 336.It M 337Clear the marked pane. 338.It n 339Change to the next window. 340.It o 341Select the next pane in the current window. 342.It p 343Change to the previous window. 344.It q 345Briefly display pane indexes. 346.It r 347Force redraw of the attached client. 348.It s 349Select a new session for the attached client interactively. 350.It t 351Show the time. 352.It w 353Choose the current window interactively. 354.It x 355Kill the current pane. 356.It z 357Toggle zoom state of the current pane. 358.It { 359Swap the current pane with the previous pane. 360.It } 361Swap the current pane with the next pane. 362.It \[ti] 363Show previous messages from 364.Nm , 365if any. 366.It Page Up 367Enter copy mode and scroll one page up. 368.It Up, Down 369.It Left, Right 370Change to the pane above, below, to the left, or to the right of the current 371pane. 372.It M-1 to M-5 373Arrange panes in one of the five preset layouts: even-horizontal, 374even-vertical, main-horizontal, main-vertical, or tiled. 375.It Space 376Arrange the current window in the next preset layout. 377.It M-n 378Move to the next window with a bell or activity marker. 379.It M-o 380Rotate the panes in the current window backwards. 381.It M-p 382Move to the previous window with a bell or activity marker. 383.It C-Up, C-Down 384.It C-Left, C-Right 385Resize the current pane in steps of one cell. 386.It M-Up, M-Down 387.It M-Left, M-Right 388Resize the current pane in steps of five cells. 389.El 390.Pp 391Key bindings may be changed with the 392.Ic bind-key 393and 394.Ic unbind-key 395commands. 396.Sh COMMAND PARSING AND EXECUTION 397.Nm 398supports a large number of commands which can be used to control its 399behaviour. 400Each command is named and can accept zero or more flags and arguments. 401They may be bound to a key with the 402.Ic bind-key 403command or run from the shell prompt, a shell script, a configuration file or 404the command prompt. 405For example, the same 406.Ic set-option 407command run from the shell prompt, from 408.Pa \[ti]/.tmux.conf 409and bound to a key may look like: 410.Bd -literal -offset indent 411$ tmux set-option -g status-style bg=cyan 412 413set-option -g status-style bg=cyan 414 415bind-key C set-option -g status-style bg=cyan 416.Ed 417.Pp 418Here, the command name is 419.Ql set-option , 420.Ql Fl g 421is a flag and 422.Ql status-style 423and 424.Ql bg=cyan 425are arguments. 426.Pp 427.Nm 428distinguishes between command parsing and execution. 429In order to execute a command, 430.Nm 431needs it to be split up into its name and arguments. 432This is command parsing. 433If a command is run from the shell, the shell parses it; from inside 434.Nm 435or from a configuration file, 436.Nm 437does. 438Examples of when 439.Nm 440parses commands are: 441.Bl -dash -offset indent 442.It 443in a configuration file; 444.It 445typed at the command prompt (see 446.Ic command-prompt ) ; 447.It 448given to 449.Ic bind-key ; 450.It 451passed as arguments to 452.Ic if-shell 453or 454.Ic confirm-before . 455.El 456.Pp 457To execute commands, each client has a 458.Ql command queue . 459A global command queue not attached to any client is used on startup 460for configuration files like 461.Pa \[ti]/.tmux.conf . 462Parsed commands added to the queue are executed in order. 463Some commands, like 464.Ic if-shell 465and 466.Ic confirm-before , 467parse their argument to create a new command which is inserted immediately 468after themselves. 469This means that arguments can be parsed twice or more - once when the parent 470command (such as 471.Ic if-shell ) 472is parsed and again when it parses and executes its command. 473Commands like 474.Ic if-shell , 475.Ic run-shell 476and 477.Ic display-panes 478stop execution of subsequent commands on the queue until something happens - 479.Ic if-shell 480and 481.Ic run-shell 482until a shell command finishes and 483.Ic display-panes 484until a key is pressed. 485For example, the following commands: 486.Bd -literal -offset indent 487new-session; new-window 488if-shell "true" "split-window" 489kill-session 490.Ed 491.Pp 492Will execute 493.Ic new-session , 494.Ic new-window , 495.Ic if-shell , 496the shell command 497.Xr true 1 , 498.Ic split-window 499and 500.Ic kill-session 501in that order. 502.Pp 503The 504.Sx COMMANDS 505section lists the 506.Nm 507commands and their arguments. 508.Sh PARSING SYNTAX 509This section describes the syntax of commands parsed by 510.Nm , 511for example in a configuration file or at the command prompt. 512Note that when commands are entered into the shell, they are parsed by the shell 513- see for example 514.Xr ksh 1 515or 516.Xr csh 1 . 517.Pp 518Each command is terminated by a newline or a semicolon (;). 519Commands separated by semicolons together form a 520.Ql command sequence 521- if a command in the sequence encounters an error, no subsequent commands are 522executed. 523.Pp 524It is recommended that a semicolon used as a command separator should be 525written as an individual token, for example from 526.Xr sh 1 : 527.Bd -literal -offset indent 528$ tmux neww \\; splitw 529.Ed 530.Pp 531Or: 532.Bd -literal -offset indent 533$ tmux neww \[aq];\[aq] splitw 534.Ed 535.Pp 536Or from the tmux command prompt: 537.Bd -literal -offset indent 538neww ; splitw 539.Ed 540.Pp 541However, a trailing semicolon is also interpreted as a command separator, 542for example in these 543.Xr sh 1 544commands: 545.Bd -literal -offset indent 546$ tmux neww\e; splitw 547.Ed 548.Pp 549Or: 550.Bd -literal -offset indent 551$ tmux \[aq]neww;\[aq] splitw 552.Ed 553.Pp 554As in these examples, when running tmux from the shell extra care must be taken 555to properly quote semicolons: 556.Bl -enum -offset Ds 557.It 558Semicolons that should be interpreted as a command separator 559should be escaped according to the shell conventions. 560For 561.Xr sh 1 562this typically means quoted (such as 563.Ql neww \[aq];\[aq] splitw ) 564or escaped (such as 565.Ql neww \e\e\e\e; splitw ) . 566.It 567Individual semicolons or trailing semicolons that should be interpreted as 568arguments should be escaped twice: once according to the shell conventions and 569a second time for 570.Nm ; 571for example: 572.Bd -literal -offset indent 573$ tmux neww \[aq]foo\e\e;\[aq] bar 574$ tmux neww foo\e\e\e\e; bar 575.Ed 576.It 577Semicolons that are not individual tokens or trailing another token should only 578be escaped once according to shell conventions; for example: 579.Bd -literal -offset indent 580$ tmux neww \[aq]foo-;-bar\[aq] 581$ tmux neww foo-\e\e;-bar 582.Ed 583.El 584.Pp 585Comments are marked by the unquoted # character - any remaining text after a 586comment is ignored until the end of the line. 587.Pp 588If the last character of a line is \e, the line is joined with the following 589line (the \e and the newline are completely removed). 590This is called line continuation and applies both inside and outside quoted 591strings and in comments, but not inside braces. 592.Pp 593Command arguments may be specified as strings surrounded by single (\[aq]) 594quotes, double quotes (\[dq]) or braces ({}). 595.\" " 596This is required when the argument contains any special character. 597Single and double quoted strings cannot span multiple lines except with line 598continuation. 599Braces can span multiple lines. 600.Pp 601Outside of quotes and inside double quotes, these replacements are performed: 602.Bl -dash -offset indent 603.It 604Environment variables preceded by $ are replaced with their value from the 605global environment (see the 606.Sx GLOBAL AND SESSION ENVIRONMENT 607section). 608.It 609A leading \[ti] or \[ti]user is expanded to the home directory of the current or 610specified user. 611.It 612\euXXXX or \euXXXXXXXX is replaced by the Unicode codepoint corresponding to 613the given four or eight digit hexadecimal number. 614.It 615When preceded (escaped) by a \e, the following characters are replaced: \ee by 616the escape character; \er by a carriage return; \en by a newline; and \et by a 617tab. 618.It 619\eooo is replaced by a character of the octal value ooo. 620Three octal digits are required, for example \e001. 621The largest valid character is \e377. 622.It 623Any other characters preceded by \e are replaced by themselves (that is, the \e 624is removed) and are not treated as having any special meaning - so for example 625\e; will not mark a command sequence and \e$ will not expand an environment 626variable. 627.El 628.Pp 629Braces are parsed as a configuration file (so conditions such as 630.Ql %if 631are processed) and then converted into a string. 632They are designed to avoid the need for additional escaping when passing a 633group of 634.Nm 635commands as an argument (for example to 636.Ic if-shell ) . 637These two examples produce an identical command - note that no escaping is 638needed when using {}: 639.Bd -literal -offset indent 640if-shell true { 641 display -p \[aq]brace-dollar-foo: }$foo\[aq] 642} 643 644if-shell true "display -p \[aq]brace-dollar-foo: }\e$foo\[aq]" 645.Ed 646.Pp 647Braces may be enclosed inside braces, for example: 648.Bd -literal -offset indent 649bind x if-shell "true" { 650 if-shell "true" { 651 display "true!" 652 } 653} 654.Ed 655.Pp 656Environment variables may be set by using the syntax 657.Ql name=value , 658for example 659.Ql HOME=/home/user . 660Variables set during parsing are added to the global environment. 661A hidden variable may be set with 662.Ql %hidden , 663for example: 664.Bd -literal -offset indent 665%hidden MYVAR=42 666.Ed 667.Pp 668Hidden variables are not passed to the environment of processes created 669by tmux. 670See the 671.Sx GLOBAL AND SESSION ENVIRONMENT 672section. 673.Pp 674Commands may be parsed conditionally by surrounding them with 675.Ql %if , 676.Ql %elif , 677.Ql %else 678and 679.Ql %endif . 680The argument to 681.Ql %if 682and 683.Ql %elif 684is expanded as a format (see 685.Sx FORMATS ) 686and if it evaluates to false (zero or empty), subsequent text is ignored until 687the closing 688.Ql %elif , 689.Ql %else 690or 691.Ql %endif . 692For example: 693.Bd -literal -offset indent 694%if "#{==:#{host},myhost}" 695set -g status-style bg=red 696%elif "#{==:#{host},myotherhost}" 697set -g status-style bg=green 698%else 699set -g status-style bg=blue 700%endif 701.Ed 702.Pp 703Will change the status line to red if running on 704.Ql myhost , 705green if running on 706.Ql myotherhost , 707or blue if running on another host. 708Conditionals may be given on one line, for example: 709.Bd -literal -offset indent 710%if #{==:#{host},myhost} set -g status-style bg=red %endif 711.Ed 712.Sh COMMANDS 713This section describes the commands supported by 714.Nm . 715Most commands accept the optional 716.Fl t 717(and sometimes 718.Fl s ) 719argument with one of 720.Ar target-client , 721.Ar target-session , 722.Ar target-window , 723or 724.Ar target-pane . 725These specify the client, session, window or pane which a command should affect. 726.Pp 727.Ar target-client 728should be the name of the client, 729typically the 730.Xr pty 4 731file to which the client is connected, for example either of 732.Pa /dev/ttyp1 733or 734.Pa ttyp1 735for the client attached to 736.Pa /dev/ttyp1 . 737If no client is specified, 738.Nm 739attempts to work out the client currently in use; if that fails, an error is 740reported. 741Clients may be listed with the 742.Ic list-clients 743command. 744.Pp 745.Ar target-session 746is tried as, in order: 747.Bl -enum -offset Ds 748.It 749A session ID prefixed with a $. 750.It 751An exact name of a session (as listed by the 752.Ic list-sessions 753command). 754.It 755The start of a session name, for example 756.Ql mysess 757would match a session named 758.Ql mysession . 759.It 760An 761.Xr fnmatch 3 762pattern which is matched against the session name. 763.El 764.Pp 765If the session name is prefixed with an 766.Ql = , 767only an exact match is accepted (so 768.Ql =mysess 769will only match exactly 770.Ql mysess , 771not 772.Ql mysession ) . 773.Pp 774If a single session is found, it is used as the target session; multiple matches 775produce an error. 776If a session is omitted, the current session is used if available; if no 777current session is available, the most recently used is chosen. 778.Pp 779.Ar target-window 780(or 781.Ar src-window 782or 783.Ar dst-window ) 784specifies a window in the form 785.Em session Ns \&: Ns Em window . 786.Em session 787follows the same rules as for 788.Ar target-session , 789and 790.Em window 791is looked for in order as: 792.Bl -enum -offset Ds 793.It 794A special token, listed below. 795.It 796A window index, for example 797.Ql mysession:1 798is window 1 in session 799.Ql mysession . 800.It 801A window ID, such as @1. 802.It 803An exact window name, such as 804.Ql mysession:mywindow . 805.It 806The start of a window name, such as 807.Ql mysession:mywin . 808.It 809As an 810.Xr fnmatch 3 811pattern matched against the window name. 812.El 813.Pp 814Like sessions, a 815.Ql = 816prefix will do an exact match only. 817An empty window name specifies the next unused index if appropriate (for 818example the 819.Ic new-window 820and 821.Ic link-window 822commands) 823otherwise the current window in 824.Em session 825is chosen. 826.Pp 827The following special tokens are available to indicate particular windows. 828Each has a single-character alternative form. 829.Bl -column "XXXXXXXXXX" "X" 830.It Sy "Token" Ta Sy "" Ta Sy "Meaning" 831.It Li "{start}" Ta "^" Ta "The lowest-numbered window" 832.It Li "{end}" Ta "$" Ta "The highest-numbered window" 833.It Li "{last}" Ta "!" Ta "The last (previously current) window" 834.It Li "{next}" Ta "+" Ta "The next window by number" 835.It Li "{previous}" Ta "-" Ta "The previous window by number" 836.El 837.Pp 838.Ar target-pane 839(or 840.Ar src-pane 841or 842.Ar dst-pane ) 843may be a pane ID or takes a similar form to 844.Ar target-window 845but with the optional addition of a period followed by a pane index or pane ID, 846for example: 847.Ql mysession:mywindow.1 . 848If the pane index is omitted, the currently active pane in the specified 849window is used. 850The following special tokens are available for the pane index: 851.Bl -column "XXXXXXXXXXXXXX" "X" 852.It Sy "Token" Ta Sy "" Ta Sy "Meaning" 853.It Li "{last}" Ta "!" Ta "The last (previously active) pane" 854.It Li "{next}" Ta "+" Ta "The next pane by number" 855.It Li "{previous}" Ta "-" Ta "The previous pane by number" 856.It Li "{top}" Ta "" Ta "The top pane" 857.It Li "{bottom}" Ta "" Ta "The bottom pane" 858.It Li "{left}" Ta "" Ta "The leftmost pane" 859.It Li "{right}" Ta "" Ta "The rightmost pane" 860.It Li "{top-left}" Ta "" Ta "The top-left pane" 861.It Li "{top-right}" Ta "" Ta "The top-right pane" 862.It Li "{bottom-left}" Ta "" Ta "The bottom-left pane" 863.It Li "{bottom-right}" Ta "" Ta "The bottom-right pane" 864.It Li "{up-of}" Ta "" Ta "The pane above the active pane" 865.It Li "{down-of}" Ta "" Ta "The pane below the active pane" 866.It Li "{left-of}" Ta "" Ta "The pane to the left of the active pane" 867.It Li "{right-of}" Ta "" Ta "The pane to the right of the active pane" 868.El 869.Pp 870The tokens 871.Ql + 872and 873.Ql - 874may be followed by an offset, for example: 875.Bd -literal -offset indent 876select-window -t:+2 877.Ed 878.Pp 879In addition, 880.Em target-session , 881.Em target-window 882or 883.Em target-pane 884may consist entirely of the token 885.Ql {mouse} 886(alternative form 887.Ql = ) 888to specify the session, window or pane where the most recent mouse event 889occurred (see the 890.Sx MOUSE SUPPORT 891section) 892or 893.Ql {marked} 894(alternative form 895.Ql \[ti] ) 896to specify the marked pane (see 897.Ic select-pane 898.Fl m ) . 899.Pp 900Sessions, window and panes are each numbered with a unique ID; session IDs are 901prefixed with a 902.Ql $ , 903windows with a 904.Ql @ , 905and panes with a 906.Ql % . 907These are unique and are unchanged for the life of the session, window or pane 908in the 909.Nm 910server. 911The pane ID is passed to the child process of the pane in the 912.Ev TMUX_PANE 913environment variable. 914IDs may be displayed using the 915.Ql session_id , 916.Ql window_id , 917or 918.Ql pane_id 919formats (see the 920.Sx FORMATS 921section) and the 922.Ic display-message , 923.Ic list-sessions , 924.Ic list-windows 925or 926.Ic list-panes 927commands. 928.Pp 929.Ar shell-command 930arguments are 931.Xr sh 1 932commands. 933This may be a single argument passed to the shell, for example: 934.Bd -literal -offset indent 935new-window \[aq]vi \[ti]/.tmux.conf\[aq] 936.Ed 937.Pp 938Will run: 939.Bd -literal -offset indent 940/bin/sh -c \[aq]vi \[ti]/.tmux.conf\[aq] 941.Ed 942.Pp 943Additionally, the 944.Ic new-window , 945.Ic new-session , 946.Ic split-window , 947.Ic respawn-window 948and 949.Ic respawn-pane 950commands allow 951.Ar shell-command 952to be given as multiple arguments and executed directly (without 953.Ql sh -c ) . 954This can avoid issues with shell quoting. 955For example: 956.Bd -literal -offset indent 957$ tmux new-window vi \[ti]/.tmux.conf 958.Ed 959.Pp 960Will run 961.Xr vi 1 962directly without invoking the shell. 963.Pp 964.Ar command 965.Op Ar argument ... 966refers to a 967.Nm 968command, either passed with the command and arguments separately, for example: 969.Bd -literal -offset indent 970bind-key F1 set-option status off 971.Ed 972.Pp 973Or passed as a single string argument in 974.Pa .tmux.conf , 975for example: 976.Bd -literal -offset indent 977bind-key F1 { set-option status off } 978.Ed 979.Pp 980Example 981.Nm 982commands include: 983.Bd -literal -offset indent 984refresh-client -t/dev/ttyp2 985 986rename-session -tfirst newname 987 988set-option -wt:0 monitor-activity on 989 990new-window ; split-window -d 991 992bind-key R source-file \[ti]/.tmux.conf \e; \e 993 display-message "source-file done" 994.Ed 995.Pp 996Or from 997.Xr sh 1 : 998.Bd -literal -offset indent 999$ tmux kill-window -t :1 1000 1001$ tmux new-window \e; split-window -d 1002 1003$ tmux new-session -d \[aq]vi \[ti]/.tmux.conf\[aq] \e; split-window -d \e; attach 1004.Ed 1005.Sh CLIENTS AND SESSIONS 1006The 1007.Nm 1008server manages clients, sessions, windows and panes. 1009Clients are attached to sessions to interact with them, either 1010when they are created with the 1011.Ic new-session 1012command, or later with the 1013.Ic attach-session 1014command. 1015Each session has one or more windows 1016.Em linked 1017into it. 1018Windows may be linked to multiple sessions and are made up of one or 1019more panes, 1020each of which contains a pseudo terminal. 1021Commands for creating, linking and otherwise manipulating windows 1022are covered 1023in the 1024.Sx WINDOWS AND PANES 1025section. 1026.Pp 1027The following commands are available to manage clients and sessions: 1028.Bl -tag -width Ds 1029.Tg attach 1030.It Xo Ic attach-session 1031.Op Fl dErx 1032.Op Fl c Ar working-directory 1033.Op Fl f Ar flags 1034.Op Fl t Ar target-session 1035.Xc 1036.D1 Pq alias: Ic attach 1037If run from outside 1038.Nm , 1039create a new client in the current terminal and attach it to 1040.Ar target-session . 1041If used from inside, switch the current client. 1042If 1043.Fl d 1044is specified, any other clients attached to the session are detached. 1045If 1046.Fl x 1047is given, send 1048.Dv SIGHUP 1049to the parent process of the client as well as 1050detaching the client, typically causing it to exit. 1051.Fl f 1052sets a comma-separated list of client flags. 1053The flags are: 1054.Bl -tag -width Ds 1055.It active-pane 1056the client has an independent active pane 1057.It ignore-size 1058the client does not affect the size of other clients 1059.It no-output 1060the client does not receive pane output in control mode 1061.It pause-after=seconds 1062output is paused once the pane is 1063.Ar seconds 1064behind in control mode 1065.It read-only 1066the client is read-only 1067.It wait-exit 1068wait for an empty line input before exiting in control mode 1069.El 1070.Pp 1071A leading 1072.Ql \&! 1073turns a flag off if the client is already attached. 1074.Fl r 1075is an alias for 1076.Fl f 1077.Ar read-only,ignore-size . 1078When a client is read-only, only keys bound to the 1079.Ic detach-client 1080or 1081.Ic switch-client 1082commands have any effect. 1083A client with the 1084.Ar active-pane 1085flag allows the active pane to be selected independently of the window's active 1086pane used by clients without the flag. 1087This only affects the cursor position and commands issued from the client; 1088other features such as hooks and styles continue to use the window's active 1089pane. 1090.Pp 1091If no server is started, 1092.Ic attach-session 1093will attempt to start it; this will fail unless sessions are created in the 1094configuration file. 1095.Pp 1096The 1097.Ar target-session 1098rules for 1099.Ic attach-session 1100are slightly adjusted: if 1101.Nm 1102needs to select the most recently used session, it will prefer the most 1103recently used 1104.Em unattached 1105session. 1106.Pp 1107.Fl c 1108will set the session working directory (used for new windows) to 1109.Ar working-directory . 1110.Pp 1111If 1112.Fl E 1113is used, the 1114.Ic update-environment 1115option will not be applied. 1116.Tg detach 1117.It Xo Ic detach-client 1118.Op Fl aP 1119.Op Fl E Ar shell-command 1120.Op Fl s Ar target-session 1121.Op Fl t Ar target-client 1122.Xc 1123.D1 Pq alias: Ic detach 1124Detach the current client if bound to a key, the client specified with 1125.Fl t , 1126or all clients currently attached to the session specified by 1127.Fl s . 1128The 1129.Fl a 1130option kills all but the client given with 1131.Fl t . 1132If 1133.Fl P 1134is given, send 1135.Dv SIGHUP 1136to the parent process of the client, typically causing it 1137to exit. 1138With 1139.Fl E , 1140run 1141.Ar shell-command 1142to replace the client. 1143.Tg has 1144.It Ic has-session Op Fl t Ar target-session 1145.D1 Pq alias: Ic has 1146Report an error and exit with 1 if the specified session does not exist. 1147If it does exist, exit with 0. 1148.It Ic kill-server 1149Kill the 1150.Nm 1151server and clients and destroy all sessions. 1152.It Xo Ic kill-session 1153.Op Fl aC 1154.Op Fl t Ar target-session 1155.Xc 1156Destroy the given session, closing any windows linked to it and no other 1157sessions, and detaching all clients attached to it. 1158If 1159.Fl a 1160is given, all sessions but the specified one is killed. 1161The 1162.Fl C 1163flag clears alerts (bell, activity, or silence) in all windows linked to the 1164session. 1165.Tg lsc 1166.It Xo Ic list-clients 1167.Op Fl F Ar format 1168.Op Fl f Ar filter 1169.Op Fl t Ar target-session 1170.Xc 1171.D1 Pq alias: Ic lsc 1172List all clients attached to the server. 1173.Fl F 1174specifies the format of each line and 1175.Fl f 1176a filter. 1177Only clients for which the filter is true are shown. 1178See the 1179.Sx FORMATS 1180section. 1181If 1182.Ar target-session 1183is specified, list only clients connected to that session. 1184.Tg lscm 1185.It Xo Ic list-commands 1186.Op Fl F Ar format 1187.Op Ar command 1188.Xc 1189.D1 Pq alias: Ic lscm 1190List the syntax of 1191.Ar command 1192or - if omitted - of all commands supported by 1193.Nm . 1194.Tg ls 1195.It Xo Ic list-sessions 1196.Op Fl F Ar format 1197.Op Fl f Ar filter 1198.Xc 1199.D1 Pq alias: Ic ls 1200List all sessions managed by the server. 1201.Fl F 1202specifies the format of each line and 1203.Fl f 1204a filter. 1205Only sessions for which the filter is true are shown. 1206See the 1207.Sx FORMATS 1208section. 1209.Tg lockc 1210.It Ic lock-client Op Fl t Ar target-client 1211.D1 Pq alias: Ic lockc 1212Lock 1213.Ar target-client , 1214see the 1215.Ic lock-server 1216command. 1217.Tg locks 1218.It Ic lock-session Op Fl t Ar target-session 1219.D1 Pq alias: Ic locks 1220Lock all clients attached to 1221.Ar target-session . 1222.Tg new 1223.It Xo Ic new-session 1224.Op Fl AdDEPX 1225.Op Fl c Ar start-directory 1226.Op Fl e Ar environment 1227.Op Fl f Ar flags 1228.Op Fl F Ar format 1229.Op Fl n Ar window-name 1230.Op Fl s Ar session-name 1231.Op Fl t Ar group-name 1232.Op Fl x Ar width 1233.Op Fl y Ar height 1234.Op Ar shell-command 1235.Xc 1236.D1 Pq alias: Ic new 1237Create a new session with name 1238.Ar session-name . 1239.Pp 1240The new session is attached to the current terminal unless 1241.Fl d 1242is given. 1243.Ar window-name 1244and 1245.Ar shell-command 1246are the name of and shell command to execute in the initial window. 1247With 1248.Fl d , 1249the initial size comes from the global 1250.Ic default-size 1251option; 1252.Fl x 1253and 1254.Fl y 1255can be used to specify a different size. 1256.Ql - 1257uses the size of the current client if any. 1258If 1259.Fl x 1260or 1261.Fl y 1262is given, the 1263.Ic default-size 1264option is set for the session. 1265.Fl f 1266sets a comma-separated list of client flags (see 1267.Ic attach-session ) . 1268.Pp 1269If run from a terminal, any 1270.Xr termios 4 1271special characters are saved and used for new windows in the new session. 1272.Pp 1273The 1274.Fl A 1275flag makes 1276.Ic new-session 1277behave like 1278.Ic attach-session 1279if 1280.Ar session-name 1281already exists; 1282if 1283.Fl A 1284is given, 1285.Fl D 1286behaves like 1287.Fl d 1288to 1289.Ic attach-session , 1290and 1291.Fl X 1292behaves like 1293.Fl x 1294to 1295.Ic attach-session . 1296.Pp 1297If 1298.Fl t 1299is given, it specifies a 1300.Ic session group . 1301Sessions in the same group share the same set of windows - new windows are 1302linked to all sessions in the group and any windows closed removed from all 1303sessions. 1304The current and previous window and any session options remain independent and 1305any session in a group may be killed without affecting the others. 1306The 1307.Ar group-name 1308argument may be: 1309.Bl -enum -width Ds 1310.It 1311the name of an existing group, in which case the new session is added to that 1312group; 1313.It 1314the name of an existing session - the new session is added to the same group 1315as that session, creating a new group if necessary; 1316.It 1317the name for a new group containing only the new session. 1318.El 1319.Pp 1320.Fl n 1321and 1322.Ar shell-command 1323are invalid if 1324.Fl t 1325is used. 1326.Pp 1327The 1328.Fl P 1329option prints information about the new session after it has been created. 1330By default, it uses the format 1331.Ql #{session_name}:\& 1332but a different format may be specified with 1333.Fl F . 1334.Pp 1335If 1336.Fl E 1337is used, the 1338.Ic update-environment 1339option will not be applied. 1340.Fl e 1341takes the form 1342.Ql VARIABLE=value 1343and sets an environment variable for the newly created session; it may be 1344specified multiple times. 1345.Tg refresh 1346.It Xo Ic refresh-client 1347.Op Fl cDLRSU 1348.Op Fl A Ar pane:state 1349.Op Fl B Ar name:what:format 1350.Op Fl C Ar size 1351.Op Fl f Ar flags 1352.Op Fl l Op Ar target-pane 1353.Op Fl t Ar target-client 1354.Op Ar adjustment 1355.Xc 1356.D1 Pq alias: Ic refresh 1357Refresh the current client if bound to a key, or a single client if one is given 1358with 1359.Fl t . 1360If 1361.Fl S 1362is specified, only update the client's status line. 1363.Pp 1364The 1365.Fl U , 1366.Fl D , 1367.Fl L 1368.Fl R , 1369and 1370.Fl c 1371flags allow the visible portion of a window which is larger than the client 1372to be changed. 1373.Fl U 1374moves the visible part up by 1375.Ar adjustment 1376rows and 1377.Fl D 1378down, 1379.Fl L 1380left by 1381.Ar adjustment 1382columns and 1383.Fl R 1384right. 1385.Fl c 1386returns to tracking the cursor automatically. 1387If 1388.Ar adjustment 1389is omitted, 1 is used. 1390Note that the visible position is a property of the client not of the 1391window, changing the current window in the attached session will reset 1392it. 1393.Pp 1394.Fl C 1395sets the width and height of a control mode client or of a window for a 1396control mode client, 1397.Ar size 1398must be one of 1399.Ql widthxheight 1400or 1401.Ql window ID:widthxheight , 1402for example 1403.Ql 80x24 1404or 1405.Ql @0:80x24 . 1406.Fl A 1407allows a control mode client to trigger actions on a pane. 1408The argument is a pane ID (with leading 1409.Ql % ) , 1410a colon, then one of 1411.Ql on , 1412.Ql off , 1413.Ql continue 1414or 1415.Ql pause . 1416If 1417.Ql off , 1418.Nm 1419will not send output from the pane to the client and if all clients have turned 1420the pane off, will stop reading from the pane. 1421If 1422.Ql continue , 1423.Nm 1424will return to sending output to the pane if it was paused (manually or with the 1425.Ar pause-after 1426flag). 1427If 1428.Ql pause , 1429.Nm 1430will pause the pane. 1431.Fl A 1432may be given multiple times for different panes. 1433.Pp 1434.Fl B 1435sets a subscription to a format for a control mode client. 1436The argument is split into three items by colons: 1437.Ar name 1438is a name for the subscription; 1439.Ar what 1440is a type of item to subscribe to; 1441.Ar format 1442is the format. 1443After a subscription is added, changes to the format are reported with the 1444.Ic %subscription-changed 1445notification, at most once a second. 1446If only the name is given, the subscription is removed. 1447.Ar what 1448may be empty to check the format only for the attached session, or one of: 1449a pane ID such as 1450.Ql %0 ; 1451.Ql %* 1452for all panes in the attached session; 1453a window ID such as 1454.Ql @0 ; 1455or 1456.Ql @* 1457for all windows in the attached session. 1458.Pp 1459.Fl f 1460sets a comma-separated list of client flags, see 1461.Ic attach-session . 1462.Pp 1463.Fl l 1464requests the clipboard from the client using the 1465.Xr xterm 1 1466escape sequence. 1467If 1468.Ar target-pane 1469is given, the clipboard is sent (in encoded form), otherwise it is stored in a 1470new paste buffer. 1471.Pp 1472.Fl L , 1473.Fl R , 1474.Fl U 1475and 1476.Fl D 1477move the visible portion of the window left, right, up or down 1478by 1479.Ar adjustment , 1480if the window is larger than the client. 1481.Fl c 1482resets so that the position follows the cursor. 1483See the 1484.Ic window-size 1485option. 1486.Tg rename 1487.It Xo Ic rename-session 1488.Op Fl t Ar target-session 1489.Ar new-name 1490.Xc 1491.D1 Pq alias: Ic rename 1492Rename the session to 1493.Ar new-name . 1494.It Xo Ic server-access 1495.Op Fl adlrw 1496.Op Ar user 1497.Xc 1498Change the access or read/write permission of 1499.Ar user . 1500The user running the 1501.Nm 1502server (its owner) and the root user cannot be changed and are always 1503permitted access. 1504.Pp 1505.Fl a 1506and 1507.Fl d 1508are used to give or revoke access for the specified user. 1509If the user is already attached, the 1510.Fl d 1511flag causes their clients to be detached. 1512.Pp 1513.Fl r 1514and 1515.Fl w 1516change the permissions for 1517.Ar user : 1518.Fl r 1519makes their clients read-only and 1520.Fl w 1521writable. 1522.Fl l 1523lists current access permissions. 1524.Pp 1525By default, the access list is empty and 1526.Nm 1527creates sockets with file system permissions preventing access by any user 1528other than the owner (and root). 1529These permissions must be changed manually. 1530Great care should be taken not to allow access to untrusted users even 1531read-only. 1532.Tg showmsgs 1533.It Xo Ic show-messages 1534.Op Fl JT 1535.Op Fl t Ar target-client 1536.Xc 1537.D1 Pq alias: Ic showmsgs 1538Show server messages or information. 1539Messages are stored, up to a maximum of the limit set by the 1540.Ar message-limit 1541server option. 1542.Fl J 1543and 1544.Fl T 1545show debugging information about jobs and terminals. 1546.Tg source 1547.It Xo Ic source-file 1548.Op Fl Fnqv 1549.Op Fl t Ar target-pane 1550.Ar path ... 1551.Xc 1552.D1 Pq alias: Ic source 1553Execute commands from one or more files specified by 1554.Ar path 1555(which may be 1556.Xr glob 7 1557patterns). 1558If 1559.Fl F 1560is present, then 1561.Ar path 1562is expanded as a format. 1563If 1564.Fl q 1565is given, no error will be returned if 1566.Ar path 1567does not exist. 1568With 1569.Fl n , 1570the file is parsed but no commands are executed. 1571.Fl v 1572shows the parsed commands and line numbers if possible. 1573.Tg start 1574.It Ic start-server 1575.D1 Pq alias: Ic start 1576Start the 1577.Nm 1578server, if not already running, without creating any sessions. 1579.Pp 1580Note that as by default the 1581.Nm 1582server will exit with no sessions, this is only useful if a session is created 1583in 1584.Pa \[ti]/.tmux.conf , 1585.Ic exit-empty 1586is turned off, or another command is run as part of the same command sequence. 1587For example: 1588.Bd -literal -offset indent 1589$ tmux start \\; show -g 1590.Ed 1591.Tg suspendc 1592.It Xo Ic suspend-client 1593.Op Fl t Ar target-client 1594.Xc 1595.D1 Pq alias: Ic suspendc 1596Suspend a client by sending 1597.Dv SIGTSTP 1598(tty stop). 1599.Tg switchc 1600.It Xo Ic switch-client 1601.Op Fl ElnprZ 1602.Op Fl c Ar target-client 1603.Op Fl t Ar target-session 1604.Op Fl T Ar key-table 1605.Xc 1606.D1 Pq alias: Ic switchc 1607Switch the current session for client 1608.Ar target-client 1609to 1610.Ar target-session . 1611As a special case, 1612.Fl t 1613may refer to a pane (a target that contains 1614.Ql \&: , 1615.Ql \&. 1616or 1617.Ql % ) , 1618to change session, window and pane. 1619In that case, 1620.Fl Z 1621keeps the window zoomed if it was zoomed. 1622If 1623.Fl l , 1624.Fl n 1625or 1626.Fl p 1627is used, the client is moved to the last, next or previous session 1628respectively. 1629.Fl r 1630toggles the client 1631.Ic read-only 1632and 1633.Ic ignore-size 1634flags (see the 1635.Ic attach-session 1636command). 1637.Pp 1638If 1639.Fl E 1640is used, 1641.Ic update-environment 1642option will not be applied. 1643.Pp 1644.Fl T 1645sets the client's key table; the next key from the client will be interpreted 1646from 1647.Ar key-table . 1648This may be used to configure multiple prefix keys, or to bind commands to 1649sequences of keys. 1650For example, to make typing 1651.Ql abc 1652run the 1653.Ic list-keys 1654command: 1655.Bd -literal -offset indent 1656bind-key -Ttable2 c list-keys 1657bind-key -Ttable1 b switch-client -Ttable2 1658bind-key -Troot a switch-client -Ttable1 1659.Ed 1660.El 1661.Sh WINDOWS AND PANES 1662Each window displayed by 1663.Nm 1664may be split into one or more 1665.Em panes ; 1666each pane takes up a certain area of the display and is a separate terminal. 1667A window may be split into panes using the 1668.Ic split-window 1669command. 1670Windows may be split horizontally (with the 1671.Fl h 1672flag) or vertically. 1673Panes may be resized with the 1674.Ic resize-pane 1675command (bound to 1676.Ql C-Up , 1677.Ql C-Down 1678.Ql C-Left 1679and 1680.Ql C-Right 1681by default), the current pane may be changed with the 1682.Ic select-pane 1683command and the 1684.Ic rotate-window 1685and 1686.Ic swap-pane 1687commands may be used to swap panes without changing their position. 1688Panes are numbered beginning from zero in the order they are created. 1689.Pp 1690By default, a 1691.Nm 1692pane permits direct access to the terminal contained in the pane. 1693A pane may also be put into one of several modes: 1694.Bl -dash -offset indent 1695.It 1696Copy mode, which permits a section of a window or its 1697history to be copied to a 1698.Em paste buffer 1699for later insertion into another window. 1700This mode is entered with the 1701.Ic copy-mode 1702command, bound to 1703.Ql \&[ 1704by default. 1705Copied text can be pasted with the 1706.Ic paste-buffer 1707command, bound to 1708.Ql \&] . 1709.It 1710View mode, which is like copy mode but is entered when a command that produces 1711output, such as 1712.Ic list-keys , 1713is executed from a key binding. 1714.It 1715Choose mode, which allows an item to be chosen from a list. 1716This may be a client, a session or window or pane, or a buffer. 1717This mode is entered with the 1718.Ic choose-buffer , 1719.Ic choose-client 1720and 1721.Ic choose-tree 1722commands. 1723.El 1724.Pp 1725In copy mode an indicator is displayed in the top-right corner of the pane with 1726the current position and the number of lines in the history. 1727.Pp 1728Commands are sent to copy mode using the 1729.Fl X 1730flag to the 1731.Ic send-keys 1732command. 1733When a key is pressed, copy mode automatically uses one of two key tables, 1734depending on the 1735.Ic mode-keys 1736option: 1737.Ic copy-mode 1738for emacs, or 1739.Ic copy-mode-vi 1740for vi. 1741Key tables may be viewed with the 1742.Ic list-keys 1743command. 1744.Pp 1745The following commands are supported in copy mode: 1746.Bl -tag -width Ds 1747.It Xo 1748.Ic append-selection 1749.Xc 1750Append the selection to the top paste buffer. 1751.It Xo 1752.Ic append-selection-and-cancel 1753(vi: A) 1754.Xc 1755Append the selection to the top paste buffer and exit copy mode. 1756.It Xo 1757.Ic back-to-indentation 1758(vi: ^) 1759(emacs: M-m) 1760.Xc 1761Move the cursor back to the indentation. 1762.It Xo 1763.Ic begin-selection 1764(vi: Space) 1765(emacs: C-Space) 1766.Xc 1767Begin selection. 1768.It Xo 1769.Ic bottom-line 1770(vi: L) 1771.Xc 1772Move to the bottom line. 1773.It Xo 1774.Ic cancel 1775(vi: q) 1776(emacs: Escape) 1777.Xc 1778Exit copy mode. 1779.It Xo 1780.Ic clear-selection 1781(vi: Escape) 1782(emacs: C-g) 1783.Xc 1784Clear the current selection. 1785.It Xo 1786.Ic copy-end-of-line 1787.Op Ar prefix 1788.Xc 1789Copy from the cursor position to the end of the line. 1790.Ar prefix 1791is used to name the new paste buffer. 1792.It Xo 1793.Ic copy-end-of-line-and-cancel 1794.Op Ar prefix 1795.Xc 1796Copy from the cursor position and exit copy mode. 1797.It Xo 1798.Ic copy-line 1799.Op Ar prefix 1800.Xc 1801Copy the entire line. 1802.It Xo 1803.Ic copy-line-and-cancel 1804.Op Ar prefix 1805.Xc 1806Copy the entire line and exit copy mode. 1807.It Xo 1808.Ic copy-selection 1809.Op Ar prefix 1810.Xc 1811Copies the current selection. 1812.It Xo 1813.Ic copy-selection-and-cancel 1814.Op Ar prefix 1815(vi: Enter) 1816(emacs: M-w) 1817.Xc 1818Copy the current selection and exit copy mode. 1819.It Xo 1820.Ic cursor-down 1821(vi: j) 1822(emacs: Down) 1823.Xc 1824Move the cursor down. 1825.It Xo 1826.Ic cursor-left 1827(vi: h) 1828(emacs: Left) 1829.Xc 1830Move the cursor left. 1831.It Xo 1832.Ic cursor-right 1833(vi: l) 1834(emacs: Right) 1835.Xc 1836Move the cursor right. 1837.It Xo 1838.Ic cursor-up 1839(vi: k) 1840(emacs: Up) 1841.Xc 1842Move the cursor up. 1843.It Xo 1844.Ic end-of-line 1845(vi: $) 1846(emacs: C-e) 1847.Xc 1848Move the cursor to the end of the line. 1849.It Xo 1850.Ic goto-line 1851.Ar line 1852(vi: :) 1853(emacs: g) 1854.Xc 1855Move the cursor to a specific line. 1856.It Xo 1857.Ic history-bottom 1858(vi: G) 1859(emacs: M->) 1860.Xc 1861Scroll to the bottom of the history. 1862.It Xo 1863.Ic history-top 1864(vi: g) 1865(emacs: M-<) 1866.Xc 1867Scroll to the top of the history. 1868.It Xo 1869.Ic jump-again 1870(vi: ;) 1871(emacs: ;) 1872.Xc 1873Repeat the last jump. 1874.It Xo 1875.Ic jump-backward 1876.Ar to 1877(vi: F) 1878(emacs: F) 1879.Xc 1880Jump backwards to the specified text. 1881.It Xo 1882.Ic jump-forward 1883.Ar to 1884(vi: f) 1885(emacs: f) 1886.Xc 1887Jump forward to the specified text. 1888.It Xo 1889.Ic jump-to-mark 1890(vi: M-x) 1891(emacs: M-x) 1892.Xc 1893Jump to the last mark. 1894.It Xo 1895.Ic middle-line 1896(vi: M) 1897(emacs: M-r) 1898.Xc 1899Move to the middle line. 1900.It Xo 1901.Ic next-matching-bracket 1902(vi: %) 1903(emacs: M-C-f) 1904.Xc 1905Move to the next matching bracket. 1906.It Xo 1907.Ic next-paragraph 1908(vi: }) 1909(emacs: M-}) 1910.Xc 1911Move to the next paragraph. 1912.It Xo 1913.Ic next-prompt 1914.Op Fl o 1915.Xc 1916Move to the next prompt. 1917.It Xo 1918.Ic next-word 1919(vi: w) 1920.Xc 1921Move to the next word. 1922.It Xo 1923.Ic page-down 1924(vi: C-f) 1925(emacs: PageDown) 1926.Xc 1927Scroll down by one page. 1928.It Xo 1929.Ic page-up 1930(vi: C-b) 1931(emacs: PageUp) 1932.Xc 1933Scroll up by one page. 1934.It Xo 1935.Ic previous-matching-bracket 1936(emacs: M-C-b) 1937.Xc 1938Move to the previous matching bracket. 1939.It Xo 1940.Ic previous-paragraph 1941(vi: {) 1942(emacs: M-{) 1943.Xc 1944Move to the previous paragraph. 1945.It Xo 1946.Ic previous-prompt 1947.Op Fl o 1948.Xc 1949Move to the previous prompt. 1950.It Xo 1951.Ic previous-word 1952(vi: b) 1953(emacs: M-b) 1954.Xc 1955Move to the previous word. 1956.It Xo 1957.Ic rectangle-toggle 1958(vi: v) 1959(emacs: R) 1960.Xc 1961Toggle rectangle selection mode. 1962.It Xo 1963.Ic refresh-from-pane 1964(vi: r) 1965(emacs: r) 1966.Xc 1967Refresh the content from the pane. 1968.It Xo 1969.Ic search-again 1970(vi: n) 1971(emacs: n) 1972.Xc 1973Repeat the last search. 1974.It Xo 1975.Ic search-backward 1976.Ar text 1977(vi: ?) 1978.Xc 1979Search backwards for the specified text. 1980.It Xo 1981.Ic search-forward 1982.Ar text 1983(vi: /) 1984.Xc 1985Search forward for the specified text. 1986.It Xo 1987.Ic select-line 1988(vi: V) 1989.Xc 1990Select the current line. 1991.It Xo 1992.Ic select-word 1993.Xc 1994Select the current word. 1995.It Xo 1996.Ic start-of-line 1997(vi: 0) 1998(emacs: C-a) 1999.Xc 2000Move the cursor to the start of the line. 2001.It Xo 2002.Ic top-line 2003(vi: H) 2004(emacs: M-R) 2005.Xc 2006Move to the top line. 2007.El 2008.Pp 2009The search commands come in several varieties: 2010.Ql search-forward 2011and 2012.Ql search-backward 2013search for a regular expression; 2014the 2015.Ql -text 2016variants search for a plain text string rather than a regular expression; 2017.Ql -incremental 2018perform an incremental search and expect to be used with the 2019.Fl i 2020flag to the 2021.Ic command-prompt 2022command. 2023.Ql search-again 2024repeats the last search and 2025.Ql search-reverse 2026does the same but reverses the direction (forward becomes backward and backward 2027becomes forward). 2028.Pp 2029The 2030.Ql next-prompt 2031and 2032.Ql previous-prompt 2033move between shell prompts, but require the shell to emit an escape sequence 2034(\e033]133;A\e033\e\e) to tell 2035.Nm 2036where the prompts are located; if the shell does not do this, these commands 2037will do nothing. 2038The 2039.Fl o 2040flag jumps to the beginning of the command output instead of the shell prompt. 2041.Pp 2042Copy commands may take an optional buffer prefix argument which is used 2043to generate the buffer name (the default is 2044.Ql buffer 2045so buffers are named 2046.Ql buffer0 , 2047.Ql buffer1 2048and so on). 2049Pipe commands take a command argument which is the command to which the 2050selected text is piped. 2051.Ql copy-pipe 2052variants also copy the selection. 2053The 2054.Ql -and-cancel 2055variants of some commands exit copy mode after they have completed (for copy 2056commands) or when the cursor reaches the bottom (for scrolling commands). 2057.Ql -no-clear 2058variants do not clear the selection. 2059.Pp 2060The next and previous word keys skip over whitespace and treat consecutive 2061runs of either word separators or other letters as words. 2062Word separators can be customized with the 2063.Em word-separators 2064session option. 2065Next word moves to the start of the next word, next word end to the end of the 2066next word and previous word to the start of the previous word. 2067The three next and previous space keys work similarly but use a space alone as 2068the word separator. 2069Setting 2070.Em word-separators 2071to the empty string makes next/previous word equivalent to next/previous space. 2072.Pp 2073The jump commands enable quick movement within a line. 2074For instance, typing 2075.Ql f 2076followed by 2077.Ql / 2078will move the cursor to the next 2079.Ql / 2080character on the current line. 2081A 2082.Ql \&; 2083will then jump to the next occurrence. 2084.Pp 2085Commands in copy mode may be prefaced by an optional repeat count. 2086With vi key bindings, a prefix is entered using the number keys; with 2087emacs, the Alt (meta) key and a number begins prefix entry. 2088.Pp 2089The synopsis for the 2090.Ic copy-mode 2091command is: 2092.Bl -tag -width Ds 2093.It Xo Ic copy-mode 2094.Op Fl eHMqu 2095.Op Fl s Ar src-pane 2096.Op Fl t Ar target-pane 2097.Xc 2098Enter copy mode. 2099The 2100.Fl u 2101option scrolls one page up. 2102.Fl M 2103begins a mouse drag (only valid if bound to a mouse key binding, see 2104.Sx MOUSE SUPPORT ) . 2105.Fl H 2106hides the position indicator in the top right. 2107.Fl q 2108cancels copy mode and any other modes. 2109.Fl s 2110copies from 2111.Ar src-pane 2112instead of 2113.Ar target-pane . 2114.Pp 2115.Fl e 2116specifies that scrolling to the bottom of the history (to the visible screen) 2117should exit copy mode. 2118While in copy mode, pressing a key other than those used for scrolling will 2119disable this behaviour. 2120This is intended to allow fast scrolling through a pane's history, for 2121example with: 2122.Bd -literal -offset indent 2123bind PageUp copy-mode -eu 2124.Ed 2125.El 2126.Pp 2127A number of preset arrangements of panes are available, these are called 2128layouts. 2129These may be selected with the 2130.Ic select-layout 2131command or cycled with 2132.Ic next-layout 2133(bound to 2134.Ql Space 2135by default); once a layout is chosen, panes within it may be moved and resized 2136as normal. 2137.Pp 2138The following layouts are supported: 2139.Bl -tag -width Ds 2140.It Ic even-horizontal 2141Panes are spread out evenly from left to right across the window. 2142.It Ic even-vertical 2143Panes are spread evenly from top to bottom. 2144.It Ic main-horizontal 2145A large (main) pane is shown at the top of the window and the remaining panes 2146are spread from left to right in the leftover space at the bottom. 2147Use the 2148.Em main-pane-height 2149window option to specify the height of the top pane. 2150.It Ic main-vertical 2151Similar to 2152.Ic main-horizontal 2153but the large pane is placed on the left and the others spread from top to 2154bottom along the right. 2155See the 2156.Em main-pane-width 2157window option. 2158.It Ic tiled 2159Panes are spread out as evenly as possible over the window in both rows and 2160columns. 2161.El 2162.Pp 2163In addition, 2164.Ic select-layout 2165may be used to apply a previously used layout - the 2166.Ic list-windows 2167command displays the layout of each window in a form suitable for use with 2168.Ic select-layout . 2169For example: 2170.Bd -literal -offset indent 2171$ tmux list-windows 21720: ksh [159x48] 2173 layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0} 2174$ tmux select-layout \[aq]bb62,159x48,0,0{79x48,0,0,79x48,80,0}\[aq] 2175.Ed 2176.Pp 2177.Nm 2178automatically adjusts the size of the layout for the current window size. 2179Note that a layout cannot be applied to a window with more panes than that 2180from which the layout was originally defined. 2181.Pp 2182Commands related to windows and panes are as follows: 2183.Bl -tag -width Ds 2184.Tg breakp 2185.It Xo Ic break-pane 2186.Op Fl abdP 2187.Op Fl F Ar format 2188.Op Fl n Ar window-name 2189.Op Fl s Ar src-pane 2190.Op Fl t Ar dst-window 2191.Xc 2192.D1 Pq alias: Ic breakp 2193Break 2194.Ar src-pane 2195off from its containing window to make it the only pane in 2196.Ar dst-window . 2197With 2198.Fl a 2199or 2200.Fl b , 2201the window is moved to the next index after or before (existing windows are 2202moved if necessary). 2203If 2204.Fl d 2205is given, the new window does not become the current window. 2206The 2207.Fl P 2208option prints information about the new window after it has been created. 2209By default, it uses the format 2210.Ql #{session_name}:#{window_index}.#{pane_index} 2211but a different format may be specified with 2212.Fl F . 2213.Tg capturep 2214.It Xo Ic capture-pane 2215.Op Fl aAepPqCJN 2216.Op Fl b Ar buffer-name 2217.Op Fl E Ar end-line 2218.Op Fl S Ar start-line 2219.Op Fl t Ar target-pane 2220.Xc 2221.D1 Pq alias: Ic capturep 2222Capture the contents of a pane. 2223If 2224.Fl p 2225is given, the output goes to stdout, otherwise to the buffer specified with 2226.Fl b 2227or a new buffer if omitted. 2228If 2229.Fl a 2230is given, the alternate screen is used, and the history is not accessible. 2231If no alternate screen exists, an error will be returned unless 2232.Fl q 2233is given. 2234If 2235.Fl e 2236is given, the output includes escape sequences for text and background 2237attributes. 2238.Fl C 2239also escapes non-printable characters as octal \exxx. 2240.Fl T 2241ignores trailing positions that do not contain a character. 2242.Fl N 2243preserves trailing spaces at each line's end and 2244.Fl J 2245preserves trailing spaces and joins any wrapped lines; 2246.Fl J 2247implies 2248.Fl T . 2249.Fl P 2250captures only any output that the pane has received that is the beginning of an 2251as-yet incomplete escape sequence. 2252.Pp 2253.Fl S 2254and 2255.Fl E 2256specify the starting and ending line numbers, zero is the first line of the 2257visible pane and negative numbers are lines in the history. 2258.Ql - 2259to 2260.Fl S 2261is the start of the history and to 2262.Fl E 2263the end of the visible pane. 2264The default is to capture only the visible contents of the pane. 2265.It Xo 2266.Ic choose-client 2267.Op Fl NrZ 2268.Op Fl F Ar format 2269.Op Fl f Ar filter 2270.Op Fl K Ar key-format 2271.Op Fl O Ar sort-order 2272.Op Fl t Ar target-pane 2273.Op Ar template 2274.Xc 2275Put a pane into client mode, allowing a client to be selected interactively from 2276a list. 2277Each client is shown on one line. 2278A shortcut key is shown on the left in brackets allowing for immediate choice, 2279or the list may be navigated and an item chosen or otherwise manipulated using 2280the keys below. 2281.Fl Z 2282zooms the pane. 2283The following keys may be used in client mode: 2284.Bl -column "Key" "Function" -offset indent 2285.It Sy "Key" Ta Sy "Function" 2286.It Li "Enter" Ta "Choose selected client" 2287.It Li "Up" Ta "Select previous client" 2288.It Li "Down" Ta "Select next client" 2289.It Li "C-s" Ta "Search by name" 2290.It Li "n" Ta "Repeat last search" 2291.It Li "t" Ta "Toggle if client is tagged" 2292.It Li "T" Ta "Tag no clients" 2293.It Li "C-t" Ta "Tag all clients" 2294.It Li "d" Ta "Detach selected client" 2295.It Li "D" Ta "Detach tagged clients" 2296.It Li "x" Ta "Detach and HUP selected client" 2297.It Li "X" Ta "Detach and HUP tagged clients" 2298.It Li "z" Ta "Suspend selected client" 2299.It Li "Z" Ta "Suspend tagged clients" 2300.It Li "f" Ta "Enter a format to filter items" 2301.It Li "O" Ta "Change sort field" 2302.It Li "r" Ta "Reverse sort order" 2303.It Li "v" Ta "Toggle preview" 2304.It Li "q" Ta "Exit mode" 2305.El 2306.Pp 2307After a client is chosen, 2308.Ql %% 2309is replaced by the client name in 2310.Ar template 2311and the result executed as a command. 2312If 2313.Ar template 2314is not given, "detach-client -t \[aq]%%\[aq]" is used. 2315.Pp 2316.Fl O 2317specifies the initial sort field: one of 2318.Ql name , 2319.Ql size , 2320.Ql creation 2321(time), 2322or 2323.Ql activity 2324(time). 2325.Fl r 2326reverses the sort order. 2327.Fl f 2328specifies an initial filter: the filter is a format - if it evaluates to zero, 2329the item in the list is not shown, otherwise it is shown. 2330If a filter would lead to an empty list, it is ignored. 2331.Fl F 2332specifies the format for each item in the list and 2333.Fl K 2334a format for each shortcut key; both are evaluated once for each line. 2335.Fl N 2336starts without the preview. 2337This command works only if at least one client is attached. 2338.It Xo 2339.Ic choose-tree 2340.Op Fl GNrswZ 2341.Op Fl F Ar format 2342.Op Fl f Ar filter 2343.Op Fl K Ar key-format 2344.Op Fl O Ar sort-order 2345.Op Fl t Ar target-pane 2346.Op Ar template 2347.Xc 2348Put a pane into tree mode, where a session, window or pane may be chosen 2349interactively from a tree. 2350Each session, window or pane is shown on one line. 2351A shortcut key is shown on the left in brackets allowing for immediate choice, 2352or the tree may be navigated and an item chosen or otherwise manipulated using 2353the keys below. 2354.Fl s 2355starts with sessions collapsed and 2356.Fl w 2357with windows collapsed. 2358.Fl Z 2359zooms the pane. 2360The following keys may be used in tree mode: 2361.Bl -column "Key" "Function" -offset indent 2362.It Sy "Key" Ta Sy "Function" 2363.It Li "Enter" Ta "Choose selected item" 2364.It Li "Up" Ta "Select previous item" 2365.It Li "Down" Ta "Select next item" 2366.It Li "+" Ta "Expand selected item" 2367.It Li "-" Ta "Collapse selected item" 2368.It Li "M-+" Ta "Expand all items" 2369.It Li "M--" Ta "Collapse all items" 2370.It Li "x" Ta "Kill selected item" 2371.It Li "X" Ta "Kill tagged items" 2372.It Li "<" Ta "Scroll list of previews left" 2373.It Li ">" Ta "Scroll list of previews right" 2374.It Li "C-s" Ta "Search by name" 2375.It Li "m" Ta "Set the marked pane" 2376.It Li "M" Ta "Clear the marked pane" 2377.It Li "n" Ta "Repeat last search" 2378.It Li "t" Ta "Toggle if item is tagged" 2379.It Li "T" Ta "Tag no items" 2380.It Li "C-t" Ta "Tag all items" 2381.It Li "\&:" Ta "Run a command for each tagged item" 2382.It Li "f" Ta "Enter a format to filter items" 2383.It Li "H" Ta "Jump to the starting pane" 2384.It Li "O" Ta "Change sort field" 2385.It Li "r" Ta "Reverse sort order" 2386.It Li "v" Ta "Toggle preview" 2387.It Li "q" Ta "Exit mode" 2388.El 2389.Pp 2390After a session, window or pane is chosen, the first instance of 2391.Ql %% 2392and all instances of 2393.Ql %1 2394are replaced by the target in 2395.Ar template 2396and the result executed as a command. 2397If 2398.Ar template 2399is not given, "switch-client -t \[aq]%%\[aq]" is used. 2400.Pp 2401.Fl O 2402specifies the initial sort field: one of 2403.Ql index , 2404.Ql name , 2405or 2406.Ql time 2407(activity). 2408.Fl r 2409reverses the sort order. 2410.Fl f 2411specifies an initial filter: the filter is a format - if it evaluates to zero, 2412the item in the list is not shown, otherwise it is shown. 2413If a filter would lead to an empty list, it is ignored. 2414.Fl F 2415specifies the format for each item in the tree and 2416.Fl K 2417a format for each shortcut key; both are evaluated once for each line. 2418.Fl N 2419starts without the preview. 2420.Fl G 2421includes all sessions in any session groups in the tree rather than only the 2422first. 2423This command works only if at least one client is attached. 2424.It Xo 2425.Ic customize-mode 2426.Op Fl NZ 2427.Op Fl F Ar format 2428.Op Fl f Ar filter 2429.Op Fl t Ar target-pane 2430.Op Ar template 2431.Xc 2432Put a pane into customize mode, where options and key bindings may be browsed 2433and modified from a list. 2434Option values in the list are shown for the active pane in the current window. 2435.Fl Z 2436zooms the pane. 2437The following keys may be used in customize mode: 2438.Bl -column "Key" "Function" -offset indent 2439.It Sy "Key" Ta Sy "Function" 2440.It Li "Enter" Ta "Set pane, window, session or global option value" 2441.It Li "Up" Ta "Select previous item" 2442.It Li "Down" Ta "Select next item" 2443.It Li "+" Ta "Expand selected item" 2444.It Li "-" Ta "Collapse selected item" 2445.It Li "M-+" Ta "Expand all items" 2446.It Li "M--" Ta "Collapse all items" 2447.It Li "s" Ta "Set option value or key attribute" 2448.It Li "S" Ta "Set global option value" 2449.It Li "w" Ta "Set window option value, if option is for pane and window" 2450.It Li "d" Ta "Set an option or key to the default" 2451.It Li "D" Ta "Set tagged options and tagged keys to the default" 2452.It Li "u" Ta "Unset an option (set to default value if global) or unbind a key" 2453.It Li "U" Ta "Unset tagged options and unbind tagged keys" 2454.It Li "C-s" Ta "Search by name" 2455.It Li "n" Ta "Repeat last search" 2456.It Li "t" Ta "Toggle if item is tagged" 2457.It Li "T" Ta "Tag no items" 2458.It Li "C-t" Ta "Tag all items" 2459.It Li "f" Ta "Enter a format to filter items" 2460.It Li "v" Ta "Toggle option information" 2461.It Li "q" Ta "Exit mode" 2462.El 2463.Pp 2464.Fl f 2465specifies an initial filter: the filter is a format - if it evaluates to zero, 2466the item in the list is not shown, otherwise it is shown. 2467If a filter would lead to an empty list, it is ignored. 2468.Fl F 2469specifies the format for each item in the tree. 2470.Fl N 2471starts without the option information. 2472This command works only if at least one client is attached. 2473.It Xo 2474.Tg displayp 2475.Ic display-panes 2476.Op Fl bN 2477.Op Fl d Ar duration 2478.Op Fl t Ar target-client 2479.Op Ar template 2480.Xc 2481.D1 Pq alias: Ic displayp 2482Display a visible indicator of each pane shown by 2483.Ar target-client . 2484See the 2485.Ic display-panes-colour 2486and 2487.Ic display-panes-active-colour 2488session options. 2489The indicator is closed when a key is pressed (unless 2490.Fl N 2491is given) or 2492.Ar duration 2493milliseconds have passed. 2494If 2495.Fl d 2496is not given, 2497.Ic display-panes-time 2498is used. 2499A duration of zero means the indicator stays until a key is pressed. 2500While the indicator is on screen, a pane may be chosen with the 2501.Ql 0 2502to 2503.Ql 9 2504keys, which will cause 2505.Ar template 2506to be executed as a command with 2507.Ql %% 2508substituted by the pane ID. 2509The default 2510.Ar template 2511is "select-pane -t \[aq]%%\[aq]". 2512With 2513.Fl b , 2514other commands are not blocked from running until the indicator is closed. 2515.Tg findw 2516.It Xo Ic find-window 2517.Op Fl iCNrTZ 2518.Op Fl t Ar target-pane 2519.Ar match-string 2520.Xc 2521.D1 Pq alias: Ic findw 2522Search for a 2523.Xr fnmatch 3 2524pattern or, with 2525.Fl r , 2526regular expression 2527.Ar match-string 2528in window names, titles, and visible content (but not history). 2529The flags control matching behavior: 2530.Fl C 2531matches only visible window contents, 2532.Fl N 2533matches only the window name and 2534.Fl T 2535matches only the window title. 2536.Fl i 2537makes the search ignore case. 2538The default is 2539.Fl CNT . 2540.Fl Z 2541zooms the pane. 2542.Pp 2543This command works only if at least one client is attached. 2544.Tg joinp 2545.It Xo Ic join-pane 2546.Op Fl bdfhv 2547.Op Fl l Ar size 2548.Op Fl s Ar src-pane 2549.Op Fl t Ar dst-pane 2550.Xc 2551.D1 Pq alias: Ic joinp 2552Like 2553.Ic split-window , 2554but instead of splitting 2555.Ar dst-pane 2556and creating a new pane, split it and move 2557.Ar src-pane 2558into the space. 2559This can be used to reverse 2560.Ic break-pane . 2561The 2562.Fl b 2563option causes 2564.Ar src-pane 2565to be joined to left of or above 2566.Ar dst-pane . 2567.Pp 2568If 2569.Fl s 2570is omitted and a marked pane is present (see 2571.Ic select-pane 2572.Fl m ) , 2573the marked pane is used rather than the current pane. 2574.Tg killp 2575.It Xo Ic kill-pane 2576.Op Fl a 2577.Op Fl t Ar target-pane 2578.Xc 2579.D1 Pq alias: Ic killp 2580Destroy the given pane. 2581If no panes remain in the containing window, it is also destroyed. 2582The 2583.Fl a 2584option kills all but the pane given with 2585.Fl t . 2586.Tg killw 2587.It Xo Ic kill-window 2588.Op Fl a 2589.Op Fl t Ar target-window 2590.Xc 2591.D1 Pq alias: Ic killw 2592Kill the current window or the window at 2593.Ar target-window , 2594removing it from any sessions to which it is linked. 2595The 2596.Fl a 2597option kills all but the window given with 2598.Fl t . 2599.Tg lastp 2600.It Xo Ic last-pane 2601.Op Fl deZ 2602.Op Fl t Ar target-window 2603.Xc 2604.D1 Pq alias: Ic lastp 2605Select the last (previously selected) pane. 2606.Fl Z 2607keeps the window zoomed if it was zoomed. 2608.Fl e 2609enables or 2610.Fl d 2611disables input to the pane. 2612.Tg last 2613.It Ic last-window Op Fl t Ar target-session 2614.D1 Pq alias: Ic last 2615Select the last (previously selected) window. 2616If no 2617.Ar target-session 2618is specified, select the last window of the current session. 2619.Tg link 2620.It Xo Ic link-window 2621.Op Fl abdk 2622.Op Fl s Ar src-window 2623.Op Fl t Ar dst-window 2624.Xc 2625.D1 Pq alias: Ic linkw 2626Link the window at 2627.Ar src-window 2628to the specified 2629.Ar dst-window . 2630If 2631.Ar dst-window 2632is specified and no such window exists, the 2633.Ar src-window 2634is linked there. 2635With 2636.Fl a 2637or 2638.Fl b 2639the window is moved to the next index after or before 2640.Ar dst-window 2641(existing windows are moved if necessary). 2642If 2643.Fl k 2644is given and 2645.Ar dst-window 2646exists, it is killed, otherwise an error is generated. 2647If 2648.Fl d 2649is given, the newly linked window is not selected. 2650.Tg lsp 2651.It Xo Ic list-panes 2652.Op Fl as 2653.Op Fl F Ar format 2654.Op Fl f Ar filter 2655.Op Fl t Ar target 2656.Xc 2657.D1 Pq alias: Ic lsp 2658If 2659.Fl a 2660is given, 2661.Ar target 2662is ignored and all panes on the server are listed. 2663If 2664.Fl s 2665is given, 2666.Ar target 2667is a session (or the current session). 2668If neither is given, 2669.Ar target 2670is a window (or the current window). 2671.Fl F 2672specifies the format of each line and 2673.Fl f 2674a filter. 2675Only panes for which the filter is true are shown. 2676See the 2677.Sx FORMATS 2678section. 2679.Tg lsw 2680.It Xo Ic list-windows 2681.Op Fl a 2682.Op Fl F Ar format 2683.Op Fl f Ar filter 2684.Op Fl t Ar target-session 2685.Xc 2686.D1 Pq alias: Ic lsw 2687If 2688.Fl a 2689is given, list all windows on the server. 2690Otherwise, list windows in the current session or in 2691.Ar target-session . 2692.Fl F 2693specifies the format of each line and 2694.Fl f 2695a filter. 2696Only windows for which the filter is true are shown. 2697See the 2698.Sx FORMATS 2699section. 2700.Tg movep 2701.It Xo Ic move-pane 2702.Op Fl bdfhv 2703.Op Fl l Ar size 2704.Op Fl s Ar src-pane 2705.Op Fl t Ar dst-pane 2706.Xc 2707.D1 Pq alias: Ic movep 2708Does the same as 2709.Ic join-pane . 2710.Tg movew 2711.It Xo Ic move-window 2712.Op Fl abrdk 2713.Op Fl s Ar src-window 2714.Op Fl t Ar dst-window 2715.Xc 2716.D1 Pq alias: Ic movew 2717This is similar to 2718.Ic link-window , 2719except the window at 2720.Ar src-window 2721is moved to 2722.Ar dst-window . 2723With 2724.Fl r , 2725all windows in the session are renumbered in sequential order, respecting 2726the 2727.Ic base-index 2728option. 2729.Tg neww 2730.It Xo Ic new-window 2731.Op Fl abdkPS 2732.Op Fl c Ar start-directory 2733.Op Fl e Ar environment 2734.Op Fl F Ar format 2735.Op Fl n Ar window-name 2736.Op Fl t Ar target-window 2737.Op Ar shell-command 2738.Xc 2739.D1 Pq alias: Ic neww 2740Create a new window. 2741With 2742.Fl a 2743or 2744.Fl b , 2745the new window is inserted at the next index after or before the specified 2746.Ar target-window , 2747moving windows up if necessary; 2748otherwise 2749.Ar target-window 2750is the new window location. 2751.Pp 2752If 2753.Fl d 2754is given, the session does not make the new window the current window. 2755.Ar target-window 2756represents the window to be created; if the target already exists an error is 2757shown, unless the 2758.Fl k 2759flag is used, in which case it is destroyed. 2760If 2761.Fl S 2762is given and a window named 2763.Ar window-name 2764already exists, it is selected (unless 2765.Fl d 2766is also given in which case the command does nothing). 2767.Pp 2768.Ar shell-command 2769is the command to execute. 2770If 2771.Ar shell-command 2772is not specified, the value of the 2773.Ic default-command 2774option is used. 2775.Fl c 2776specifies the working directory in which the new window is created. 2777.Pp 2778When the shell command completes, the window closes. 2779See the 2780.Ic remain-on-exit 2781option to change this behaviour. 2782.Pp 2783.Fl e 2784takes the form 2785.Ql VARIABLE=value 2786and sets an environment variable for the newly created window; it may be 2787specified multiple times. 2788.Pp 2789The 2790.Ev TERM 2791environment variable must be set to 2792.Ql screen 2793or 2794.Ql tmux 2795for all programs running 2796.Em inside 2797.Nm . 2798New windows will automatically have 2799.Ql TERM=screen 2800added to their environment, but care must be taken not to reset this in shell 2801start-up files or by the 2802.Fl e 2803option. 2804.Pp 2805The 2806.Fl P 2807option prints information about the new window after it has been created. 2808By default, it uses the format 2809.Ql #{session_name}:#{window_index} 2810but a different format may be specified with 2811.Fl F . 2812.Tg nextl 2813.It Ic next-layout Op Fl t Ar target-window 2814.D1 Pq alias: Ic nextl 2815Move a window to the next layout and rearrange the panes to fit. 2816.Tg next 2817.It Xo Ic next-window 2818.Op Fl a 2819.Op Fl t Ar target-session 2820.Xc 2821.D1 Pq alias: Ic next 2822Move to the next window in the session. 2823If 2824.Fl a 2825is used, move to the next window with an alert. 2826.Tg pipep 2827.It Xo Ic pipe-pane 2828.Op Fl IOo 2829.Op Fl t Ar target-pane 2830.Op Ar shell-command 2831.Xc 2832.D1 Pq alias: Ic pipep 2833Pipe output sent by the program in 2834.Ar target-pane 2835to a shell command or vice versa. 2836A pane may only be connected to one command at a time, any existing pipe is 2837closed before 2838.Ar shell-command 2839is executed. 2840The 2841.Ar shell-command 2842string may contain the special character sequences supported by the 2843.Ic status-left 2844option. 2845If no 2846.Ar shell-command 2847is given, the current pipe (if any) is closed. 2848.Pp 2849.Fl I 2850and 2851.Fl O 2852specify which of the 2853.Ar shell-command 2854output streams are connected to the pane: 2855with 2856.Fl I 2857stdout is connected (so anything 2858.Ar shell-command 2859prints is written to the pane as if it were typed); 2860with 2861.Fl O 2862stdin is connected (so any output in the pane is piped to 2863.Ar shell-command ) . 2864Both may be used together and if neither are specified, 2865.Fl O 2866is used. 2867.Pp 2868The 2869.Fl o 2870option only opens a new pipe if no previous pipe exists, allowing a pipe to 2871be toggled with a single key, for example: 2872.Bd -literal -offset indent 2873bind-key C-p pipe-pane -o \[aq]cat >>\[ti]/output.#I-#P\[aq] 2874.Ed 2875.Tg prevl 2876.It Xo Ic previous-layout 2877.Op Fl t Ar target-window 2878.Xc 2879.D1 Pq alias: Ic prevl 2880Move to the previous layout in the session. 2881.Tg prev 2882.It Xo Ic previous-window 2883.Op Fl a 2884.Op Fl t Ar target-session 2885.Xc 2886.D1 Pq alias: Ic prev 2887Move to the previous window in the session. 2888With 2889.Fl a , 2890move to the previous window with an alert. 2891.Tg renamew 2892.It Xo Ic rename-window 2893.Op Fl t Ar target-window 2894.Ar new-name 2895.Xc 2896.D1 Pq alias: Ic renamew 2897Rename the current window, or the window at 2898.Ar target-window 2899if specified, to 2900.Ar new-name . 2901.Tg resizep 2902.It Xo Ic resize-pane 2903.Op Fl DLMRTUZ 2904.Op Fl t Ar target-pane 2905.Op Fl x Ar width 2906.Op Fl y Ar height 2907.Op Ar adjustment 2908.Xc 2909.D1 Pq alias: Ic resizep 2910Resize a pane, up, down, left or right by 2911.Ar adjustment 2912with 2913.Fl U , 2914.Fl D , 2915.Fl L 2916or 2917.Fl R , 2918or 2919to an absolute size 2920with 2921.Fl x 2922or 2923.Fl y . 2924The 2925.Ar adjustment 2926is given in lines or columns (the default is 1); 2927.Fl x 2928and 2929.Fl y 2930may be a given as a number of lines or columns or followed by 2931.Ql % 2932for a percentage of the window size (for example 2933.Ql -x 10% ) . 2934With 2935.Fl Z , 2936the active pane is toggled between zoomed (occupying the whole of the window) 2937and unzoomed (its normal position in the layout). 2938.Pp 2939.Fl M 2940begins mouse resizing (only valid if bound to a mouse key binding, see 2941.Sx MOUSE SUPPORT ) . 2942.Pp 2943.Fl T 2944trims all lines below the current cursor position and moves lines out of the 2945history to replace them. 2946.Tg resizew 2947.It Xo Ic resize-window 2948.Op Fl aADLRU 2949.Op Fl t Ar target-window 2950.Op Fl x Ar width 2951.Op Fl y Ar height 2952.Op Ar adjustment 2953.Xc 2954.D1 Pq alias: Ic resizew 2955Resize a window, up, down, left or right by 2956.Ar adjustment 2957with 2958.Fl U , 2959.Fl D , 2960.Fl L 2961or 2962.Fl R , 2963or 2964to an absolute size 2965with 2966.Fl x 2967or 2968.Fl y . 2969The 2970.Ar adjustment 2971is given in lines or cells (the default is 1). 2972.Fl A 2973sets the size of the largest session containing the window; 2974.Fl a 2975the size of the smallest. 2976This command will automatically set 2977.Ic window-size 2978to manual in the window options. 2979.Tg respawnp 2980.It Xo Ic respawn-pane 2981.Op Fl k 2982.Op Fl c Ar start-directory 2983.Op Fl e Ar environment 2984.Op Fl t Ar target-pane 2985.Op Ar shell-command 2986.Xc 2987.D1 Pq alias: Ic respawnp 2988Reactivate a pane in which the command has exited (see the 2989.Ic remain-on-exit 2990window option). 2991If 2992.Ar shell-command 2993is not given, the command used when the pane was created or last respawned is 2994executed. 2995The pane must be already inactive, unless 2996.Fl k 2997is given, in which case any existing command is killed. 2998.Fl c 2999specifies a new working directory for the pane. 3000The 3001.Fl e 3002option has the same meaning as for the 3003.Ic new-window 3004command. 3005.Tg respawnw 3006.It Xo Ic respawn-window 3007.Op Fl k 3008.Op Fl c Ar start-directory 3009.Op Fl e Ar environment 3010.Op Fl t Ar target-window 3011.Op Ar shell-command 3012.Xc 3013.D1 Pq alias: Ic respawnw 3014Reactivate a window in which the command has exited (see the 3015.Ic remain-on-exit 3016window option). 3017If 3018.Ar shell-command 3019is not given, the command used when the window was created or last respawned is 3020executed. 3021The window must be already inactive, unless 3022.Fl k 3023is given, in which case any existing command is killed. 3024.Fl c 3025specifies a new working directory for the window. 3026The 3027.Fl e 3028option has the same meaning as for the 3029.Ic new-window 3030command. 3031.Tg rotatew 3032.It Xo Ic rotate-window 3033.Op Fl DUZ 3034.Op Fl t Ar target-window 3035.Xc 3036.D1 Pq alias: Ic rotatew 3037Rotate the positions of the panes within a window, either upward (numerically 3038lower) with 3039.Fl U 3040or downward (numerically higher). 3041.Fl Z 3042keeps the window zoomed if it was zoomed. 3043.Tg selectl 3044.It Xo Ic select-layout 3045.Op Fl Enop 3046.Op Fl t Ar target-pane 3047.Op Ar layout-name 3048.Xc 3049.D1 Pq alias: Ic selectl 3050Choose a specific layout for a window. 3051If 3052.Ar layout-name 3053is not given, the last preset layout used (if any) is reapplied. 3054.Fl n 3055and 3056.Fl p 3057are equivalent to the 3058.Ic next-layout 3059and 3060.Ic previous-layout 3061commands. 3062.Fl o 3063applies the last set layout if possible (undoes the most recent layout change). 3064.Fl E 3065spreads the current pane and any panes next to it out evenly. 3066.Tg selectp 3067.It Xo Ic select-pane 3068.Op Fl DdeLlMmRUZ 3069.Op Fl T Ar title 3070.Op Fl t Ar target-pane 3071.Xc 3072.D1 Pq alias: Ic selectp 3073Make pane 3074.Ar target-pane 3075the active pane in its window. 3076If one of 3077.Fl D , 3078.Fl L , 3079.Fl R , 3080or 3081.Fl U 3082is used, respectively the pane below, to the left, to the right, or above the 3083target pane is used. 3084.Fl Z 3085keeps the window zoomed if it was zoomed. 3086.Fl l 3087is the same as using the 3088.Ic last-pane 3089command. 3090.Fl e 3091enables or 3092.Fl d 3093disables input to the pane. 3094.Fl T 3095sets the pane title. 3096.Pp 3097.Fl m 3098and 3099.Fl M 3100are used to set and clear the 3101.Em marked pane . 3102There is one marked pane at a time, setting a new marked pane clears the last. 3103The marked pane is the default target for 3104.Fl s 3105to 3106.Ic join-pane , 3107.Ic move-pane , 3108.Ic swap-pane 3109and 3110.Ic swap-window . 3111.Tg selectw 3112.It Xo Ic select-window 3113.Op Fl lnpT 3114.Op Fl t Ar target-window 3115.Xc 3116.D1 Pq alias: Ic selectw 3117Select the window at 3118.Ar target-window . 3119.Fl l , 3120.Fl n 3121and 3122.Fl p 3123are equivalent to the 3124.Ic last-window , 3125.Ic next-window 3126and 3127.Ic previous-window 3128commands. 3129If 3130.Fl T 3131is given and the selected window is already the current window, 3132the command behaves like 3133.Ic last-window . 3134.Tg splitw 3135.It Xo Ic split-window 3136.Op Fl bdfhIvPZ 3137.Op Fl c Ar start-directory 3138.Op Fl e Ar environment 3139.Op Fl l Ar size 3140.Op Fl t Ar target-pane 3141.Op Ar shell-command 3142.Op Fl F Ar format 3143.Xc 3144.D1 Pq alias: Ic splitw 3145Create a new pane by splitting 3146.Ar target-pane : 3147.Fl h 3148does a horizontal split and 3149.Fl v 3150a vertical split; if neither is specified, 3151.Fl v 3152is assumed. 3153The 3154.Fl l 3155option specifies the size of the new pane in lines (for vertical split) or in 3156columns (for horizontal split); 3157.Ar size 3158may be followed by 3159.Ql % 3160to specify a percentage of the available space. 3161The 3162.Fl b 3163option causes the new pane to be created to the left of or above 3164.Ar target-pane . 3165The 3166.Fl f 3167option creates a new pane spanning the full window height (with 3168.Fl h ) 3169or full window width (with 3170.Fl v ) , 3171instead of splitting the active pane. 3172.Fl Z 3173zooms if the window is not zoomed, or keeps it zoomed if already zoomed. 3174.Pp 3175An empty 3176.Ar shell-command 3177(\[aq]\[aq]) will create a pane with no command running in it. 3178Output can be sent to such a pane with the 3179.Ic display-message 3180command. 3181The 3182.Fl I 3183flag (if 3184.Ar shell-command 3185is not specified or empty) 3186will create an empty pane and forward any output from stdin to it. 3187For example: 3188.Bd -literal -offset indent 3189$ make 2>&1|tmux splitw -dI & 3190.Ed 3191.Pp 3192All other options have the same meaning as for the 3193.Ic new-window 3194command. 3195.Tg swapp 3196.It Xo Ic swap-pane 3197.Op Fl dDUZ 3198.Op Fl s Ar src-pane 3199.Op Fl t Ar dst-pane 3200.Xc 3201.D1 Pq alias: Ic swapp 3202Swap two panes. 3203If 3204.Fl U 3205is used and no source pane is specified with 3206.Fl s , 3207.Ar dst-pane 3208is swapped with the previous pane (before it numerically); 3209.Fl D 3210swaps with the next pane (after it numerically). 3211.Fl d 3212instructs 3213.Nm 3214not to change the active pane and 3215.Fl Z 3216keeps the window zoomed if it was zoomed. 3217.Pp 3218If 3219.Fl s 3220is omitted and a marked pane is present (see 3221.Ic select-pane 3222.Fl m ) , 3223the marked pane is used rather than the current pane. 3224.Tg swapw 3225.It Xo Ic swap-window 3226.Op Fl d 3227.Op Fl s Ar src-window 3228.Op Fl t Ar dst-window 3229.Xc 3230.D1 Pq alias: Ic swapw 3231This is similar to 3232.Ic link-window , 3233except the source and destination windows are swapped. 3234It is an error if no window exists at 3235.Ar src-window . 3236If 3237.Fl d 3238is given, the new window does not become the current window. 3239.Pp 3240If 3241.Fl s 3242is omitted and a marked pane is present (see 3243.Ic select-pane 3244.Fl m ) , 3245the window containing the marked pane is used rather than the current window. 3246.Tg unlinkw 3247.It Xo Ic unlink-window 3248.Op Fl k 3249.Op Fl t Ar target-window 3250.Xc 3251.D1 Pq alias: Ic unlinkw 3252Unlink 3253.Ar target-window . 3254Unless 3255.Fl k 3256is given, a window may be unlinked only if it is linked to multiple sessions - 3257windows may not be linked to no sessions; 3258if 3259.Fl k 3260is specified and the window is linked to only one session, it is unlinked and 3261destroyed. 3262.El 3263.Sh KEY BINDINGS 3264.Nm 3265allows a command to be bound to most keys, with or without a prefix key. 3266When specifying keys, most represent themselves (for example 3267.Ql A 3268to 3269.Ql Z ) . 3270Ctrl keys may be prefixed with 3271.Ql C- 3272or 3273.Ql ^ , 3274Shift keys with 3275.Ql S- 3276and Alt (meta) with 3277.Ql M- . 3278In addition, the following special key names are accepted: 3279.Em Up , 3280.Em Down , 3281.Em Left , 3282.Em Right , 3283.Em BSpace , 3284.Em BTab , 3285.Em DC 3286(Delete), 3287.Em End , 3288.Em Enter , 3289.Em Escape , 3290.Em F1 3291to 3292.Em F12 , 3293.Em Home , 3294.Em IC 3295(Insert), 3296.Em NPage/PageDown/PgDn , 3297.Em PPage/PageUp/PgUp , 3298.Em Space , 3299and 3300.Em Tab . 3301Note that to bind the 3302.Ql \&" 3303or 3304.Ql \[aq] 3305keys, quotation marks are necessary, for example: 3306.Bd -literal -offset indent 3307bind-key \[aq]"\[aq] split-window 3308bind-key "\[aq]" new-window 3309.Ed 3310.Pp 3311A command bound to the 3312.Em Any 3313key will execute for all keys which do not have a more specific binding. 3314.Pp 3315Commands related to key bindings are as follows: 3316.Bl -tag -width Ds 3317.Tg bind 3318.It Xo Ic bind-key 3319.Op Fl nr 3320.Op Fl N Ar note 3321.Op Fl T Ar key-table 3322.Ar key command Op Ar argument ... 3323.Xc 3324.D1 Pq alias: Ic bind 3325Bind key 3326.Ar key 3327to 3328.Ar command . 3329Keys are bound in a key table. 3330By default (without -T), the key is bound in 3331the 3332.Em prefix 3333key table. 3334This table is used for keys pressed after the prefix key (for example, 3335by default 3336.Ql c 3337is bound to 3338.Ic new-window 3339in the 3340.Em prefix 3341table, so 3342.Ql C-b c 3343creates a new window). 3344The 3345.Em root 3346table is used for keys pressed without the prefix key: binding 3347.Ql c 3348to 3349.Ic new-window 3350in the 3351.Em root 3352table (not recommended) means a plain 3353.Ql c 3354will create a new window. 3355.Fl n 3356is an alias 3357for 3358.Fl T Ar root . 3359Keys may also be bound in custom key tables and the 3360.Ic switch-client 3361.Fl T 3362command used to switch to them from a key binding. 3363The 3364.Fl r 3365flag indicates this key may repeat, see the 3366.Ic repeat-time 3367option. 3368.Fl N 3369attaches a note to the key (shown with 3370.Ic list-keys 3371.Fl N ) . 3372.Pp 3373To view the default bindings and possible commands, see the 3374.Ic list-keys 3375command. 3376.Tg lsk 3377.It Xo Ic list-keys 3378.Op Fl 1aN 3379.Op Fl P Ar prefix-string Fl T Ar key-table 3380.Op Ar key 3381.Xc 3382.D1 Pq alias: Ic lsk 3383List key bindings. 3384There are two forms: the default lists keys as 3385.Ic bind-key 3386commands; 3387.Fl N 3388lists only keys with attached notes and shows only the key and note for each 3389key. 3390.Pp 3391With the default form, all key tables are listed by default. 3392.Fl T 3393lists only keys in 3394.Ar key-table . 3395.Pp 3396With the 3397.Fl N 3398form, only keys in the 3399.Em root 3400and 3401.Em prefix 3402key tables are listed by default; 3403.Fl T 3404also lists only keys in 3405.Ar key-table . 3406.Fl P 3407specifies a prefix to print before each key and 3408.Fl 1 3409lists only the first matching key. 3410.Fl a 3411lists the command for keys that do not have a note rather than skipping them. 3412.Tg send 3413.It Xo Ic send-keys 3414.Op Fl FHKlMRX 3415.Op Fl c Ar target-client 3416.Op Fl N Ar repeat-count 3417.Op Fl t Ar target-pane 3418.Ar key ... 3419.Xc 3420.D1 Pq alias: Ic send 3421Send a key or keys to a window or client. 3422Each argument 3423.Ar key 3424is the name of the key (such as 3425.Ql C-a 3426or 3427.Ql NPage ) 3428to send; if the string is not recognised as a key, it is sent as a series of 3429characters. 3430If 3431.Fl K 3432is given, keys are sent to 3433.Ar target-client , 3434so they are looked up in the client's key table, rather than to 3435.Ar target-pane . 3436All arguments are sent sequentially from first to last. 3437If no keys are given and the command is bound to a key, then that key is used. 3438.Pp 3439The 3440.Fl l 3441flag disables key name lookup and processes the keys as literal UTF-8 3442characters. 3443The 3444.Fl H 3445flag expects each key to be a hexadecimal number for an ASCII character. 3446.Pp 3447The 3448.Fl R 3449flag causes the terminal state to be reset. 3450.Pp 3451.Fl M 3452passes through a mouse event (only valid if bound to a mouse key binding, see 3453.Sx MOUSE SUPPORT ) . 3454.Pp 3455.Fl X 3456is used to send a command into copy mode - see 3457the 3458.Sx WINDOWS AND PANES 3459section. 3460.Fl N 3461specifies a repeat count and 3462.Fl F 3463expands formats in arguments where appropriate. 3464.It Xo Ic send-prefix 3465.Op Fl 2 3466.Op Fl t Ar target-pane 3467.Xc 3468Send the prefix key, or with 3469.Fl 2 3470the secondary prefix key, to a window as if it was pressed. 3471.Tg unbind 3472.It Xo Ic unbind-key 3473.Op Fl anq 3474.Op Fl T Ar key-table 3475.Ar key 3476.Xc 3477.D1 Pq alias: Ic unbind 3478Unbind the command bound to 3479.Ar key . 3480.Fl n 3481and 3482.Fl T 3483are the same as for 3484.Ic bind-key . 3485If 3486.Fl a 3487is present, all key bindings are removed. 3488The 3489.Fl q 3490option prevents errors being returned. 3491.El 3492.Sh OPTIONS 3493The appearance and behaviour of 3494.Nm 3495may be modified by changing the value of various options. 3496There are four types of option: 3497.Em server options , 3498.Em session options , 3499.Em window options , 3500and 3501.Em pane options . 3502.Pp 3503The 3504.Nm 3505server has a set of global server options which do not apply to any particular 3506window or session or pane. 3507These are altered with the 3508.Ic set-option 3509.Fl s 3510command, or displayed with the 3511.Ic show-options 3512.Fl s 3513command. 3514.Pp 3515In addition, each individual session may have a set of session options, and 3516there is a separate set of global session options. 3517Sessions which do not have a particular option configured inherit the value 3518from the global session options. 3519Session options are set or unset with the 3520.Ic set-option 3521command and may be listed with the 3522.Ic show-options 3523command. 3524The available server and session options are listed under the 3525.Ic set-option 3526command. 3527.Pp 3528Similarly, a set of window options is attached to each window and a set of pane 3529options to each pane. 3530Pane options inherit from window options. 3531This means any pane option may be set as a window option to apply the option to 3532all panes in the window without the option set, for example these commands will 3533set the background colour to red for all panes except pane 0: 3534.Bd -literal -offset indent 3535set -w window-style bg=red 3536set -pt:.0 window-style bg=blue 3537.Ed 3538.Pp 3539There is also a set of global window options from which any unset window or 3540pane options are inherited. 3541Window and pane options are altered with 3542.Ic set-option 3543.Fl w 3544and 3545.Fl p 3546commands and displayed with 3547.Ic show-option 3548.Fl w 3549and 3550.Fl p . 3551.Pp 3552.Nm 3553also supports user options which are prefixed with a 3554.Ql \&@ . 3555User options may have any name, so long as they are prefixed with 3556.Ql \&@ , 3557and be set to any string. 3558For example: 3559.Bd -literal -offset indent 3560$ tmux set -wq @foo "abc123" 3561$ tmux show -wv @foo 3562abc123 3563.Ed 3564.Pp 3565Commands which set options are as follows: 3566.Bl -tag -width Ds 3567.Tg set 3568.It Xo Ic set-option 3569.Op Fl aFgopqsuUw 3570.Op Fl t Ar target-pane 3571.Ar option Ar value 3572.Xc 3573.D1 Pq alias: Ic set 3574Set a pane option with 3575.Fl p , 3576a window option with 3577.Fl w , 3578a server option with 3579.Fl s , 3580otherwise a session option. 3581If the option is not a user option, 3582.Fl w 3583or 3584.Fl s 3585may be unnecessary - 3586.Nm 3587will infer the type from the option name, assuming 3588.Fl w 3589for pane options. 3590If 3591.Fl g 3592is given, the global session or window option is set. 3593.Pp 3594.Fl F 3595expands formats in the option value. 3596The 3597.Fl u 3598flag unsets an option, so a session inherits the option from the global 3599options (or with 3600.Fl g , 3601restores a global option to the default). 3602.Fl U 3603unsets an option (like 3604.Fl u ) 3605but if the option is a pane option also unsets the option on any panes in the 3606window. 3607.Ar value 3608depends on the option and may be a number, a string, or a flag (on, off, or 3609omitted to toggle). 3610.Pp 3611The 3612.Fl o 3613flag prevents setting an option that is already set and the 3614.Fl q 3615flag suppresses errors about unknown or ambiguous options. 3616.Pp 3617With 3618.Fl a , 3619and if the option expects a string or a style, 3620.Ar value 3621is appended to the existing setting. 3622For example: 3623.Bd -literal -offset indent 3624set -g status-left "foo" 3625set -ag status-left "bar" 3626.Ed 3627.Pp 3628Will result in 3629.Ql foobar . 3630And: 3631.Bd -literal -offset indent 3632set -g status-style "bg=red" 3633set -ag status-style "fg=blue" 3634.Ed 3635.Pp 3636Will result in a red background 3637.Em and 3638blue foreground. 3639Without 3640.Fl a , 3641the result would be the default background and a blue foreground. 3642.Tg show 3643.It Xo Ic show-options 3644.Op Fl AgHpqsvw 3645.Op Fl t Ar target-pane 3646.Op Ar option 3647.Xc 3648.D1 Pq alias: Ic show 3649Show the pane options (or a single option if 3650.Ar option 3651is provided) with 3652.Fl p , 3653the window options with 3654.Fl w , 3655the server options with 3656.Fl s , 3657otherwise the session options. 3658If the option is not a user option, 3659.Fl w 3660or 3661.Fl s 3662may be unnecessary - 3663.Nm 3664will infer the type from the option name, assuming 3665.Fl w 3666for pane options. 3667Global session or window options are listed if 3668.Fl g 3669is used. 3670.Fl v 3671shows only the option value, not the name. 3672If 3673.Fl q 3674is set, no error will be returned if 3675.Ar option 3676is unset. 3677.Fl H 3678includes hooks (omitted by default). 3679.Fl A 3680includes options inherited from a parent set of options, such options are 3681marked with an asterisk. 3682.El 3683.Pp 3684Available server options are: 3685.Bl -tag -width Ds 3686.It Ic backspace Ar key 3687Set the key sent by 3688.Nm 3689for backspace. 3690.It Ic buffer-limit Ar number 3691Set the number of buffers; as new buffers are added to the top of the stack, 3692old ones are removed from the bottom if necessary to maintain this maximum 3693length. 3694.It Xo Ic command-alias[] 3695.Ar name=value 3696.Xc 3697This is an array of custom aliases for commands. 3698If an unknown command matches 3699.Ar name , 3700it is replaced with 3701.Ar value . 3702For example, after: 3703.Pp 3704.Dl set -s command-alias[100] zoom=\[aq]resize-pane -Z\[aq] 3705.Pp 3706Using: 3707.Pp 3708.Dl zoom -t:.1 3709.Pp 3710Is equivalent to: 3711.Pp 3712.Dl resize-pane -Z -t:.1 3713.Pp 3714Note that aliases are expanded when a command is parsed rather than when it is 3715executed, so binding an alias with 3716.Ic bind-key 3717will bind the expanded form. 3718.It Ic default-terminal Ar terminal 3719Set the default terminal for new windows created in this session - the 3720default value of the 3721.Ev TERM 3722environment variable. 3723For 3724.Nm 3725to work correctly, this 3726.Em must 3727be set to 3728.Ql screen , 3729.Ql tmux 3730or a derivative of them. 3731.It Ic copy-command Ar shell-command 3732Give the command to pipe to if the 3733.Ic copy-pipe 3734copy mode command is used without arguments. 3735.It Ic escape-time Ar time 3736Set the time in milliseconds for which 3737.Nm 3738waits after an escape is input to determine if it is part of a function or meta 3739key sequences. 3740The default is 500 milliseconds. 3741.It Ic editor Ar shell-command 3742Set the command used when 3743.Nm 3744runs an editor. 3745.It Xo Ic exit-empty 3746.Op Ic on | off 3747.Xc 3748If enabled (the default), the server will exit when there are no active 3749sessions. 3750.It Xo Ic exit-unattached 3751.Op Ic on | off 3752.Xc 3753If enabled, the server will exit when there are no attached clients. 3754.It Xo Ic extended-keys 3755.Op Ic on | off | always 3756.Xc 3757When 3758.Ic on 3759or 3760.Ic always , 3761the escape sequence to enable extended keys is sent to the terminal, if 3762.Nm 3763knows that it is supported. 3764.Nm 3765always recognises extended keys itself. 3766If this option is 3767.Ic on , 3768.Nm 3769will only forward extended keys to applications when they request them; if 3770.Ic always , 3771.Nm 3772will always forward the keys. 3773.It Xo Ic focus-events 3774.Op Ic on | off 3775.Xc 3776When enabled, focus events are requested from the terminal if supported and 3777passed through to applications running in 3778.Nm . 3779Attached clients should be detached and attached again after changing this 3780option. 3781.It Ic history-file Ar path 3782If not empty, a file to which 3783.Nm 3784will write command prompt history on exit and load it from on start. 3785.It Ic message-limit Ar number 3786Set the number of error or information messages to save in the message log for 3787each client. 3788.It Ic prompt-history-limit Ar number 3789Set the number of history items to save in the history file for each type of 3790command prompt. 3791.It Xo Ic set-clipboard 3792.Op Ic on | external | off 3793.Xc 3794Attempt to set the terminal clipboard content using the 3795.Xr xterm 1 3796escape sequence, if there is an 3797.Em \&Ms 3798entry in the 3799.Xr terminfo 5 3800description (see the 3801.Sx TERMINFO EXTENSIONS 3802section). 3803.Pp 3804If set to 3805.Ic on , 3806.Nm 3807will both accept the escape sequence to create a buffer and attempt to set 3808the terminal clipboard. 3809If set to 3810.Ic external , 3811.Nm 3812will attempt to set the terminal clipboard but ignore attempts 3813by applications to set 3814.Nm 3815buffers. 3816If 3817.Ic off , 3818.Nm 3819will neither accept the clipboard escape sequence nor attempt to set the 3820clipboard. 3821.Pp 3822Note that this feature needs to be enabled in 3823.Xr xterm 1 3824by setting the resource: 3825.Bd -literal -offset indent 3826disallowedWindowOps: 20,21,SetXprop 3827.Ed 3828.Pp 3829Or changing this property from the 3830.Xr xterm 1 3831interactive menu when required. 3832.It Ic terminal-features[] Ar string 3833Set terminal features for terminal types read from 3834.Xr terminfo 5 . 3835.Nm 3836has a set of named terminal features. 3837Each will apply appropriate changes to the 3838.Xr terminfo 5 3839entry in use. 3840.Pp 3841.Nm 3842can detect features for a few common terminals; this option can be used to 3843easily tell tmux about features supported by terminals it cannot detect. 3844The 3845.Ic terminal-overrides 3846option allows individual 3847.Xr terminfo 5 3848capabilities to be set instead, 3849.Ic terminal-features 3850is intended for classes of functionality supported in a standard way but not 3851reported by 3852.Xr terminfo 5 . 3853Care must be taken to configure this only with features the terminal actually 3854supports. 3855.Pp 3856This is an array option where each entry is a colon-separated string made up 3857of a terminal type pattern (matched using 3858.Xr fnmatch 3 ) 3859followed by a list of terminal features. 3860The available features are: 3861.Bl -tag -width Ds 3862.It 256 3863Supports 256 colours with the SGR escape sequences. 3864.It clipboard 3865Allows setting the system clipboard. 3866.It ccolour 3867Allows setting the cursor colour. 3868.It cstyle 3869Allows setting the cursor style. 3870.It extkeys 3871Supports extended keys. 3872.It focus 3873Supports focus reporting. 3874.It hyperlinks 3875Supports OSC 8 hyperlinks. 3876.It ignorefkeys 3877Ignore function keys from 3878.Xr terminfo 5 3879and use the 3880.Nm 3881internal set only. 3882.It margins 3883Supports DECSLRM margins. 3884.It mouse 3885Supports 3886.Xr xterm 1 3887mouse sequences. 3888.It osc7 3889Supports the OSC 7 working directory extension. 3890.It overline 3891Supports the overline SGR attribute. 3892.It rectfill 3893Supports the DECFRA rectangle fill escape sequence. 3894.It RGB 3895Supports RGB colour with the SGR escape sequences. 3896.It sixel 3897Supports SIXEL graphics. 3898.It strikethrough 3899Supports the strikethrough SGR escape sequence. 3900.It sync 3901Supports synchronized updates. 3902.It title 3903Supports 3904.Xr xterm 1 3905title setting. 3906.It usstyle 3907Allows underscore style and colour to be set. 3908.El 3909.It Ic terminal-overrides[] Ar string 3910Allow terminal descriptions read using 3911.Xr terminfo 5 3912to be overridden. 3913Each entry is a colon-separated string made up of a terminal type pattern 3914(matched using 3915.Xr fnmatch 3 ) 3916and a set of 3917.Em name=value 3918entries. 3919.Pp 3920For example, to set the 3921.Ql clear 3922.Xr terminfo 5 3923entry to 3924.Ql \ee[H\ee[2J 3925for all terminal types matching 3926.Ql rxvt* : 3927.Pp 3928.Dl "rxvt*:clear=\ee[H\ee[2J" 3929.Pp 3930The terminal entry value is passed through 3931.Xr strunvis 3 3932before interpretation. 3933.It Ic user-keys[] Ar key 3934Set list of user-defined key escape sequences. 3935Each item is associated with a key named 3936.Ql User0 , 3937.Ql User1 , 3938and so on. 3939.Pp 3940For example: 3941.Bd -literal -offset indent 3942set -s user-keys[0] "\ee[5;30012\[ti]" 3943bind User0 resize-pane -L 3 3944.Ed 3945.El 3946.Pp 3947Available session options are: 3948.Bl -tag -width Ds 3949.It Xo Ic activity-action 3950.Op Ic any | none | current | other 3951.Xc 3952Set action on window activity when 3953.Ic monitor-activity 3954is on. 3955.Ic any 3956means activity in any window linked to a session causes a bell or message 3957(depending on 3958.Ic visual-activity ) 3959in the current window of that session, 3960.Ic none 3961means all activity is ignored (equivalent to 3962.Ic monitor-activity 3963being off), 3964.Ic current 3965means only activity in windows other than the current window are ignored and 3966.Ic other 3967means activity in the current window is ignored but not those in other windows. 3968.It Ic assume-paste-time Ar milliseconds 3969If keys are entered faster than one in 3970.Ar milliseconds , 3971they are assumed to have been pasted rather than typed and 3972.Nm 3973key bindings are not processed. 3974The default is one millisecond and zero disables. 3975.It Ic base-index Ar index 3976Set the base index from which an unused index should be searched when a new 3977window is created. 3978The default is zero. 3979.It Xo Ic bell-action 3980.Op Ic any | none | current | other 3981.Xc 3982Set action on a bell in a window when 3983.Ic monitor-bell 3984is on. 3985The values are the same as those for 3986.Ic activity-action . 3987.It Ic default-command Ar shell-command 3988Set the command used for new windows (if not specified when the window is 3989created) to 3990.Ar shell-command , 3991which may be any 3992.Xr sh 1 3993command. 3994The default is an empty string, which instructs 3995.Nm 3996to create a login shell using the value of the 3997.Ic default-shell 3998option. 3999.It Ic default-shell Ar path 4000Specify the default shell. 4001This is used as the login shell for new windows when the 4002.Ic default-command 4003option is set to empty, and must be the full path of the executable. 4004When started 4005.Nm 4006tries to set a default value from the first suitable of the 4007.Ev SHELL 4008environment variable, the shell returned by 4009.Xr getpwuid 3 , 4010or 4011.Pa /bin/sh . 4012This option should be configured when 4013.Nm 4014is used as a login shell. 4015.It Ic default-size Ar XxY 4016Set the default size of new windows when the 4017.Ic window-size 4018option is set to manual or when a session is created with 4019.Ic new-session 4020.Fl d . 4021The value is the width and height separated by an 4022.Ql x 4023character. 4024The default is 80x24. 4025.It Xo Ic destroy-unattached 4026.Op Ic on | off 4027.Xc 4028If enabled and the session is no longer attached to any clients, it is 4029destroyed. 4030.It Xo Ic detach-on-destroy 4031.Op Ic off | on | no-detached | previous | next 4032.Xc 4033If 4034.Ic on 4035(the default), the client is detached when the session it is attached to 4036is destroyed. 4037If 4038.Ic off , 4039the client is switched to the most recently active of the remaining 4040sessions. 4041If 4042.Ic no-detached , 4043the client is detached only if there are no detached sessions; if detached 4044sessions exist, the client is switched to the most recently active. 4045If 4046.Ic previous 4047or 4048.Ic next , 4049the client is switched to the previous or next session in alphabetical order. 4050.It Ic display-panes-active-colour Ar colour 4051Set the colour used by the 4052.Ic display-panes 4053command to show the indicator for the active pane. 4054.It Ic display-panes-colour Ar colour 4055Set the colour used by the 4056.Ic display-panes 4057command to show the indicators for inactive panes. 4058.It Ic display-panes-time Ar time 4059Set the time in milliseconds for which the indicators shown by the 4060.Ic display-panes 4061command appear. 4062.It Ic display-time Ar time 4063Set the amount of time for which status line messages and other on-screen 4064indicators are displayed. 4065If set to 0, messages and indicators are displayed until a key is pressed. 4066.Ar time 4067is in milliseconds. 4068.It Ic history-limit Ar lines 4069Set the maximum number of lines held in window history. 4070This setting applies only to new windows - existing window histories are not 4071resized and retain the limit at the point they were created. 4072.It Ic key-table Ar key-table 4073Set the default key table to 4074.Ar key-table 4075instead of 4076.Em root . 4077.It Ic lock-after-time Ar number 4078Lock the session (like the 4079.Ic lock-session 4080command) after 4081.Ar number 4082seconds of inactivity. 4083The default is not to lock (set to 0). 4084.It Ic lock-command Ar shell-command 4085Command to run when locking each client. 4086The default is to run 4087.Xr lock 1 4088with 4089.Fl np . 4090.It Ic menu-style Ar style 4091Set the menu style. 4092See the 4093.Sx STYLES 4094section on how to specify 4095.Ar style . 4096Attributes are ignored. 4097.It Ic menu-selected-style Ar style 4098Set the selected menu item style. 4099See the 4100.Sx STYLES 4101section on how to specify 4102.Ar style . 4103Attributes are ignored. 4104.It Ic menu-border-style Ar style 4105Set the menu border style. 4106See the 4107.Sx STYLES 4108section on how to specify 4109.Ar style . 4110Attributes are ignored. 4111.It Ic menu-border-lines Ar type 4112Set the type of characters used for drawing menu borders. 4113See 4114.Ic popup-border-lines 4115for possible values for 4116.Ar border-lines . 4117.It Ic message-command-style Ar style 4118Set status line message command style. 4119This is used for the command prompt with 4120.Xr vi 1 4121keys when in command mode. 4122For how to specify 4123.Ar style , 4124see the 4125.Sx STYLES 4126section. 4127.It Xo Ic message-line 4128.Op Ic 0 | 1 | 2 | 3 | 4 4129.Xc 4130Set line on which status line messages and the command prompt are shown. 4131.It Ic message-style Ar style 4132Set status line message style. 4133This is used for messages and for the command prompt. 4134For how to specify 4135.Ar style , 4136see the 4137.Sx STYLES 4138section. 4139.It Xo Ic mouse 4140.Op Ic on | off 4141.Xc 4142If on, 4143.Nm 4144captures the mouse and allows mouse events to be bound as key bindings. 4145See the 4146.Sx MOUSE SUPPORT 4147section for details. 4148.It Ic prefix Ar key 4149Set the key accepted as a prefix key. 4150In addition to the standard keys described under 4151.Sx KEY BINDINGS , 4152.Ic prefix 4153can be set to the special key 4154.Ql None 4155to set no prefix. 4156.It Ic prefix2 Ar key 4157Set a secondary key accepted as a prefix key. 4158Like 4159.Ic prefix , 4160.Ic prefix2 4161can be set to 4162.Ql None . 4163.It Xo Ic renumber-windows 4164.Op Ic on | off 4165.Xc 4166If on, when a window is closed in a session, automatically renumber the other 4167windows in numerical order. 4168This respects the 4169.Ic base-index 4170option if it has been set. 4171If off, do not renumber the windows. 4172.It Ic repeat-time Ar time 4173Allow multiple commands to be entered without pressing the prefix-key again 4174in the specified 4175.Ar time 4176milliseconds (the default is 500). 4177Whether a key repeats may be set when it is bound using the 4178.Fl r 4179flag to 4180.Ic bind-key . 4181Repeat is enabled for the default keys bound to the 4182.Ic resize-pane 4183command. 4184.It Xo Ic set-titles 4185.Op Ic on | off 4186.Xc 4187Attempt to set the client terminal title using the 4188.Em tsl 4189and 4190.Em fsl 4191.Xr terminfo 5 4192entries if they exist. 4193.Nm 4194automatically sets these to the \ee]0;...\e007 sequence if 4195the terminal appears to be 4196.Xr xterm 1 . 4197This option is off by default. 4198.It Ic set-titles-string Ar string 4199String used to set the client terminal title if 4200.Ic set-titles 4201is on. 4202Formats are expanded, see the 4203.Sx FORMATS 4204section. 4205.It Xo Ic silence-action 4206.Op Ic any | none | current | other 4207.Xc 4208Set action on window silence when 4209.Ic monitor-silence 4210is on. 4211The values are the same as those for 4212.Ic activity-action . 4213.It Xo Ic status 4214.Op Ic off | on | 2 | 3 | 4 | 5 4215.Xc 4216Show or hide the status line or specify its size. 4217Using 4218.Ic on 4219gives a status line one row in height; 4220.Ic 2 , 4221.Ic 3 , 4222.Ic 4 4223or 4224.Ic 5 4225more rows. 4226.It Ic status-format[] Ar format 4227Specify the format to be used for each line of the status line. 4228The default builds the top status line from the various individual status 4229options below. 4230.It Ic status-interval Ar interval 4231Update the status line every 4232.Ar interval 4233seconds. 4234By default, updates will occur every 15 seconds. 4235A setting of zero disables redrawing at interval. 4236.It Xo Ic status-justify 4237.Op Ic left | centre | right | absolute-centre 4238.Xc 4239Set the position of the window list in the status line: left, centre or right. 4240centre puts the window list in the relative centre of the available free space; 4241absolute-centre uses the centre of the entire horizontal space. 4242.It Xo Ic status-keys 4243.Op Ic vi | emacs 4244.Xc 4245Use vi or emacs-style 4246key bindings in the status line, for example at the command prompt. 4247The default is emacs, unless the 4248.Ev VISUAL 4249or 4250.Ev EDITOR 4251environment variables are set and contain the string 4252.Ql vi . 4253.It Ic status-left Ar string 4254Display 4255.Ar string 4256(by default the session name) to the left of the status line. 4257.Ar string 4258will be passed through 4259.Xr strftime 3 . 4260Also see the 4261.Sx FORMATS 4262and 4263.Sx STYLES 4264sections. 4265.Pp 4266For details on how the names and titles can be set see the 4267.Sx "NAMES AND TITLES" 4268section. 4269.Pp 4270Examples are: 4271.Bd -literal -offset indent 4272#(sysctl vm.loadavg) 4273#[fg=yellow,bold]#(apm -l)%%#[default] [#S] 4274.Ed 4275.Pp 4276The default is 4277.Ql "[#S] " . 4278.It Ic status-left-length Ar length 4279Set the maximum 4280.Ar length 4281of the left component of the status line. 4282The default is 10. 4283.It Ic status-left-style Ar style 4284Set the style of the left part of the status line. 4285For how to specify 4286.Ar style , 4287see the 4288.Sx STYLES 4289section. 4290.It Xo Ic status-position 4291.Op Ic top | bottom 4292.Xc 4293Set the position of the status line. 4294.It Ic status-right Ar string 4295Display 4296.Ar string 4297to the right of the status line. 4298By default, the current pane title in double quotes, the date and the time 4299are shown. 4300As with 4301.Ic status-left , 4302.Ar string 4303will be passed to 4304.Xr strftime 3 4305and character pairs are replaced. 4306.It Ic status-right-length Ar length 4307Set the maximum 4308.Ar length 4309of the right component of the status line. 4310The default is 40. 4311.It Ic status-right-style Ar style 4312Set the style of the right part of the status line. 4313For how to specify 4314.Ar style , 4315see the 4316.Sx STYLES 4317section. 4318.It Ic status-style Ar style 4319Set status line style. 4320For how to specify 4321.Ar style , 4322see the 4323.Sx STYLES 4324section. 4325.It Ic update-environment[] Ar variable 4326Set list of environment variables to be copied into the session environment 4327when a new session is created or an existing session is attached. 4328Any variables that do not exist in the source environment are set to be 4329removed from the session environment (as if 4330.Fl r 4331was given to the 4332.Ic set-environment 4333command). 4334.It Xo Ic visual-activity 4335.Op Ic on | off | both 4336.Xc 4337If on, display a message instead of sending a bell when activity occurs in a 4338window for which the 4339.Ic monitor-activity 4340window option is enabled. 4341If set to both, a bell and a message are produced. 4342.It Xo Ic visual-bell 4343.Op Ic on | off | both 4344.Xc 4345If on, a message is shown on a bell in a window for which the 4346.Ic monitor-bell 4347window option is enabled instead of it being passed through to the 4348terminal (which normally makes a sound). 4349If set to both, a bell and a message are produced. 4350Also see the 4351.Ic bell-action 4352option. 4353.It Xo Ic visual-silence 4354.Op Ic on | off | both 4355.Xc 4356If 4357.Ic monitor-silence 4358is enabled, prints a message after the interval has expired on a given window 4359instead of sending a bell. 4360If set to both, a bell and a message are produced. 4361.It Ic word-separators Ar string 4362Sets the session's conception of what characters are considered word 4363separators, for the purposes of the next and previous word commands in 4364copy mode. 4365.El 4366.Pp 4367Available window options are: 4368.Pp 4369.Bl -tag -width Ds -compact 4370.It Xo Ic aggressive-resize 4371.Op Ic on | off 4372.Xc 4373Aggressively resize the chosen window. 4374This means that 4375.Nm 4376will resize the window to the size of the smallest or largest session 4377(see the 4378.Ic window-size 4379option) for which it is the current window, rather than the session to 4380which it is attached. 4381The window may resize when the current window is changed on another 4382session; this option is good for full-screen programs which support 4383.Dv SIGWINCH 4384and poor for interactive programs such as shells. 4385.Pp 4386.It Xo Ic automatic-rename 4387.Op Ic on | off 4388.Xc 4389Control automatic window renaming. 4390When this setting is enabled, 4391.Nm 4392will rename the window automatically using the format specified by 4393.Ic automatic-rename-format . 4394This flag is automatically disabled for an individual window when a name 4395is specified at creation with 4396.Ic new-window 4397or 4398.Ic new-session , 4399or later with 4400.Ic rename-window , 4401or with a terminal escape sequence. 4402It may be switched off globally with: 4403.Bd -literal -offset indent 4404set-option -wg automatic-rename off 4405.Ed 4406.Pp 4407.It Ic automatic-rename-format Ar format 4408The format (see 4409.Sx FORMATS ) 4410used when the 4411.Ic automatic-rename 4412option is enabled. 4413.Pp 4414.It Ic clock-mode-colour Ar colour 4415Set clock colour. 4416.Pp 4417.It Xo Ic clock-mode-style 4418.Op Ic 12 | 24 4419.Xc 4420Set clock hour format. 4421.Pp 4422.It Ic fill-character Ar character 4423Set the character used to fill areas of the terminal unused by a window. 4424.Pp 4425.It Ic main-pane-height Ar height 4426.It Ic main-pane-width Ar width 4427Set the width or height of the main (left or top) pane in the 4428.Ic main-horizontal 4429or 4430.Ic main-vertical 4431layouts. 4432If suffixed by 4433.Ql % , 4434this is a percentage of the window size. 4435.Pp 4436.It Ic copy-mode-match-style Ar style 4437Set the style of search matches in copy mode. 4438For how to specify 4439.Ar style , 4440see the 4441.Sx STYLES 4442section. 4443.Pp 4444.It Ic copy-mode-mark-style Ar style 4445Set the style of the line containing the mark in copy mode. 4446For how to specify 4447.Ar style , 4448see the 4449.Sx STYLES 4450section. 4451.Pp 4452.It Ic copy-mode-current-match-style Ar style 4453Set the style of the current search match in copy mode. 4454For how to specify 4455.Ar style , 4456see the 4457.Sx STYLES 4458section. 4459.Pp 4460.It Xo Ic mode-keys 4461.Op Ic vi | emacs 4462.Xc 4463Use vi or emacs-style key bindings in copy mode. 4464The default is emacs, unless 4465.Ev VISUAL 4466or 4467.Ev EDITOR 4468contains 4469.Ql vi . 4470.Pp 4471.It Ic mode-style Ar style 4472Set window modes style. 4473For how to specify 4474.Ar style , 4475see the 4476.Sx STYLES 4477section. 4478.Pp 4479.It Xo Ic monitor-activity 4480.Op Ic on | off 4481.Xc 4482Monitor for activity in the window. 4483Windows with activity are highlighted in the status line. 4484.Pp 4485.It Xo Ic monitor-bell 4486.Op Ic on | off 4487.Xc 4488Monitor for a bell in the window. 4489Windows with a bell are highlighted in the status line. 4490.Pp 4491.It Xo Ic monitor-silence 4492.Op Ic interval 4493.Xc 4494Monitor for silence (no activity) in the window within 4495.Ic interval 4496seconds. 4497Windows that have been silent for the interval are highlighted in the 4498status line. 4499An interval of zero disables the monitoring. 4500.Pp 4501.It Ic other-pane-height Ar height 4502Set the height of the other panes (not the main pane) in the 4503.Ic main-horizontal 4504layout. 4505If this option is set to 0 (the default), it will have no effect. 4506If both the 4507.Ic main-pane-height 4508and 4509.Ic other-pane-height 4510options are set, the main pane will grow taller to make the other panes the 4511specified height, but will never shrink to do so. 4512If suffixed by 4513.Ql % , 4514this is a percentage of the window size. 4515.Pp 4516.It Ic other-pane-width Ar width 4517Like 4518.Ic other-pane-height , 4519but set the width of other panes in the 4520.Ic main-vertical 4521layout. 4522.Pp 4523.It Ic pane-active-border-style Ar style 4524Set the pane border style for the currently active pane. 4525For how to specify 4526.Ar style , 4527see the 4528.Sx STYLES 4529section. 4530Attributes are ignored. 4531.Pp 4532.It Ic pane-base-index Ar index 4533Like 4534.Ic base-index , 4535but set the starting index for pane numbers. 4536.Pp 4537.It Ic pane-border-format Ar format 4538Set the text shown in pane border status lines. 4539.Pp 4540.It Xo Ic pane-border-indicators 4541.Op Ic off | colour | arrows | both 4542.Xc 4543Indicate active pane by colouring only half of the border in windows with 4544exactly two panes, by displaying arrow markers, by drawing both or neither. 4545.Pp 4546.It Ic pane-border-lines Ar type 4547Set the type of characters used for drawing pane borders. 4548.Ar type 4549may be one of: 4550.Bl -tag -width Ds 4551.It single 4552single lines using ACS or UTF-8 characters 4553.It double 4554double lines using UTF-8 characters 4555.It heavy 4556heavy lines using UTF-8 characters 4557.It simple 4558simple ASCII characters 4559.It number 4560the pane number 4561.El 4562.Pp 4563.Ql double 4564and 4565.Ql heavy 4566will fall back to standard ACS line drawing when UTF-8 is not supported. 4567.Pp 4568.It Xo Ic pane-border-status 4569.Op Ic off | top | bottom 4570.Xc 4571Turn pane border status lines off or set their position. 4572.Pp 4573.It Ic pane-border-style Ar style 4574Set the pane border style for panes aside from the active pane. 4575For how to specify 4576.Ar style , 4577see the 4578.Sx STYLES 4579section. 4580Attributes are ignored. 4581.Pp 4582.It Ic popup-style Ar style 4583Set the popup style. 4584See the 4585.Sx STYLES 4586section on how to specify 4587.Ar style . 4588Attributes are ignored. 4589.Pp 4590.It Ic popup-border-style Ar style 4591Set the popup border style. 4592See the 4593.Sx STYLES 4594section on how to specify 4595.Ar style . 4596Attributes are ignored. 4597.Pp 4598.It Ic popup-border-lines Ar type 4599Set the type of characters used for drawing popup borders. 4600.Ar type 4601may be one of: 4602.Bl -tag -width Ds 4603.It single 4604single lines using ACS or UTF-8 characters (default) 4605.It rounded 4606variation of single with rounded corners using UTF-8 characters 4607.It double 4608double lines using UTF-8 characters 4609.It heavy 4610heavy lines using UTF-8 characters 4611.It simple 4612simple ASCII characters 4613.It padded 4614simple ASCII space character 4615.It none 4616no border 4617.El 4618.Pp 4619.Ql double 4620and 4621.Ql heavy 4622will fall back to standard ACS line drawing when UTF-8 is not supported. 4623.Pp 4624.It Ic window-status-activity-style Ar style 4625Set status line style for windows with an activity alert. 4626For how to specify 4627.Ar style , 4628see the 4629.Sx STYLES 4630section. 4631.Pp 4632.It Ic window-status-bell-style Ar style 4633Set status line style for windows with a bell alert. 4634For how to specify 4635.Ar style , 4636see the 4637.Sx STYLES 4638section. 4639.Pp 4640.It Ic window-status-current-format Ar string 4641Like 4642.Ar window-status-format , 4643but is the format used when the window is the current window. 4644.Pp 4645.It Ic window-status-current-style Ar style 4646Set status line style for the currently active window. 4647For how to specify 4648.Ar style , 4649see the 4650.Sx STYLES 4651section. 4652.Pp 4653.It Ic window-status-format Ar string 4654Set the format in which the window is displayed in the status line window list. 4655See the 4656.Sx FORMATS 4657and 4658.Sx STYLES 4659sections. 4660.Pp 4661.It Ic window-status-last-style Ar style 4662Set status line style for the last active window. 4663For how to specify 4664.Ar style , 4665see the 4666.Sx STYLES 4667section. 4668.Pp 4669.It Ic window-status-separator Ar string 4670Sets the separator drawn between windows in the status line. 4671The default is a single space character. 4672.Pp 4673.It Ic window-status-style Ar style 4674Set status line style for a single window. 4675For how to specify 4676.Ar style , 4677see the 4678.Sx STYLES 4679section. 4680.Pp 4681.It Xo Ic window-size 4682.Ar largest | Ar smallest | Ar manual | Ar latest 4683.Xc 4684Configure how 4685.Nm 4686determines the window size. 4687If set to 4688.Ar largest , 4689the size of the largest attached session is used; if 4690.Ar smallest , 4691the size of the smallest. 4692If 4693.Ar manual , 4694the size of a new window is set from the 4695.Ic default-size 4696option and windows are resized automatically. 4697With 4698.Ar latest , 4699.Nm 4700uses the size of the client that had the most recent activity. 4701See also the 4702.Ic resize-window 4703command and the 4704.Ic aggressive-resize 4705option. 4706.Pp 4707.It Xo Ic wrap-search 4708.Op Ic on | off 4709.Xc 4710If this option is set, searches will wrap around the end of the pane contents. 4711The default is on. 4712.El 4713.Pp 4714Available pane options are: 4715.Pp 4716.Bl -tag -width Ds -compact 4717.It Xo Ic allow-passthrough 4718.Op Ic on | off | all 4719.Xc 4720Allow programs in the pane to bypass 4721.Nm 4722using a terminal escape sequence (\eePtmux;...\ee\e\e). 4723If set to 4724.Ic on , 4725passthrough sequences will be allowed only if the pane is visible. 4726If set to 4727.Ic all , 4728they will be allowed even if the pane is invisible. 4729.Pp 4730.It Xo Ic allow-rename 4731.Op Ic on | off 4732.Xc 4733Allow programs in the pane to change the window name using a terminal escape 4734sequence (\eek...\ee\e\e). 4735.Pp 4736.It Xo Ic alternate-screen 4737.Op Ic on | off 4738.Xc 4739This option configures whether programs running inside the pane may use the 4740terminal alternate screen feature, which allows the 4741.Em smcup 4742and 4743.Em rmcup 4744.Xr terminfo 5 4745capabilities. 4746The alternate screen feature preserves the contents of the window when an 4747interactive application starts and restores it on exit, so that any output 4748visible before the application starts reappears unchanged after it exits. 4749.Pp 4750.It Ic cursor-colour Ar colour 4751Set the colour of the cursor. 4752.Pp 4753.It Ic pane-colours[] Ar colour 4754The default colour palette. 4755Each entry in the array defines the colour 4756.Nm 4757uses when the colour with that index is requested. 4758The index may be from zero to 255. 4759.Pp 4760.It Ic cursor-style Ar style 4761Set the style of the cursor. 4762Available styles are: 4763.Ic default , 4764.Ic blinking-block , 4765.Ic block , 4766.Ic blinking-underline , 4767.Ic underline , 4768.Ic blinking-bar , 4769.Ic bar . 4770.Pp 4771.It Xo Ic remain-on-exit 4772.Op Ic on | off | failed 4773.Xc 4774A pane with this flag set is not destroyed when the program running in it 4775exits. 4776If set to 4777.Ic failed , 4778then only when the program exit status is not zero. 4779The pane may be reactivated with the 4780.Ic respawn-pane 4781command. 4782.Pp 4783.It Ic remain-on-exit-format Ar string 4784Set the text shown at the bottom of exited panes when 4785.Ic remain-on-exit 4786is enabled. 4787.Pp 4788.It Xo Ic scroll-on-clear 4789.Op Ic on | off 4790.Xc 4791When the entire screen is cleared and this option is on, scroll the contents of 4792the screen into history before clearing it. 4793.Pp 4794.It Xo Ic synchronize-panes 4795.Op Ic on | off 4796.Xc 4797Duplicate input to all other panes in the same window where this option is also 4798on (only for panes that are not in any mode). 4799.Pp 4800.It Ic window-active-style Ar style 4801Set the pane style when it is the active pane. 4802For how to specify 4803.Ar style , 4804see the 4805.Sx STYLES 4806section. 4807.Pp 4808.It Ic window-style Ar style 4809Set the pane style. 4810For how to specify 4811.Ar style , 4812see the 4813.Sx STYLES 4814section. 4815.El 4816.Sh HOOKS 4817.Nm 4818allows commands to run on various triggers, called 4819.Em hooks . 4820Most 4821.Nm 4822commands have an 4823.Em after 4824hook and there are a number of hooks not associated with commands. 4825.Pp 4826Hooks are stored as array options, members of the array are executed in 4827order when the hook is triggered. 4828Like options different hooks may be global or belong to a session, window or 4829pane. 4830Hooks may be configured with the 4831.Ic set-hook 4832or 4833.Ic set-option 4834commands and displayed with 4835.Ic show-hooks 4836or 4837.Ic show-options 4838.Fl H . 4839The following two commands are equivalent: 4840.Bd -literal -offset indent. 4841set-hook -g pane-mode-changed[42] \[aq]set -g status-left-style bg=red\[aq] 4842set-option -g pane-mode-changed[42] \[aq]set -g status-left-style bg=red\[aq] 4843.Ed 4844.Pp 4845Setting a hook without specifying an array index clears the hook and sets the 4846first member of the array. 4847.Pp 4848A command's after 4849hook is run after it completes, except when the command is run as part of a hook 4850itself. 4851They are named with an 4852.Ql after- 4853prefix. 4854For example, the following command adds a hook to select the even-vertical 4855layout after every 4856.Ic split-window : 4857.Bd -literal -offset indent 4858set-hook -g after-split-window "selectl even-vertical" 4859.Ed 4860.Pp 4861All the notifications listed in the 4862.Sx CONTROL MODE 4863section are hooks (without any arguments), except 4864.Ic %exit . 4865The following additional hooks are available: 4866.Bl -tag -width "XXXXXXXXXXXXXXXXXXXXXX" 4867.It alert-activity 4868Run when a window has activity. 4869See 4870.Ic monitor-activity . 4871.It alert-bell 4872Run when a window has received a bell. 4873See 4874.Ic monitor-bell . 4875.It alert-silence 4876Run when a window has been silent. 4877See 4878.Ic monitor-silence . 4879.It client-active 4880Run when a client becomes the latest active client of its session. 4881.It client-attached 4882Run when a client is attached. 4883.It client-detached 4884Run when a client is detached 4885.It client-focus-in 4886Run when focus enters a client 4887.It client-focus-out 4888Run when focus exits a client 4889.It client-resized 4890Run when a client is resized. 4891.It client-session-changed 4892Run when a client's attached session is changed. 4893.It pane-died 4894Run when the program running in a pane exits, but 4895.Ic remain-on-exit 4896is on so the pane has not closed. 4897.It pane-exited 4898Run when the program running in a pane exits. 4899.It pane-focus-in 4900Run when the focus enters a pane, if the 4901.Ic focus-events 4902option is on. 4903.It pane-focus-out 4904Run when the focus exits a pane, if the 4905.Ic focus-events 4906option is on. 4907.It pane-set-clipboard 4908Run when the terminal clipboard is set using the 4909.Xr xterm 1 4910escape sequence. 4911.It session-created 4912Run when a new session created. 4913.It session-closed 4914Run when a session closed. 4915.It session-renamed 4916Run when a session is renamed. 4917.It window-linked 4918Run when a window is linked into a session. 4919.It window-renamed 4920Run when a window is renamed. 4921.It window-resized 4922Run when a window is resized. 4923This may be after the 4924.Ar client-resized 4925hook is run. 4926.It window-unlinked 4927Run when a window is unlinked from a session. 4928.El 4929.Pp 4930Hooks are managed with these commands: 4931.Bl -tag -width Ds 4932.It Xo Ic set-hook 4933.Op Fl agpRuw 4934.Op Fl t Ar target-pane 4935.Ar hook-name 4936.Ar command 4937.Xc 4938Without 4939.Fl R , 4940sets (or with 4941.Fl u 4942unsets) hook 4943.Ar hook-name 4944to 4945.Ar command . 4946The flags are the same as for 4947.Ic set-option . 4948.Pp 4949With 4950.Fl R , 4951run 4952.Ar hook-name 4953immediately. 4954.It Xo Ic show-hooks 4955.Op Fl gpw 4956.Op Fl t Ar target-pane 4957.Xc 4958Shows hooks. 4959The flags are the same as for 4960.Ic show-options . 4961.El 4962.Sh MOUSE SUPPORT 4963If the 4964.Ic mouse 4965option is on (the default is off), 4966.Nm 4967allows mouse events to be bound as keys. 4968The name of each key is made up of a mouse event (such as 4969.Ql MouseUp1 ) 4970and a location suffix, one of the following: 4971.Bl -column "XXXXXXXXXXXXX" -offset indent 4972.It Li "Pane" Ta "the contents of a pane" 4973.It Li "Border" Ta "a pane border" 4974.It Li "Status" Ta "the status line window list" 4975.It Li "StatusLeft" Ta "the left part of the status line" 4976.It Li "StatusRight" Ta "the right part of the status line" 4977.It Li "StatusDefault" Ta "any other part of the status line" 4978.El 4979.Pp 4980The following mouse events are available: 4981.Bl -column "MouseDown1" "MouseDrag1" "WheelDown" -offset indent 4982.It Li "WheelUp" Ta "WheelDown" Ta "" 4983.It Li "MouseDown1" Ta "MouseUp1" Ta "MouseDrag1" Ta "MouseDragEnd1" 4984.It Li "MouseDown2" Ta "MouseUp2" Ta "MouseDrag2" Ta "MouseDragEnd2" 4985.It Li "MouseDown3" Ta "MouseUp3" Ta "MouseDrag3" Ta "MouseDragEnd3" 4986.It Li "SecondClick1" Ta "SecondClick2" Ta "SecondClick3" 4987.It Li "DoubleClick1" Ta "DoubleClick2" Ta "DoubleClick3" 4988.It Li "TripleClick1" Ta "TripleClick2" Ta "TripleClick3" 4989.El 4990.Pp 4991The 4992.Ql SecondClick 4993events are fired for the second click of a double click, even if there may be a 4994third click which will fire 4995.Ql TripleClick 4996instead of 4997.Ql DoubleClick . 4998.Pp 4999Each should be suffixed with a location, for example 5000.Ql MouseDown1Status . 5001.Pp 5002The special token 5003.Ql {mouse} 5004or 5005.Ql = 5006may be used as 5007.Ar target-window 5008or 5009.Ar target-pane 5010in commands bound to mouse key bindings. 5011It resolves to the window or pane over which the mouse event took place 5012(for example, the window in the status line over which button 1 was released 5013for a 5014.Ql MouseUp1Status 5015binding, or the pane over which the wheel was scrolled for a 5016.Ql WheelDownPane 5017binding). 5018.Pp 5019The 5020.Ic send-keys 5021.Fl M 5022flag may be used to forward a mouse event to a pane. 5023.Pp 5024The default key bindings allow the mouse to be used to select and resize panes, 5025to copy text and to change window using the status line. 5026These take effect if the 5027.Ic mouse 5028option is turned on. 5029.Sh FORMATS 5030Certain commands accept the 5031.Fl F 5032flag with a 5033.Ar format 5034argument. 5035This is a string which controls the output format of the command. 5036Format variables are enclosed in 5037.Ql #{ 5038and 5039.Ql } , 5040for example 5041.Ql #{session_name} . 5042The possible variables are listed in the table below, or the name of a 5043.Nm 5044option may be used for an option's value. 5045Some variables have a shorter alias such as 5046.Ql #S ; 5047.Ql ## 5048is replaced by a single 5049.Ql # , 5050.Ql #, 5051by a 5052.Ql \&, 5053and 5054.Ql #} 5055by a 5056.Ql } . 5057.Pp 5058Conditionals are available by prefixing with 5059.Ql \&? 5060and separating two alternatives with a comma; 5061if the specified variable exists and is not zero, the first alternative 5062is chosen, otherwise the second is used. 5063For example 5064.Ql #{?session_attached,attached,not attached} 5065will include the string 5066.Ql attached 5067if the session is attached and the string 5068.Ql not attached 5069if it is unattached, or 5070.Ql #{?automatic-rename,yes,no} 5071will include 5072.Ql yes 5073if 5074.Ic automatic-rename 5075is enabled, or 5076.Ql no 5077if not. 5078Conditionals can be nested arbitrarily. 5079Inside a conditional, 5080.Ql \&, 5081and 5082.Ql } 5083must be escaped as 5084.Ql #, 5085and 5086.Ql #} , 5087unless they are part of a 5088.Ql #{...} 5089replacement. 5090For example: 5091.Bd -literal -offset indent 5092#{?pane_in_mode,#[fg=white#,bg=red],#[fg=red#,bg=white]}#W . 5093.Ed 5094.Pp 5095String comparisons may be expressed by prefixing two comma-separated 5096alternatives by 5097.Ql == , 5098.Ql != , 5099.Ql < , 5100.Ql > , 5101.Ql <= 5102or 5103.Ql >= 5104and a colon. 5105For example 5106.Ql #{==:#{host},myhost} 5107will be replaced by 5108.Ql 1 5109if running on 5110.Ql myhost , 5111otherwise by 5112.Ql 0 . 5113.Ql || 5114and 5115.Ql && 5116evaluate to true if either or both of two comma-separated alternatives are 5117true, for example 5118.Ql #{||:#{pane_in_mode},#{alternate_on}} . 5119.Pp 5120An 5121.Ql m 5122specifies an 5123.Xr fnmatch 3 5124or regular expression comparison. 5125The first argument is the pattern and the second the string to compare. 5126An optional argument specifies flags: 5127.Ql r 5128means the pattern is a regular expression instead of the default 5129.Xr fnmatch 3 5130pattern, and 5131.Ql i 5132means to ignore case. 5133For example: 5134.Ql #{m:*foo*,#{host}} 5135or 5136.Ql #{m/ri:^A,MYVAR} . 5137A 5138.Ql C 5139performs a search for an 5140.Xr fnmatch 3 5141pattern or regular expression in the pane content and evaluates to zero if not 5142found, or a line number if found. 5143Like 5144.Ql m , 5145an 5146.Ql r 5147flag means search for a regular expression and 5148.Ql i 5149ignores case. 5150For example: 5151.Ql #{C/r:^Start} 5152.Pp 5153Numeric operators may be performed by prefixing two comma-separated alternatives 5154with an 5155.Ql e 5156and an operator. 5157An optional 5158.Ql f 5159flag may be given after the operator to use floating point numbers, otherwise 5160integers are used. 5161This may be followed by a number giving the number of decimal places to use for 5162the result. 5163The available operators are: 5164addition 5165.Ql + , 5166subtraction 5167.Ql - , 5168multiplication 5169.Ql * , 5170division 5171.Ql / , 5172modulus 5173.Ql m 5174or 5175.Ql % 5176(note that 5177.Ql % 5178must be escaped as 5179.Ql %% 5180in formats which are also expanded by 5181.Xr strftime 3 ) 5182and numeric comparison operators 5183.Ql == , 5184.Ql != , 5185.Ql < , 5186.Ql <= , 5187.Ql > 5188and 5189.Ql >= . 5190For example, 5191.Ql #{e|*|f|4:5.5,3} 5192multiplies 5.5 by 3 for a result with four decimal places and 5193.Ql #{e|%%:7,3} 5194returns the modulus of 7 and 3. 5195.Ql a 5196replaces a numeric argument by its ASCII equivalent, so 5197.Ql #{a:98} 5198results in 5199.Ql b . 5200.Ql c 5201replaces a 5202.Nm 5203colour by its six-digit hexadecimal RGB value. 5204.Pp 5205A limit may be placed on the length of the resultant string by prefixing it 5206by an 5207.Ql = , 5208a number and a colon. 5209Positive numbers count from the start of the string and negative from the end, 5210so 5211.Ql #{=5:pane_title} 5212will include at most the first five characters of the pane title, or 5213.Ql #{=-5:pane_title} 5214the last five characters. 5215A suffix or prefix may be given as a second argument - if provided then it is 5216appended or prepended to the string if the length has been trimmed, for example 5217.Ql #{=/5/...:pane_title} 5218will append 5219.Ql ... 5220if the pane title is more than five characters. 5221Similarly, 5222.Ql p 5223pads the string to a given width, for example 5224.Ql #{p10:pane_title} 5225will result in a width of at least 10 characters. 5226A positive width pads on the left, a negative on the right. 5227.Ql n 5228expands to the length of the variable and 5229.Ql w 5230to its width when displayed, for example 5231.Ql #{n:window_name} . 5232.Pp 5233Prefixing a time variable with 5234.Ql t:\& 5235will convert it to a string, so if 5236.Ql #{window_activity} 5237gives 5238.Ql 1445765102 , 5239.Ql #{t:window_activity} 5240gives 5241.Ql Sun Oct 25 09:25:02 2015 . 5242Adding 5243.Ql p ( 5244.Ql `t/p` ) 5245will use shorter but less accurate time format for times in the past. 5246A custom format may be given using an 5247.Ql f 5248suffix (note that 5249.Ql % 5250must be escaped as 5251.Ql %% 5252if the format is separately being passed through 5253.Xr strftime 3 , 5254for example in the 5255.Ic status-left 5256option): 5257.Ql #{t/f/%%H#:%%M:window_activity} , 5258see 5259.Xr strftime 3 . 5260.Pp 5261The 5262.Ql b:\& 5263and 5264.Ql d:\& 5265prefixes are 5266.Xr basename 3 5267and 5268.Xr dirname 3 5269of the variable respectively. 5270.Ql q:\& 5271will escape 5272.Xr sh 1 5273special characters or with a 5274.Ql h 5275suffix, escape hash characters (so 5276.Ql # 5277becomes 5278.Ql ## ) . 5279.Ql E:\& 5280will expand the format twice, for example 5281.Ql #{E:status-left} 5282is the result of expanding the content of the 5283.Ic status-left 5284option rather than the option itself. 5285.Ql T:\& 5286is like 5287.Ql E:\& 5288but also expands 5289.Xr strftime 3 5290specifiers. 5291.Ql S:\& , 5292.Ql W:\& , 5293.Ql P:\& 5294or 5295.Ql L:\& 5296will loop over each session, window, pane or client and insert the format once 5297for each. 5298For windows and panes, two comma-separated formats may be given: 5299the second is used for the current window or active pane. 5300For example, to get a list of windows formatted like the status line: 5301.Bd -literal -offset indent 5302#{W:#{E:window-status-format} ,#{E:window-status-current-format} } 5303.Ed 5304.Pp 5305.Ql N:\& 5306checks if a window (without any suffix or with the 5307.Ql w 5308suffix) or a session (with the 5309.Ql s 5310suffix) name exists, for example 5311.Ql `N/w:foo` 5312is replaced with 1 if a window named 5313.Ql foo 5314exists. 5315.Pp 5316A prefix of the form 5317.Ql s/foo/bar/:\& 5318will substitute 5319.Ql foo 5320with 5321.Ql bar 5322throughout. 5323The first argument may be an extended regular expression and a final argument 5324may be 5325.Ql i 5326to ignore case, for example 5327.Ql s/a(.)/\e1x/i:\& 5328would change 5329.Ql abABab 5330into 5331.Ql bxBxbx . 5332A different delimiter character may also be used, to avoid collisions with 5333literal slashes in the pattern. 5334For example, 5335.Ql s|foo/|bar/|:\& 5336will substitute 5337.Ql foo/ 5338with 5339.Ql bar/ 5340throughout. 5341.Pp 5342In addition, the last line of a shell command's output may be inserted using 5343.Ql #() . 5344For example, 5345.Ql #(uptime) 5346will insert the system's uptime. 5347When constructing formats, 5348.Nm 5349does not wait for 5350.Ql #() 5351commands to finish; instead, the previous result from running the same command 5352is used, or a placeholder if the command has not been run before. 5353If the command hasn't exited, the most recent line of output will be used, but 5354the status line will not be updated more than once a second. 5355Commands are executed using 5356.Pa /bin/sh 5357and with the 5358.Nm 5359global environment set (see the 5360.Sx GLOBAL AND SESSION ENVIRONMENT 5361section). 5362.Pp 5363An 5364.Ql l 5365specifies that a string should be interpreted literally and not expanded. 5366For example 5367.Ql #{l:#{?pane_in_mode,yes,no}} 5368will be replaced by 5369.Ql #{?pane_in_mode,yes,no} . 5370.Pp 5371The following variables are available, where appropriate: 5372.Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX" 5373.It Sy "Variable name" Ta Sy "Alias" Ta Sy "Replaced with" 5374.It Li "active_window_index" Ta "" Ta "Index of active window in session" 5375.It Li "alternate_on" Ta "" Ta "1 if pane is in alternate screen" 5376.It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen" 5377.It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen" 5378.It Li "buffer_created" Ta "" Ta "Time buffer created" 5379.It Li "buffer_name" Ta "" Ta "Name of buffer" 5380.It Li "buffer_sample" Ta "" Ta "Sample of start of buffer" 5381.It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes" 5382.It Li "client_activity" Ta "" Ta "Time client last had activity" 5383.It Li "client_cell_height" Ta "" Ta "Height of each client cell in pixels" 5384.It Li "client_cell_width" Ta "" Ta "Width of each client cell in pixels" 5385.It Li "client_control_mode" Ta "" Ta "1 if client is in control mode" 5386.It Li "client_created" Ta "" Ta "Time client created" 5387.It Li "client_discarded" Ta "" Ta "Bytes discarded when client behind" 5388.It Li "client_flags" Ta "" Ta "List of client flags" 5389.It Li "client_height" Ta "" Ta "Height of client" 5390.It Li "client_key_table" Ta "" Ta "Current key table" 5391.It Li "client_last_session" Ta "" Ta "Name of the client's last session" 5392.It Li "client_name" Ta "" Ta "Name of client" 5393.It Li "client_pid" Ta "" Ta "PID of client process" 5394.It Li "client_prefix" Ta "" Ta "1 if prefix key has been pressed" 5395.It Li "client_readonly" Ta "" Ta "1 if client is read-only" 5396.It Li "client_session" Ta "" Ta "Name of the client's session" 5397.It Li "client_termfeatures" Ta "" Ta "Terminal features of client, if any" 5398.It Li "client_termname" Ta "" Ta "Terminal name of client" 5399.It Li "client_termtype" Ta "" Ta "Terminal type of client, if available" 5400.It Li "client_tty" Ta "" Ta "Pseudo terminal of client" 5401.It Li "client_uid" Ta "" Ta "UID of client process" 5402.It Li "client_user" Ta "" Ta "User of client process" 5403.It Li "client_utf8" Ta "" Ta "1 if client supports UTF-8" 5404.It Li "client_width" Ta "" Ta "Width of client" 5405.It Li "client_written" Ta "" Ta "Bytes written to client" 5406.It Li "command" Ta "" Ta "Name of command in use, if any" 5407.It Li "command_list_alias" Ta "" Ta "Command alias if listing commands" 5408.It Li "command_list_name" Ta "" Ta "Command name if listing commands" 5409.It Li "command_list_usage" Ta "" Ta "Command usage if listing commands" 5410.It Li "config_files" Ta "" Ta "List of configuration files loaded" 5411.It Li "copy_cursor_line" Ta "" Ta "Line the cursor is on in copy mode" 5412.It Li "copy_cursor_word" Ta "" Ta "Word under cursor in copy mode" 5413.It Li "copy_cursor_x" Ta "" Ta "Cursor X position in copy mode" 5414.It Li "copy_cursor_y" Ta "" Ta "Cursor Y position in copy mode" 5415.It Li "current_file" Ta "" Ta "Current configuration file" 5416.It Li "cursor_character" Ta "" Ta "Character at cursor in pane" 5417.It Li "cursor_flag" Ta "" Ta "Pane cursor flag" 5418.It Li "cursor_x" Ta "" Ta "Cursor X position in pane" 5419.It Li "cursor_y" Ta "" Ta "Cursor Y position in pane" 5420.It Li "history_bytes" Ta "" Ta "Number of bytes in window history" 5421.It Li "history_limit" Ta "" Ta "Maximum window history lines" 5422.It Li "history_size" Ta "" Ta "Size of history in lines" 5423.It Li "hook" Ta "" Ta "Name of running hook, if any" 5424.It Li "hook_client" Ta "" Ta "Name of client where hook was run, if any" 5425.It Li "hook_pane" Ta "" Ta "ID of pane where hook was run, if any" 5426.It Li "hook_session" Ta "" Ta "ID of session where hook was run, if any" 5427.It Li "hook_session_name" Ta "" Ta "Name of session where hook was run, if any" 5428.It Li "hook_window" Ta "" Ta "ID of window where hook was run, if any" 5429.It Li "hook_window_name" Ta "" Ta "Name of window where hook was run, if any" 5430.It Li "host" Ta "#H" Ta "Hostname of local host" 5431.It Li "host_short" Ta "#h" Ta "Hostname of local host (no domain name)" 5432.It Li "insert_flag" Ta "" Ta "Pane insert flag" 5433.It Li "keypad_cursor_flag" Ta "" Ta "Pane keypad cursor flag" 5434.It Li "keypad_flag" Ta "" Ta "Pane keypad flag" 5435.It Li "last_window_index" Ta "" Ta "Index of last window in session" 5436.It Li "line" Ta "" Ta "Line number in the list" 5437.It Li "mouse_all_flag" Ta "" Ta "Pane mouse all flag" 5438.It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag" 5439.It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag" 5440.It Li "mouse_hyperlink" Ta "" Ta "Hyperlink under mouse, if any" 5441.It Li "mouse_line" Ta "" Ta "Line under mouse, if any" 5442.It Li "mouse_sgr_flag" Ta "" Ta "Pane mouse SGR flag" 5443.It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag" 5444.It Li "mouse_status_line" Ta "" Ta "Status line on which mouse event took place" 5445.It Li "mouse_status_range" Ta "" Ta "Range type or argument of mouse event on status line" 5446.It Li "mouse_utf8_flag" Ta "" Ta "Pane mouse UTF-8 flag" 5447.It Li "mouse_word" Ta "" Ta "Word under mouse, if any" 5448.It Li "mouse_x" Ta "" Ta "Mouse X position, if any" 5449.It Li "mouse_y" Ta "" Ta "Mouse Y position, if any" 5450.It Li "next_session_id" Ta "" Ta "Unique session ID for next new session" 5451.It Li "origin_flag" Ta "" Ta "Pane origin flag" 5452.It Li "pane_active" Ta "" Ta "1 if active pane" 5453.It Li "pane_at_bottom" Ta "" Ta "1 if pane is at the bottom of window" 5454.It Li "pane_at_left" Ta "" Ta "1 if pane is at the left of window" 5455.It Li "pane_at_right" Ta "" Ta "1 if pane is at the right of window" 5456.It Li "pane_at_top" Ta "" Ta "1 if pane is at the top of window" 5457.It Li "pane_bg" Ta "" Ta "Pane background colour" 5458.It Li "pane_bottom" Ta "" Ta "Bottom of pane" 5459.It Li "pane_current_command" Ta "" Ta "Current command if available" 5460.It Li "pane_current_path" Ta "" Ta "Current path if available" 5461.It Li "pane_dead" Ta "" Ta "1 if pane is dead" 5462.It Li "pane_dead_signal" Ta "" Ta "Exit signal of process in dead pane" 5463.It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane" 5464.It Li "pane_dead_time" Ta "" Ta "Exit time of process in dead pane" 5465.It Li "pane_fg" Ta "" Ta "Pane foreground colour" 5466.It Li "pane_format" Ta "" Ta "1 if format is for a pane" 5467.It Li "pane_height" Ta "" Ta "Height of pane" 5468.It Li "pane_id" Ta "#D" Ta "Unique pane ID" 5469.It Li "pane_in_mode" Ta "" Ta "1 if pane is in a mode" 5470.It Li "pane_index" Ta "#P" Ta "Index of pane" 5471.It Li "pane_input_off" Ta "" Ta "1 if input to pane is disabled" 5472.It Li "pane_last" Ta "" Ta "1 if last pane" 5473.It Li "pane_left" Ta "" Ta "Left of pane" 5474.It Li "pane_marked" Ta "" Ta "1 if this is the marked pane" 5475.It Li "pane_marked_set" Ta "" Ta "1 if a marked pane is set" 5476.It Li "pane_mode" Ta "" Ta "Name of pane mode, if any" 5477.It Li "pane_path" Ta "" Ta "Path of pane (can be set by application)" 5478.It Li "pane_pid" Ta "" Ta "PID of first process in pane" 5479.It Li "pane_pipe" Ta "" Ta "1 if pane is being piped" 5480.It Li "pane_right" Ta "" Ta "Right of pane" 5481.It Li "pane_search_string" Ta "" Ta "Last search string in copy mode" 5482.It Li "pane_start_command" Ta "" Ta "Command pane started with" 5483.It Li "pane_start_path" Ta "" Ta "Path pane started with" 5484.It Li "pane_synchronized" Ta "" Ta "1 if pane is synchronized" 5485.It Li "pane_tabs" Ta "" Ta "Pane tab positions" 5486.It Li "pane_title" Ta "#T" Ta "Title of pane (can be set by application)" 5487.It Li "pane_top" Ta "" Ta "Top of pane" 5488.It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane" 5489.It Li "pane_unseen_changes" Ta "" Ta "1 if there were changes in pane while in mode" 5490.It Li "pane_width" Ta "" Ta "Width of pane" 5491.It Li "pid" Ta "" Ta "Server PID" 5492.It Li "rectangle_toggle" Ta "" Ta "1 if rectangle selection is activated" 5493.It Li "scroll_position" Ta "" Ta "Scroll position in copy mode" 5494.It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane" 5495.It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane" 5496.It Li "search_match" Ta "" Ta "Search match if any" 5497.It Li "search_present" Ta "" Ta "1 if search started in copy mode" 5498.It Li "selection_active" Ta "" Ta "1 if selection started and changes with the cursor in copy mode" 5499.It Li "selection_end_x" Ta "" Ta "X position of the end of the selection" 5500.It Li "selection_end_y" Ta "" Ta "Y position of the end of the selection" 5501.It Li "selection_present" Ta "" Ta "1 if selection started in copy mode" 5502.It Li "selection_start_x" Ta "" Ta "X position of the start of the selection" 5503.It Li "selection_start_y" Ta "" Ta "Y position of the start of the selection" 5504.It Li "server_sessions" Ta "" Ta "Number of sessions" 5505.It Li "session_activity" Ta "" Ta "Time of session last activity" 5506.It Li "session_alerts" Ta "" Ta "List of window indexes with alerts" 5507.It Li "session_attached" Ta "" Ta "Number of clients session is attached to" 5508.It Li "session_attached_list" Ta "" Ta "List of clients session is attached to" 5509.It Li "session_created" Ta "" Ta "Time session created" 5510.It Li "session_format" Ta "" Ta "1 if format is for a session" 5511.It Li "session_group" Ta "" Ta "Name of session group" 5512.It Li "session_group_attached" Ta "" Ta "Number of clients sessions in group are attached to" 5513.It Li "session_group_attached_list" Ta "" Ta "List of clients sessions in group are attached to" 5514.It Li "session_group_list" Ta "" Ta "List of sessions in group" 5515.It Li "session_group_many_attached" Ta "" Ta "1 if multiple clients attached to sessions in group" 5516.It Li "session_group_size" Ta "" Ta "Size of session group" 5517.It Li "session_grouped" Ta "" Ta "1 if session in a group" 5518.It Li "session_id" Ta "" Ta "Unique session ID" 5519.It Li "session_last_attached" Ta "" Ta "Time session last attached" 5520.It Li "session_many_attached" Ta "" Ta "1 if multiple clients attached" 5521.It Li "session_marked" Ta "" Ta "1 if this session contains the marked pane" 5522.It Li "session_name" Ta "#S" Ta "Name of session" 5523.It Li "session_path" Ta "" Ta "Working directory of session" 5524.It Li "session_stack" Ta "" Ta "Window indexes in most recent order" 5525.It Li "session_windows" Ta "" Ta "Number of windows in session" 5526.It Li "socket_path" Ta "" Ta "Server socket path" 5527.It Li "start_time" Ta "" Ta "Server start time" 5528.It Li "uid" Ta "" Ta "Server UID" 5529.It Li "user" Ta "" Ta "Server user" 5530.It Li "version" Ta "" Ta "Server version" 5531.It Li "window_active" Ta "" Ta "1 if window active" 5532.It Li "window_active_clients" Ta "" Ta "Number of clients viewing this window" 5533.It Li "window_active_clients_list" Ta "" Ta "List of clients viewing this window" 5534.It Li "window_active_sessions" Ta "" Ta "Number of sessions on which this window is active" 5535.It Li "window_active_sessions_list" Ta "" Ta "List of sessions on which this window is active" 5536.It Li "window_activity" Ta "" Ta "Time of window last activity" 5537.It Li "window_activity_flag" Ta "" Ta "1 if window has activity" 5538.It Li "window_bell_flag" Ta "" Ta "1 if window has bell" 5539.It Li "window_bigger" Ta "" Ta "1 if window is larger than client" 5540.It Li "window_cell_height" Ta "" Ta "Height of each cell in pixels" 5541.It Li "window_cell_width" Ta "" Ta "Width of each cell in pixels" 5542.It Li "window_end_flag" Ta "" Ta "1 if window has the highest index" 5543.It Li "window_flags" Ta "#F" Ta "Window flags with # escaped as ##" 5544.It Li "window_format" Ta "" Ta "1 if format is for a window" 5545.It Li "window_height" Ta "" Ta "Height of window" 5546.It Li "window_id" Ta "" Ta "Unique window ID" 5547.It Li "window_index" Ta "#I" Ta "Index of window" 5548.It Li "window_last_flag" Ta "" Ta "1 if window is the last used" 5549.It Li "window_layout" Ta "" Ta "Window layout description, ignoring zoomed window panes" 5550.It Li "window_linked" Ta "" Ta "1 if window is linked across sessions" 5551.It Li "window_linked_sessions" Ta "" Ta "Number of sessions this window is linked to" 5552.It Li "window_linked_sessions_list" Ta "" Ta "List of sessions this window is linked to" 5553.It Li "window_marked_flag" Ta "" Ta "1 if window contains the marked pane" 5554.It Li "window_name" Ta "#W" Ta "Name of window" 5555.It Li "window_offset_x" Ta "" Ta "X offset into window if larger than client" 5556.It Li "window_offset_y" Ta "" Ta "Y offset into window if larger than client" 5557.It Li "window_panes" Ta "" Ta "Number of panes in window" 5558.It Li "window_raw_flags" Ta "" Ta "Window flags with nothing escaped" 5559.It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert" 5560.It Li "window_stack_index" Ta "" Ta "Index in session most recent stack" 5561.It Li "window_start_flag" Ta "" Ta "1 if window has the lowest index" 5562.It Li "window_visible_layout" Ta "" Ta "Window layout description, respecting zoomed window panes" 5563.It Li "window_width" Ta "" Ta "Width of window" 5564.It Li "window_zoomed_flag" Ta "" Ta "1 if window is zoomed" 5565.It Li "wrap_flag" Ta "" Ta "Pane wrap flag" 5566.El 5567.Sh STYLES 5568.Nm 5569offers various options to specify the colour and attributes of aspects of the 5570interface, for example 5571.Ic status-style 5572for the status line. 5573In addition, embedded styles may be specified in format options, such as 5574.Ic status-left , 5575by enclosing them in 5576.Ql #[ 5577and 5578.Ql \&] . 5579.Pp 5580A style may be the single term 5581.Ql default 5582to specify the default style (which may come from an option, for example 5583.Ic status-style 5584in the status line) or a space 5585or comma separated list of the following: 5586.Bl -tag -width Ds 5587.It Ic fg=colour 5588Set the foreground colour. 5589The colour is one of: 5590.Ic black , 5591.Ic red , 5592.Ic green , 5593.Ic yellow , 5594.Ic blue , 5595.Ic magenta , 5596.Ic cyan , 5597.Ic white ; 5598if supported the bright variants 5599.Ic brightred , 5600.Ic brightgreen , 5601.Ic brightyellow ; 5602.Ic colour0 5603to 5604.Ic colour255 5605from the 256-colour set; 5606.Ic default 5607for the default colour; 5608.Ic terminal 5609for the terminal default colour; or a hexadecimal RGB string such as 5610.Ql #ffffff . 5611.It Ic bg=colour 5612Set the background colour. 5613.It Ic us=colour 5614Set the underscore colour. 5615.It Ic none 5616Set no attributes (turn off any active attributes). 5617.It Xo Ic acs , 5618.Ic bright 5619(or 5620.Ic bold ) , 5621.Ic dim , 5622.Ic underscore , 5623.Ic blink , 5624.Ic reverse , 5625.Ic hidden , 5626.Ic italics , 5627.Ic overline , 5628.Ic strikethrough , 5629.Ic double-underscore , 5630.Ic curly-underscore , 5631.Ic dotted-underscore , 5632.Ic dashed-underscore 5633.Xc 5634Set an attribute. 5635Any of the attributes may be prefixed with 5636.Ql no 5637to unset. 5638.Ic acs 5639is the terminal alternate character set. 5640.It Xo Ic align=left 5641(or 5642.Ic noalign ) , 5643.Ic align=centre , 5644.Ic align=right 5645.Xc 5646Align text to the left, centre or right of the available space if appropriate. 5647.It Ic fill=colour 5648Fill the available space with a background colour if appropriate. 5649.It Xo Ic list=on , 5650.Ic list=focus , 5651.Ic list=left-marker , 5652.Ic list=right-marker , 5653.Ic nolist 5654.Xc 5655Mark the position of the various window list components in the 5656.Ic status-format 5657option: 5658.Ic list=on 5659marks the start of the list; 5660.Ic list=focus 5661is the part of the list that should be kept in focus if the entire list won't 5662fit in the available space (typically the current window); 5663.Ic list=left-marker 5664and 5665.Ic list=right-marker 5666mark the text to be used to mark that text has been trimmed from the left or 5667right of the list if there is not enough space. 5668.It Xo Ic push-default , 5669.Ic pop-default 5670.Xc 5671Store the current colours and attributes as the default or reset to the previous 5672default. 5673A 5674.Ic push-default 5675affects any subsequent use of the 5676.Ic default 5677term until a 5678.Ic pop-default . 5679Only one default may be pushed (each 5680.Ic push-default 5681replaces the previous saved default). 5682.It Xo Ic range=left , 5683.Ic range=right , 5684.Ic range=session|X , 5685.Ic range=window|X , 5686.Ic range=pane|X , 5687.Ic range=user|X , 5688.Ic norange 5689.Xc 5690Mark a range for mouse events in the 5691.Ic status-format 5692option. 5693When a mouse event occurs in the 5694.Ic range=left 5695or 5696.Ic range=right 5697range, the 5698.Ql StatusLeft 5699and 5700.Ql StatusRight 5701key bindings are triggered. 5702.Pp 5703.Ic range=session|X , 5704.Ic range=window|X 5705and 5706.Ic range=pane|X 5707are ranges for a session, window or pane. 5708These trigger the 5709.Ql Status 5710mouse key with the target session, window or pane given by the 5711.Ql X 5712argument. 5713.Ql X 5714is a session ID, window index in the current session or a pane ID. 5715For these, the 5716.Ic mouse_status_range 5717format variable will be set to 5718.Ql session , 5719.Ql window 5720or 5721.Ql pane . 5722.Pp 5723.Ic range=user|X 5724is a user-defined range; it triggers the 5725.Ql Status 5726mouse key. 5727The argument 5728.Ql X 5729will be available in the 5730.Ic mouse_status_range 5731format variable. 5732.Ql X 5733must be at most 15 bytes in length. 5734.El 5735.Pp 5736Examples are: 5737.Bd -literal -offset indent 5738fg=yellow bold underscore blink 5739bg=black,fg=default,noreverse 5740.Ed 5741.Sh NAMES AND TITLES 5742.Nm 5743distinguishes between names and titles. 5744Windows and sessions have names, which may be used to specify them in targets 5745and are displayed in the status line and various lists: the name is the 5746.Nm 5747identifier for a window or session. 5748Only panes have titles. 5749A pane's title is typically set by the program running inside the pane using 5750an escape sequence (like it would set the 5751.Xr xterm 1 5752window title in 5753.Xr X 7 ) . 5754Windows themselves do not have titles - a window's title is the title of its 5755active pane. 5756.Nm 5757itself may set the title of the terminal in which the client is running, see 5758the 5759.Ic set-titles 5760option. 5761.Pp 5762A session's name is set with the 5763.Ic new-session 5764and 5765.Ic rename-session 5766commands. 5767A window's name is set with one of: 5768.Bl -enum -width Ds 5769.It 5770A command argument (such as 5771.Fl n 5772for 5773.Ic new-window 5774or 5775.Ic new-session ) . 5776.It 5777An escape sequence (if the 5778.Ic allow-rename 5779option is turned on): 5780.Bd -literal -offset indent 5781$ printf \[aq]\e033kWINDOW_NAME\e033\e\e\[aq] 5782.Ed 5783.It 5784Automatic renaming, which sets the name to the active command in the window's 5785active pane. 5786See the 5787.Ic automatic-rename 5788option. 5789.El 5790.Pp 5791When a pane is first created, its title is the hostname. 5792A pane's title can be set via the title setting escape sequence, for example: 5793.Bd -literal -offset indent 5794$ printf \[aq]\e033]2;My Title\e033\e\e\[aq] 5795.Ed 5796.Pp 5797It can also be modified with the 5798.Ic select-pane 5799.Fl T 5800command. 5801.Sh GLOBAL AND SESSION ENVIRONMENT 5802When the server is started, 5803.Nm 5804copies the environment into the 5805.Em global environment ; 5806in addition, each session has a 5807.Em session environment . 5808When a window is created, the session and global environments are merged. 5809If a variable exists in both, the value from the session environment is used. 5810The result is the initial environment passed to the new process. 5811.Pp 5812The 5813.Ic update-environment 5814session option may be used to update the session environment from the client 5815when a new session is created or an old reattached. 5816.Nm 5817also initialises the 5818.Ev TMUX 5819variable with some internal information to allow commands to be executed 5820from inside, and the 5821.Ev TERM 5822variable with the correct terminal setting of 5823.Ql screen . 5824.Pp 5825Variables in both session and global environments may be marked as hidden. 5826Hidden variables are not passed into the environment of new processes and 5827instead can only be used by tmux itself (for example in formats, see the 5828.Sx FORMATS 5829section). 5830.Pp 5831Commands to alter and view the environment are: 5832.Bl -tag -width Ds 5833.Tg setenv 5834.It Xo Ic set-environment 5835.Op Fl Fhgru 5836.Op Fl t Ar target-session 5837.Ar name Op Ar value 5838.Xc 5839.D1 Pq alias: Ic setenv 5840Set or unset an environment variable. 5841If 5842.Fl g 5843is used, the change is made in the global environment; otherwise, it is applied 5844to the session environment for 5845.Ar target-session . 5846If 5847.Fl F 5848is present, then 5849.Ar value 5850is expanded as a format. 5851The 5852.Fl u 5853flag unsets a variable. 5854.Fl r 5855indicates the variable is to be removed from the environment before starting a 5856new process. 5857.Fl h 5858marks the variable as hidden. 5859.Tg showenv 5860.It Xo Ic show-environment 5861.Op Fl hgs 5862.Op Fl t Ar target-session 5863.Op Ar variable 5864.Xc 5865.D1 Pq alias: Ic showenv 5866Display the environment for 5867.Ar target-session 5868or the global environment with 5869.Fl g . 5870If 5871.Ar variable 5872is omitted, all variables are shown. 5873Variables removed from the environment are prefixed with 5874.Ql - . 5875If 5876.Fl s 5877is used, the output is formatted as a set of Bourne shell commands. 5878.Fl h 5879shows hidden variables (omitted by default). 5880.El 5881.Sh STATUS LINE 5882.Nm 5883includes an optional status line which is displayed in the bottom line of each 5884terminal. 5885.Pp 5886By default, the status line is enabled and one line in height (it may be 5887disabled or made multiple lines with the 5888.Ic status 5889session option) and contains, from left-to-right: the name of the current 5890session in square brackets; the window list; the title of the active pane 5891in double quotes; and the time and date. 5892.Pp 5893Each line of the status line is configured with the 5894.Ic status-format 5895option. 5896The default is made of three parts: configurable left and right sections (which 5897may contain dynamic content such as the time or output from a shell command, 5898see the 5899.Ic status-left , 5900.Ic status-left-length , 5901.Ic status-right , 5902and 5903.Ic status-right-length 5904options below), and a central window list. 5905By default, the window list shows the index, name and (if any) flag of the 5906windows present in the current session in ascending numerical order. 5907It may be customised with the 5908.Ar window-status-format 5909and 5910.Ar window-status-current-format 5911options. 5912The flag is one of the following symbols appended to the window name: 5913.Bl -column "Symbol" "Meaning" -offset indent 5914.It Sy "Symbol" Ta Sy "Meaning" 5915.It Li "*" Ta "Denotes the current window." 5916.It Li "-" Ta "Marks the last window (previously selected)." 5917.It Li "#" Ta "Window activity is monitored and activity has been detected." 5918.It Li "\&!" Ta "Window bells are monitored and a bell has occurred in the window." 5919.It Li "\[ti]" Ta "The window has been silent for the monitor-silence interval." 5920.It Li "M" Ta "The window contains the marked pane." 5921.It Li "Z" Ta "The window's active pane is zoomed." 5922.El 5923.Pp 5924The # symbol relates to the 5925.Ic monitor-activity 5926window option. 5927The window name is printed in inverted colours if an alert (bell, activity or 5928silence) is present. 5929.Pp 5930The colour and attributes of the status line may be configured, the entire 5931status line using the 5932.Ic status-style 5933session option and individual windows using the 5934.Ic window-status-style 5935window option. 5936.Pp 5937The status line is automatically refreshed at interval if it has changed, the 5938interval may be controlled with the 5939.Ic status-interval 5940session option. 5941.Pp 5942Commands related to the status line are as follows: 5943.Bl -tag -width Ds 5944.Tg clearphist 5945.It Xo Ic clear-prompt-history 5946.Op Fl T Ar prompt-type 5947.Xc 5948.D1 Pq alias: Ic clearphist 5949Clear status prompt history for prompt type 5950.Ar prompt-type . 5951If 5952.Fl T 5953is omitted, then clear history for all types. 5954See 5955.Ic command-prompt 5956for possible values for 5957.Ar prompt-type . 5958.It Xo Ic command-prompt 5959.Op Fl 1bFikN 5960.Op Fl I Ar inputs 5961.Op Fl p Ar prompts 5962.Op Fl t Ar target-client 5963.Op Fl T Ar prompt-type 5964.Op Ar template 5965.Xc 5966Open the command prompt in a client. 5967This may be used from inside 5968.Nm 5969to execute commands interactively. 5970.Pp 5971If 5972.Ar template 5973is specified, it is used as the command. 5974With 5975.Fl F , 5976.Ar template 5977is expanded as a format. 5978.Pp 5979If present, 5980.Fl I 5981is a comma-separated list of the initial text for each prompt. 5982If 5983.Fl p 5984is given, 5985.Ar prompts 5986is a comma-separated list of prompts which are displayed in order; otherwise 5987a single prompt is displayed, constructed from 5988.Ar template 5989if it is present, or 5990.Ql \&: 5991if not. 5992.Pp 5993Before the command is executed, the first occurrence of the string 5994.Ql %% 5995and all occurrences of 5996.Ql %1 5997are replaced by the response to the first prompt, all 5998.Ql %2 5999are replaced with the response to the second prompt, and so on for further 6000prompts. 6001Up to nine prompt responses may be replaced 6002.Po 6003.Ql %1 6004to 6005.Ql %9 6006.Pc . 6007.Ql %%% 6008is like 6009.Ql %% 6010but any quotation marks are escaped. 6011.Pp 6012.Fl 1 6013makes the prompt only accept one key press, in this case the resulting input 6014is a single character. 6015.Fl k 6016is like 6017.Fl 1 6018but the key press is translated to a key name. 6019.Fl N 6020makes the prompt only accept numeric key presses. 6021.Fl i 6022executes the command every time the prompt input changes instead of when the 6023user exits the command prompt. 6024.Pp 6025.Fl T 6026tells 6027.Nm 6028the prompt type. 6029This affects what completions are offered when 6030.Em Tab 6031is pressed. 6032Available types are: 6033.Ql command , 6034.Ql search , 6035.Ql target 6036and 6037.Ql window-target . 6038.Pp 6039The following keys have a special meaning in the command prompt, depending 6040on the value of the 6041.Ic status-keys 6042option: 6043.Bl -column "FunctionXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXX" "emacsX" -offset indent 6044.It Sy "Function" Ta Sy "vi" Ta Sy "emacs" 6045.It Li "Cancel command prompt" Ta "q" Ta "Escape" 6046.It Li "Delete from cursor to start of word" Ta "" Ta "C-w" 6047.It Li "Delete entire command" Ta "d" Ta "C-u" 6048.It Li "Delete from cursor to end" Ta "D" Ta "C-k" 6049.It Li "Execute command" Ta "Enter" Ta "Enter" 6050.It Li "Get next command from history" Ta "" Ta "Down" 6051.It Li "Get previous command from history" Ta "" Ta "Up" 6052.It Li "Insert top paste buffer" Ta "p" Ta "C-y" 6053.It Li "Look for completions" Ta "Tab" Ta "Tab" 6054.It Li "Move cursor left" Ta "h" Ta "Left" 6055.It Li "Move cursor right" Ta "l" Ta "Right" 6056.It Li "Move cursor to end" Ta "$" Ta "C-e" 6057.It Li "Move cursor to next word" Ta "w" Ta "M-f" 6058.It Li "Move cursor to previous word" Ta "b" Ta "M-b" 6059.It Li "Move cursor to start" Ta "0" Ta "C-a" 6060.It Li "Transpose characters" Ta "" Ta "C-t" 6061.El 6062.Pp 6063With 6064.Fl b , 6065the prompt is shown in the background and the invoking client does not exit 6066until it is dismissed. 6067.Tg confirm 6068.It Xo Ic confirm-before 6069.Op Fl by 6070.Op Fl c Ar confirm-key 6071.Op Fl p Ar prompt 6072.Op Fl t Ar target-client 6073.Ar command 6074.Xc 6075.D1 Pq alias: Ic confirm 6076Ask for confirmation before executing 6077.Ar command . 6078If 6079.Fl p 6080is given, 6081.Ar prompt 6082is the prompt to display; otherwise a prompt is constructed from 6083.Ar command . 6084It may contain the special character sequences supported by the 6085.Ic status-left 6086option. 6087With 6088.Fl b , 6089the prompt is shown in the background and the invoking client does not exit 6090until it is dismissed. 6091.Fl y 6092changes the default behaviour (if Enter alone is pressed) of the prompt to 6093run the command. 6094.Fl c 6095changes the confirmation key to 6096.Ar confirm-key ; 6097the default is 6098.Ql y . 6099.Tg menu 6100.It Xo Ic display-menu 6101.Op Fl O 6102.Op Fl b Ar border-lines 6103.Op Fl c Ar target-client 6104.Op Fl C Ar starting-choice 6105.Op Fl H Ar selected-style 6106.Op Fl s Ar style 6107.Op Fl S Ar border-style 6108.Op Fl t Ar target-pane 6109.Op Fl T Ar title 6110.Op Fl x Ar position 6111.Op Fl y Ar position 6112.Ar name 6113.Ar key 6114.Ar command Op Ar argument ... 6115.Xc 6116.D1 Pq alias: Ic menu 6117Display a menu on 6118.Ar target-client . 6119.Ar target-pane 6120gives the target for any commands run from the menu. 6121.Pp 6122A menu is passed as a series of arguments: first the menu item name, 6123second the key shortcut (or empty for none) and third the command 6124to run when the menu item is chosen. 6125The name and command are formats, see the 6126.Sx FORMATS 6127and 6128.Sx STYLES 6129sections. 6130If the name begins with a hyphen (-), then the item is disabled (shown dim) and 6131may not be chosen. 6132The name may be empty for a separator line, in which case both the key and 6133command should be omitted. 6134.Pp 6135.Fl b 6136sets the type of characters used for drawing menu borders. 6137See 6138.Ic popup-border-lines 6139for possible values for 6140.Ar border-lines . 6141.Pp 6142.Fl H 6143sets the style for the selected menu item (see 6144.Sx STYLES ) . 6145.Pp 6146.Fl s 6147sets the style for the menu and 6148.Fl S 6149sets the style for the menu border (see 6150.Sx STYLES ) . 6151.Pp 6152.Fl T 6153is a format for the menu title (see 6154.Sx FORMATS ) . 6155.Pp 6156.Fl C 6157sets the menu item selected by default, if the menu is not bound to a mouse key 6158binding. 6159.Pp 6160.Fl x 6161and 6162.Fl y 6163give the position of the menu. 6164Both may be a row or column number, or one of the following special values: 6165.Bl -column "XXXXX" "XXXX" -offset indent 6166.It Sy "Value" Ta Sy "Flag" Ta Sy "Meaning" 6167.It Li "C" Ta "Both" Ta "The centre of the terminal" 6168.It Li "R" Ta Fl x Ta "The right side of the terminal" 6169.It Li "P" Ta "Both" Ta "The bottom left of the pane" 6170.It Li "M" Ta "Both" Ta "The mouse position" 6171.It Li "W" Ta "Both" Ta "The window position on the status line" 6172.It Li "S" Ta Fl y Ta "The line above or below the status line" 6173.El 6174.Pp 6175Or a format, which is expanded including the following additional variables: 6176.Bl -column "XXXXXXXXXXXXXXXXXXXXXXXXXX" -offset indent 6177.It Sy "Variable name" Ta Sy "Replaced with" 6178.It Li "popup_centre_x" Ta "Centered in the client" 6179.It Li "popup_centre_y" Ta "Centered in the client" 6180.It Li "popup_height" Ta "Height of menu or popup" 6181.It Li "popup_mouse_bottom" Ta "Bottom of at the mouse" 6182.It Li "popup_mouse_centre_x" Ta "Horizontal centre at the mouse" 6183.It Li "popup_mouse_centre_y" Ta "Vertical centre at the mouse" 6184.It Li "popup_mouse_top" Ta "Top at the mouse" 6185.It Li "popup_mouse_x" Ta "Mouse X position" 6186.It Li "popup_mouse_y" Ta "Mouse Y position" 6187.It Li "popup_pane_bottom" Ta "Bottom of the pane" 6188.It Li "popup_pane_left" Ta "Left of the pane" 6189.It Li "popup_pane_right" Ta "Right of the pane" 6190.It Li "popup_pane_top" Ta "Top of the pane" 6191.It Li "popup_status_line_y" Ta "Above or below the status line" 6192.It Li "popup_width" Ta "Width of menu or popup" 6193.It Li "popup_window_status_line_x" Ta "At the window position in status line" 6194.It Li "popup_window_status_line_y" Ta "At the status line showing the window" 6195.El 6196.Pp 6197Each menu consists of items followed by a key shortcut shown in brackets. 6198If the menu is too large to fit on the terminal, it is not displayed. 6199Pressing the key shortcut chooses the corresponding item. 6200If the mouse is enabled and the menu is opened from a mouse key binding, 6201releasing the mouse button with an item selected chooses that item and 6202releasing the mouse button without an item selected closes the menu. 6203.Fl O 6204changes this behaviour so that the menu does not close when the mouse button is 6205released without an item selected the menu is not closed and a mouse button 6206must be clicked to choose an item. 6207.Pp 6208The following keys are also available: 6209.Bl -column "Key" "Function" -offset indent 6210.It Sy "Key" Ta Sy "Function" 6211.It Li "Enter" Ta "Choose selected item" 6212.It Li "Up" Ta "Select previous item" 6213.It Li "Down" Ta "Select next item" 6214.It Li "q" Ta "Exit menu" 6215.El 6216.Tg display 6217.It Xo Ic display-message 6218.Op Fl aIlNpv 6219.Op Fl c Ar target-client 6220.Op Fl d Ar delay 6221.Op Fl t Ar target-pane 6222.Op Ar message 6223.Xc 6224.D1 Pq alias: Ic display 6225Display a message. 6226If 6227.Fl p 6228is given, the output is printed to stdout, otherwise it is displayed in the 6229.Ar target-client 6230status line for up to 6231.Ar delay 6232milliseconds. 6233If 6234.Ar delay 6235is not given, the 6236.Ic display-time 6237option is used; a delay of zero waits for a key press. 6238.Ql N 6239ignores key presses and closes only after the delay expires. 6240If 6241.Fl l 6242is given, 6243.Ar message 6244is printed unchanged. 6245Otherwise, the format of 6246.Ar message 6247is described in the 6248.Sx FORMATS 6249section; information is taken from 6250.Ar target-pane 6251if 6252.Fl t 6253is given, otherwise the active pane. 6254.Pp 6255.Fl v 6256prints verbose logging as the format is parsed and 6257.Fl a 6258lists the format variables and their values. 6259.Pp 6260.Fl I 6261forwards any input read from stdin to the empty pane given by 6262.Ar target-pane . 6263.Tg popup 6264.It Xo Ic display-popup 6265.Op Fl BCE 6266.Op Fl b Ar border-lines 6267.Op Fl c Ar target-client 6268.Op Fl d Ar start-directory 6269.Op Fl e Ar environment 6270.Op Fl h Ar height 6271.Op Fl s Ar border-style 6272.Op Fl S Ar style 6273.Op Fl t Ar target-pane 6274.Op Fl T Ar title 6275.Op Fl w Ar width 6276.Op Fl x Ar position 6277.Op Fl y Ar position 6278.Op Ar shell-command 6279.Xc 6280.D1 Pq alias: Ic popup 6281Display a popup running 6282.Ar shell-command 6283on 6284.Ar target-client . 6285A popup is a rectangular box drawn over the top of any panes. 6286Panes are not updated while a popup is present. 6287.Pp 6288.Fl E 6289closes the popup automatically when 6290.Ar shell-command 6291exits. 6292Two 6293.Fl E 6294closes the popup only if 6295.Ar shell-command 6296exited with success. 6297.Pp 6298.Fl x 6299and 6300.Fl y 6301give the position of the popup, they have the same meaning as for the 6302.Ic display-menu 6303command. 6304.Fl w 6305and 6306.Fl h 6307give the width and height - both may be a percentage (followed by 6308.Ql % ) . 6309If omitted, half of the terminal size is used. 6310.Pp 6311.Fl B 6312does not surround the popup by a border. 6313.Pp 6314.Fl b 6315sets the type of characters used for drawing popup borders. 6316When 6317.Fl B 6318is specified, the 6319.Fl b 6320option is ignored. 6321See 6322.Ic popup-border-lines 6323for possible values for 6324.Ar border-lines . 6325.Pp 6326.Fl s 6327sets the style for the popup and 6328.Fl S 6329sets the style for the popup border (see 6330.Sx STYLES ) . 6331.Pp 6332.Fl e 6333takes the form 6334.Ql VARIABLE=value 6335and sets an environment variable for the popup; it may be specified multiple 6336times. 6337.Pp 6338.Fl T 6339is a format for the popup title (see 6340.Sx FORMATS ) . 6341.Pp 6342The 6343.Fl C 6344flag closes any popup on the client. 6345.Tg showphist 6346.It Xo Ic show-prompt-history 6347.Op Fl T Ar prompt-type 6348.Xc 6349.D1 Pq alias: Ic showphist 6350Display status prompt history for prompt type 6351.Ar prompt-type . 6352If 6353.Fl T 6354is omitted, then show history for all types. 6355See 6356.Ic command-prompt 6357for possible values for 6358.Ar prompt-type . 6359.El 6360.Sh BUFFERS 6361.Nm 6362maintains a set of named 6363.Em paste buffers . 6364Each buffer may be either explicitly or automatically named. 6365Explicitly named buffers are named when created with the 6366.Ic set-buffer 6367or 6368.Ic load-buffer 6369commands, or by renaming an automatically named buffer with 6370.Ic set-buffer 6371.Fl n . 6372Automatically named buffers are given a name such as 6373.Ql buffer0001 , 6374.Ql buffer0002 6375and so on. 6376When the 6377.Ic buffer-limit 6378option is reached, the oldest automatically named buffer is deleted. 6379Explicitly named buffers are not subject to 6380.Ic buffer-limit 6381and may be deleted with the 6382.Ic delete-buffer 6383command. 6384.Pp 6385Buffers may be added using 6386.Ic copy-mode 6387or the 6388.Ic set-buffer 6389and 6390.Ic load-buffer 6391commands, and pasted into a window using the 6392.Ic paste-buffer 6393command. 6394If a buffer command is used and no buffer is specified, the most 6395recently added automatically named buffer is assumed. 6396.Pp 6397A configurable history buffer is also maintained for each window. 6398By default, up to 2000 lines are kept; this can be altered with the 6399.Ic history-limit 6400option (see the 6401.Ic set-option 6402command above). 6403.Pp 6404The buffer commands are as follows: 6405.Bl -tag -width Ds 6406.It Xo 6407.Ic choose-buffer 6408.Op Fl NZr 6409.Op Fl F Ar format 6410.Op Fl f Ar filter 6411.Op Fl K Ar key-format 6412.Op Fl O Ar sort-order 6413.Op Fl t Ar target-pane 6414.Op Ar template 6415.Xc 6416Put a pane into buffer mode, where a buffer may be chosen interactively from 6417a list. 6418Each buffer is shown on one line. 6419A shortcut key is shown on the left in brackets allowing for immediate choice, 6420or the list may be navigated and an item chosen or otherwise manipulated using 6421the keys below. 6422.Fl Z 6423zooms the pane. 6424The following keys may be used in buffer mode: 6425.Bl -column "Key" "Function" -offset indent 6426.It Sy "Key" Ta Sy "Function" 6427.It Li "Enter" Ta "Paste selected buffer" 6428.It Li "Up" Ta "Select previous buffer" 6429.It Li "Down" Ta "Select next buffer" 6430.It Li "C-s" Ta "Search by name or content" 6431.It Li "n" Ta "Repeat last search" 6432.It Li "t" Ta "Toggle if buffer is tagged" 6433.It Li "T" Ta "Tag no buffers" 6434.It Li "C-t" Ta "Tag all buffers" 6435.It Li "p" Ta "Paste selected buffer" 6436.It Li "P" Ta "Paste tagged buffers" 6437.It Li "d" Ta "Delete selected buffer" 6438.It Li "D" Ta "Delete tagged buffers" 6439.It Li "e" Ta "Open the buffer in an editor" 6440.It Li "f" Ta "Enter a format to filter items" 6441.It Li "O" Ta "Change sort field" 6442.It Li "r" Ta "Reverse sort order" 6443.It Li "v" Ta "Toggle preview" 6444.It Li "q" Ta "Exit mode" 6445.El 6446.Pp 6447After a buffer is chosen, 6448.Ql %% 6449is replaced by the buffer name in 6450.Ar template 6451and the result executed as a command. 6452If 6453.Ar template 6454is not given, "paste-buffer -b \[aq]%%\[aq]" is used. 6455.Pp 6456.Fl O 6457specifies the initial sort field: one of 6458.Ql time 6459(creation), 6460.Ql name 6461or 6462.Ql size . 6463.Fl r 6464reverses the sort order. 6465.Fl f 6466specifies an initial filter: the filter is a format - if it evaluates to zero, 6467the item in the list is not shown, otherwise it is shown. 6468If a filter would lead to an empty list, it is ignored. 6469.Fl F 6470specifies the format for each item in the list and 6471.Fl K 6472a format for each shortcut key; both are evaluated once for each line. 6473.Fl N 6474starts without the preview. 6475This command works only if at least one client is attached. 6476.Tg clearhist 6477.It Xo Ic clear-history 6478.Op Fl H 6479.Op Fl t Ar target-pane 6480.Xc 6481.D1 Pq alias: Ic clearhist 6482Remove and free the history for the specified pane. 6483.Fl H 6484also removes all hyperlinks. 6485.Tg deleteb 6486.It Ic delete-buffer Op Fl b Ar buffer-name 6487.D1 Pq alias: Ic deleteb 6488Delete the buffer named 6489.Ar buffer-name , 6490or the most recently added automatically named buffer if not specified. 6491.Tg lsb 6492.It Xo Ic list-buffers 6493.Op Fl F Ar format 6494.Op Fl f Ar filter 6495.Xc 6496.D1 Pq alias: Ic lsb 6497List the global buffers. 6498.Fl F 6499specifies the format of each line and 6500.Fl f 6501a filter. 6502Only buffers for which the filter is true are shown. 6503See the 6504.Sx FORMATS 6505section. 6506.It Xo Ic load-buffer 6507.Op Fl w 6508.Op Fl b Ar buffer-name 6509.Op Fl t Ar target-client 6510.Ar path 6511.Xc 6512.Tg loadb 6513.D1 Pq alias: Ic loadb 6514Load the contents of the specified paste buffer from 6515.Ar path . 6516If 6517.Fl w 6518is given, the buffer is also sent to the clipboard for 6519.Ar target-client 6520using the 6521.Xr xterm 1 6522escape sequence, if possible. 6523.Tg pasteb 6524.It Xo Ic paste-buffer 6525.Op Fl dpr 6526.Op Fl b Ar buffer-name 6527.Op Fl s Ar separator 6528.Op Fl t Ar target-pane 6529.Xc 6530.D1 Pq alias: Ic pasteb 6531Insert the contents of a paste buffer into the specified pane. 6532If not specified, paste into the current one. 6533With 6534.Fl d , 6535also delete the paste buffer. 6536When output, any linefeed (LF) characters in the paste buffer are replaced with 6537a separator, by default carriage return (CR). 6538A custom separator may be specified using the 6539.Fl s 6540flag. 6541The 6542.Fl r 6543flag means to do no replacement (equivalent to a separator of LF). 6544If 6545.Fl p 6546is specified, paste bracket control codes are inserted around the 6547buffer if the application has requested bracketed paste mode. 6548.Tg saveb 6549.It Xo Ic save-buffer 6550.Op Fl a 6551.Op Fl b Ar buffer-name 6552.Ar path 6553.Xc 6554.D1 Pq alias: Ic saveb 6555Save the contents of the specified paste buffer to 6556.Ar path . 6557The 6558.Fl a 6559option appends to rather than overwriting the file. 6560.It Xo Ic set-buffer 6561.Op Fl aw 6562.Op Fl b Ar buffer-name 6563.Op Fl t Ar target-client 6564.Tg setb 6565.Op Fl n Ar new-buffer-name 6566.Ar data 6567.Xc 6568.D1 Pq alias: Ic setb 6569Set the contents of the specified buffer to 6570.Ar data . 6571If 6572.Fl w 6573is given, the buffer is also sent to the clipboard for 6574.Ar target-client 6575using the 6576.Xr xterm 1 6577escape sequence, if possible. 6578The 6579.Fl a 6580option appends to rather than overwriting the buffer. 6581The 6582.Fl n 6583option renames the buffer to 6584.Ar new-buffer-name . 6585.Tg showb 6586.It Xo Ic show-buffer 6587.Op Fl b Ar buffer-name 6588.Xc 6589.D1 Pq alias: Ic showb 6590Display the contents of the specified buffer. 6591.El 6592.Sh MISCELLANEOUS 6593Miscellaneous commands are as follows: 6594.Bl -tag -width Ds 6595.It Ic clock-mode Op Fl t Ar target-pane 6596Display a large clock. 6597.Tg if 6598.It Xo Ic if-shell 6599.Op Fl bF 6600.Op Fl t Ar target-pane 6601.Ar shell-command command 6602.Op Ar command 6603.Xc 6604.D1 Pq alias: Ic if 6605Execute the first 6606.Ar command 6607if 6608.Ar shell-command 6609(run with 6610.Pa /bin/sh ) 6611returns success or the second 6612.Ar command 6613otherwise. 6614Before being executed, 6615.Ar shell-command 6616is expanded using the rules specified in the 6617.Sx FORMATS 6618section, including those relevant to 6619.Ar target-pane . 6620With 6621.Fl b , 6622.Ar shell-command 6623is run in the background. 6624.Pp 6625If 6626.Fl F 6627is given, 6628.Ar shell-command 6629is not executed but considered success if neither empty nor zero (after formats 6630are expanded). 6631.Tg lock 6632.It Ic lock-server 6633.D1 Pq alias: Ic lock 6634Lock each client individually by running the command specified by the 6635.Ic lock-command 6636option. 6637.Tg run 6638.It Xo Ic run-shell 6639.Op Fl bC 6640.Op Fl c Ar start-directory 6641.Op Fl d Ar delay 6642.Op Fl t Ar target-pane 6643.Op Ar shell-command 6644.Xc 6645.D1 Pq alias: Ic run 6646Execute 6647.Ar shell-command 6648using 6649.Pa /bin/sh 6650or (with 6651.Fl C ) 6652a 6653.Nm 6654command in the background without creating a window. 6655Before being executed, 6656.Ar shell-command 6657is expanded using the rules specified in the 6658.Sx FORMATS 6659section. 6660With 6661.Fl b , 6662the command is run in the background. 6663.Fl d 6664waits for 6665.Ar delay 6666seconds before starting the command. 6667If 6668.Fl c 6669is given, the current working directory is set to 6670.Ar start-directory . 6671If 6672.Fl C 6673is not given, any output to stdout is displayed in view mode (in the pane 6674specified by 6675.Fl t 6676or the current pane if omitted) after the command finishes. 6677If the command fails, the exit status is also displayed. 6678.Tg wait 6679.It Xo Ic wait-for 6680.Op Fl L | S | U 6681.Ar channel 6682.Xc 6683.D1 Pq alias: Ic wait 6684When used without options, prevents the client from exiting until woken using 6685.Ic wait-for 6686.Fl S 6687with the same channel. 6688When 6689.Fl L 6690is used, the channel is locked and any clients that try to lock the same 6691channel are made to wait until the channel is unlocked with 6692.Ic wait-for 6693.Fl U . 6694.El 6695.Sh EXIT MESSAGES 6696When a 6697.Nm 6698client detaches, it prints a message. 6699This may be one of: 6700.Bl -tag -width Ds 6701.It detached (from session ...) 6702The client was detached normally. 6703.It detached and SIGHUP 6704The client was detached and its parent sent the 6705.Dv SIGHUP 6706signal (for example with 6707.Ic detach-client 6708.Fl P ) . 6709.It lost tty 6710The client's 6711.Xr tty 4 6712or 6713.Xr pty 4 6714was unexpectedly destroyed. 6715.It terminated 6716The client was killed with 6717.Dv SIGTERM . 6718.It too far behind 6719The client is in control mode and became unable to keep up with the data from 6720.Nm . 6721.It exited 6722The server exited when it had no sessions. 6723.It server exited 6724The server exited when it received 6725.Dv SIGTERM . 6726.It server exited unexpectedly 6727The server crashed or otherwise exited without telling the client the reason. 6728.El 6729.Sh TERMINFO EXTENSIONS 6730.Nm 6731understands some unofficial extensions to 6732.Xr terminfo 5 . 6733It is not normally necessary to set these manually, instead the 6734.Ic terminal-features 6735option should be used. 6736.Bl -tag -width Ds 6737.It Em \&AX 6738An existing extension that tells 6739.Nm 6740the terminal supports default colours. 6741.It Em \&Bidi 6742Tell 6743.Nm 6744that the terminal supports the VTE bidirectional text extensions. 6745.It Em \&Cs , Cr 6746Set the cursor colour. 6747The first takes a single string argument and is used to set the colour; 6748the second takes no arguments and restores the default cursor colour. 6749If set, a sequence such as this may be used 6750to change the cursor colour from inside 6751.Nm : 6752.Bd -literal -offset indent 6753$ printf \[aq]\e033]12;red\e033\e\e\[aq] 6754.Ed 6755.Pp 6756The colour is an 6757.Xr X 7 6758colour, see 6759.Xr XParseColor 3 . 6760.It Em \&Cmg, \&Clmg, \&Dsmg , \&Enmg 6761Set, clear, disable or enable DECSLRM margins. 6762These are set automatically if the terminal reports it is 6763.Em VT420 6764compatible. 6765.It Em \&Dsbp , \&Enbp 6766Disable and enable bracketed paste. 6767These are set automatically if the 6768.Em XT 6769capability is present. 6770.It Em \&Dseks , \&Eneks 6771Disable and enable extended keys. 6772.It Em \&Dsfcs , \&Enfcs 6773Disable and enable focus reporting. 6774These are set automatically if the 6775.Em XT 6776capability is present. 6777.It Em \&Hls 6778Set or clear a hyperlink annotation. 6779.It Em \&Nobr 6780Tell 6781.Nm 6782that the terminal does not use bright colors for bold display. 6783.It Em \&Rect 6784Tell 6785.Nm 6786that the terminal supports rectangle operations. 6787.It Em \&Smol 6788Enable the overline attribute. 6789.It Em \&Smulx 6790Set a styled underscore. 6791The single parameter is one of: 0 for no underscore, 1 for normal 6792underscore, 2 for double underscore, 3 for curly underscore, 4 for dotted 6793underscore and 5 for dashed underscore. 6794.It Em \&Setulc , \&Setulc1, \&ol 6795Set the underscore colour or reset to the default. 6796.Em Setulc 6797is for RGB colours and 6798.Em Setulc1 6799for ANSI or 256 colours. 6800The 6801.Em Setulc 6802argument is (red * 65536) + (green * 256) + blue where each is between 0 6803and 255. 6804.It Em \&Ss , Se 6805Set or reset the cursor style. 6806If set, a sequence such as this may be used 6807to change the cursor to an underline: 6808.Bd -literal -offset indent 6809$ printf \[aq]\e033[4 q\[aq] 6810.Ed 6811.Pp 6812If 6813.Em Se 6814is not set, \&Ss with argument 0 will be used to reset the cursor style instead. 6815.It Em \&Swd 6816Set the opening sequence for the working directory notification. 6817The sequence is terminated using the standard 6818.Em fsl 6819capability. 6820.It Em \&Sxl 6821Indicates that the terminal supports SIXEL. 6822.It Em \&Sync 6823Start (parameter is 1) or end (parameter is 2) a synchronized update. 6824.It Em \&Tc 6825Indicate that the terminal supports the 6826.Ql direct colour 6827RGB escape sequence (for example, \ee[38;2;255;255;255m). 6828.Pp 6829If supported, this is used for the initialize colour escape sequence (which 6830may be enabled by adding the 6831.Ql initc 6832and 6833.Ql ccc 6834capabilities to the 6835.Nm 6836.Xr terminfo 5 6837entry). 6838.Pp 6839This is equivalent to the 6840.Em RGB 6841.Xr terminfo 5 6842capability. 6843.It Em \&Ms 6844Store the current buffer in the host terminal's selection (clipboard). 6845See the 6846.Em set-clipboard 6847option above and the 6848.Xr xterm 1 6849man page. 6850.It Em \&XT 6851This is an existing extension capability that tmux uses to mean that the 6852terminal supports the 6853.Xr xterm 1 6854title set sequences and to automatically set some of the capabilities above. 6855.El 6856.Sh CONTROL MODE 6857.Nm 6858offers a textual interface called 6859.Em control mode . 6860This allows applications to communicate with 6861.Nm 6862using a simple text-only protocol. 6863.Pp 6864In control mode, a client sends 6865.Nm 6866commands or command sequences terminated by newlines on standard input. 6867Each command will produce one block of output on standard output. 6868An output block consists of a 6869.Em %begin 6870line followed by the output (which may be empty). 6871The output block ends with a 6872.Em %end 6873or 6874.Em %error . 6875.Em %begin 6876and matching 6877.Em %end 6878or 6879.Em %error 6880have three arguments: an integer time (as seconds from epoch), command number 6881and flags (currently not used). 6882For example: 6883.Bd -literal -offset indent 6884%begin 1363006971 2 1 68850: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active) 6886%end 1363006971 2 1 6887.Ed 6888.Pp 6889The 6890.Ic refresh-client 6891.Fl C 6892command may be used to set the size of a client in control mode. 6893.Pp 6894In control mode, 6895.Nm 6896outputs notifications. 6897A notification will never occur inside an output block. 6898.Pp 6899The following notifications are defined: 6900.Bl -tag -width Ds 6901.It Ic %client-detached Ar client 6902The client has detached. 6903.It Ic %client-session-changed Ar client session-id name 6904The client is now attached to the session with ID 6905.Ar session-id , 6906which is named 6907.Ar name . 6908.It Ic %config-error Ar error 6909An error has happened in a configuration file. 6910.It Ic %continue Ar pane-id 6911The pane has been continued after being paused (if the 6912.Ar pause-after 6913flag is set, see 6914.Ic refresh-client 6915.Fl A ) . 6916.It Ic %exit Op Ar reason 6917The 6918.Nm 6919client is exiting immediately, either because it is not attached to any session 6920or an error occurred. 6921If present, 6922.Ar reason 6923describes why the client exited. 6924.It Ic %extended-output Ar pane-id Ar age Ar ... \& : Ar value 6925New form of 6926.Ic %output 6927sent when the 6928.Ar pause-after 6929flag is set. 6930.Ar age 6931is the time in milliseconds for which tmux had buffered the output before it 6932was sent. 6933Any subsequent arguments up until a single 6934.Ql \&: 6935are for future use and should be ignored. 6936.It Xo Ic %layout-change 6937.Ar window-id 6938.Ar window-layout 6939.Ar window-visible-layout 6940.Ar window-flags 6941.Xc 6942The layout of a window with ID 6943.Ar window-id 6944changed. 6945The new layout is 6946.Ar window-layout . 6947The window's visible layout is 6948.Ar window-visible-layout 6949and the window flags are 6950.Ar window-flags . 6951.It Ic %message Ar message 6952A message sent with the 6953.Ic display-message 6954command. 6955.It Ic %output Ar pane-id Ar value 6956A window pane produced output. 6957.Ar value 6958escapes non-printable characters and backslash as octal \\xxx. 6959.It Ic %pane-mode-changed Ar pane-id 6960The pane with ID 6961.Ar pane-id 6962has changed mode. 6963.It Ic %paste-buffer-changed Ar name 6964Paste buffer 6965.Ar name 6966has been changed. 6967.It Ic %paste-buffer-deleted Ar name 6968Paste buffer 6969.Ar name 6970has been deleted. 6971.It Ic %pause Ar pane-id 6972The pane has been paused (if the 6973.Ar pause-after 6974flag is set). 6975.It Ic %session-changed Ar session-id Ar name 6976The client is now attached to the session with ID 6977.Ar session-id , 6978which is named 6979.Ar name . 6980.It Ic %session-renamed Ar name 6981The current session was renamed to 6982.Ar name . 6983.It Ic %session-window-changed Ar session-id Ar window-id 6984The session with ID 6985.Ar session-id 6986changed its active window to the window with ID 6987.Ar window-id . 6988.It Ic %sessions-changed 6989A session was created or destroyed. 6990.It Xo Ic %subscription-changed 6991.Ar name 6992.Ar session-id 6993.Ar window-id 6994.Ar window-index 6995.Ar pane-id ... \& : 6996.Ar value 6997.Xc 6998The value of the format associated with subscription 6999.Ar name 7000has changed to 7001.Ar value . 7002See 7003.Ic refresh-client 7004.Fl B . 7005Any arguments after 7006.Ar pane-id 7007up until a single 7008.Ql \&: 7009are for future use and should be ignored. 7010.It Ic %unlinked-window-add Ar window-id 7011The window with ID 7012.Ar window-id 7013was created but is not linked to the current session. 7014.It Ic %unlinked-window-close Ar window-id 7015The window with ID 7016.Ar window-id , 7017which is not linked to the current session, was closed. 7018.It Ic %unlinked-window-renamed Ar window-id 7019The window with ID 7020.Ar window-id , 7021which is not linked to the current session, was renamed. 7022.It Ic %window-add Ar window-id 7023The window with ID 7024.Ar window-id 7025was linked to the current session. 7026.It Ic %window-close Ar window-id 7027The window with ID 7028.Ar window-id 7029closed. 7030.It Ic %window-pane-changed Ar window-id Ar pane-id 7031The active pane in the window with ID 7032.Ar window-id 7033changed to the pane with ID 7034.Ar pane-id . 7035.It Ic %window-renamed Ar window-id Ar name 7036The window with ID 7037.Ar window-id 7038was renamed to 7039.Ar name . 7040.El 7041.Sh ENVIRONMENT 7042When 7043.Nm 7044is started, it inspects the following environment variables: 7045.Bl -tag -width LC_CTYPE 7046.It Ev EDITOR 7047If the command specified in this variable contains the string 7048.Ql vi 7049and 7050.Ev VISUAL 7051is unset, use vi-style key bindings. 7052Overridden by the 7053.Ic mode-keys 7054and 7055.Ic status-keys 7056options. 7057.It Ev HOME 7058The user's login directory. 7059If unset, the 7060.Xr passwd 5 7061database is consulted. 7062.It Ev LC_CTYPE 7063The character encoding 7064.Xr locale 1 . 7065It is used for two separate purposes. 7066For output to the terminal, UTF-8 is used if the 7067.Fl u 7068option is given or if 7069.Ev LC_CTYPE 7070contains 7071.Qq UTF-8 7072or 7073.Qq UTF8 . 7074Otherwise, only ASCII characters are written and non-ASCII characters 7075are replaced with underscores 7076.Pq Ql _ . 7077For input, 7078.Nm 7079always runs with a UTF-8 locale. 7080If en_US.UTF-8 is provided by the operating system, it is used and 7081.Ev LC_CTYPE 7082is ignored for input. 7083Otherwise, 7084.Ev LC_CTYPE 7085tells 7086.Nm 7087what the UTF-8 locale is called on the current system. 7088If the locale specified by 7089.Ev LC_CTYPE 7090is not available or is not a UTF-8 locale, 7091.Nm 7092exits with an error message. 7093.It Ev LC_TIME 7094The date and time format 7095.Xr locale 1 . 7096It is used for locale-dependent 7097.Xr strftime 3 7098format specifiers. 7099.It Ev PWD 7100The current working directory to be set in the global environment. 7101This may be useful if it contains symbolic links. 7102If the value of the variable does not match the current working 7103directory, the variable is ignored and the result of 7104.Xr getcwd 3 7105is used instead. 7106.It Ev SHELL 7107The absolute path to the default shell for new windows. 7108See the 7109.Ic default-shell 7110option for details. 7111.It Ev TMUX_TMPDIR 7112The parent directory of the directory containing the server sockets. 7113See the 7114.Fl L 7115option for details. 7116.It Ev VISUAL 7117If the command specified in this variable contains the string 7118.Ql vi , 7119use vi-style key bindings. 7120Overridden by the 7121.Ic mode-keys 7122and 7123.Ic status-keys 7124options. 7125.El 7126.Sh FILES 7127.Bl -tag -width "/etc/tmux.confXXX" -compact 7128.It Pa \[ti]/.tmux.conf 7129Default 7130.Nm 7131configuration file. 7132.It Pa /etc/tmux.conf 7133System-wide configuration file. 7134.El 7135.Sh EXAMPLES 7136To create a new 7137.Nm 7138session running 7139.Xr vi 1 : 7140.Pp 7141.Dl $ tmux new-session vi 7142.Pp 7143Most commands have a shorter form, known as an alias. 7144For new-session, this is 7145.Ic new : 7146.Pp 7147.Dl $ tmux new vi 7148.Pp 7149Alternatively, the shortest unambiguous form of a command is accepted. 7150If there are several options, they are listed: 7151.Bd -literal -offset indent 7152$ tmux n 7153ambiguous command: n, could be: new-session, new-window, next-window 7154.Ed 7155.Pp 7156Within an active session, a new window may be created by typing 7157.Ql C-b c 7158(Ctrl 7159followed by the 7160.Ql b 7161key 7162followed by the 7163.Ql c 7164key). 7165.Pp 7166Windows may be navigated with: 7167.Ql C-b 0 7168(to select window 0), 7169.Ql C-b 1 7170(to select window 1), and so on; 7171.Ql C-b n 7172to select the next window; and 7173.Ql C-b p 7174to select the previous window. 7175.Pp 7176A session may be detached using 7177.Ql C-b d 7178(or by an external event such as 7179.Xr ssh 1 7180disconnection) and reattached with: 7181.Pp 7182.Dl $ tmux attach-session 7183.Pp 7184Typing 7185.Ql C-b \&? 7186lists the current key bindings in the current window; up and down may be used 7187to navigate the list or 7188.Ql q 7189to exit from it. 7190.Pp 7191Commands to be run when the 7192.Nm 7193server is started may be placed in the 7194.Pa \[ti]/.tmux.conf 7195configuration file. 7196Common examples include: 7197.Pp 7198Changing the default prefix key: 7199.Bd -literal -offset indent 7200set-option -g prefix C-a 7201unbind-key C-b 7202bind-key C-a send-prefix 7203.Ed 7204.Pp 7205Turning the status line off, or changing its colour: 7206.Bd -literal -offset indent 7207set-option -g status off 7208set-option -g status-style bg=blue 7209.Ed 7210.Pp 7211Setting other options, such as the default command, 7212or locking after 30 minutes of inactivity: 7213.Bd -literal -offset indent 7214set-option -g default-command "exec /bin/ksh" 7215set-option -g lock-after-time 1800 7216.Ed 7217.Pp 7218Creating new key bindings: 7219.Bd -literal -offset indent 7220bind-key b set-option status 7221bind-key / command-prompt "split-window \[aq]exec man %%\[aq]" 7222bind-key S command-prompt "new-window -n %1 \[aq]ssh %1\[aq]" 7223.Ed 7224.Sh SEE ALSO 7225.Xr pty 4 7226.Sh AUTHORS 7227.An Nicholas Marriott Aq Mt nicholas.marriott@gmail.com 7228