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