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