1.\" $OpenBSD$ 2.\" 3.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com> 4.\" 5.\" Permission to use, copy, modify, and distribute this software for any 6.\" purpose with or without fee is hereby granted, provided that the above 7.\" copyright notice and this permission notice appear in all copies. 8.\" 9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13.\" WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER 14.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 15.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16.\" 17.Dd January 6, 2020 18.Dt TMUX 1 19.Os 20.Sh NAME 21.Nm tmux 22.Nd terminal multiplexer 23.Sh SYNOPSIS 24.Nm tmux 25.Bk -words 26.Op Fl 2CDluvV 27.Op Fl c Ar shell-command 28.Op Fl f Ar file 29.Op Fl L Ar socket-name 30.Op Fl S Ar socket-path 31.Op Fl T Ar features 32.Op Ar command Op Ar flags 33.Ek 34.Sh DESCRIPTION 35.Nm 36is a terminal multiplexer: 37it enables a number of terminals to be created, accessed, and 38controlled from a single screen. 39.Nm 40may be detached from a screen 41and continue running in the background, 42then later reattached. 43.Pp 44When 45.Nm 46is started, it creates a new 47.Em session 48with a single 49.Em window 50and displays it on screen. 51A status line at the bottom of the screen 52shows information on the current session 53and is used to enter interactive commands. 54.Pp 55A session is a single collection of 56.Em pseudo terminals 57under the management of 58.Nm . 59Each session has one or more 60windows linked to it. 61A window occupies the entire screen 62and may be split into rectangular panes, 63each of which is a separate pseudo terminal 64(the 65.Xr pty 4 66manual page documents the technical details of pseudo terminals). 67Any number of 68.Nm 69instances may connect to the same session, 70and any number of windows may be present in the same session. 71Once all sessions are killed, 72.Nm 73exits. 74.Pp 75Each session is persistent and will survive accidental disconnection 76(such as 77.Xr ssh 1 78connection timeout) or intentional detaching (with the 79.Ql C-b d 80key strokes). 81.Nm 82may be reattached using: 83.Pp 84.Dl $ tmux attach 85.Pp 86In 87.Nm , 88a session is displayed on screen by a 89.Em client 90and all sessions are managed by a single 91.Em server . 92The server and each client are separate processes which communicate through a 93socket in 94.Pa /tmp . 95.Pp 96The options are as follows: 97.Bl -tag -width "XXXXXXXXXXXX" 98.It Fl 2 99Force 100.Nm 101to assume the terminal supports 256 colours. 102This is equivalent to 103.Fl T Ar 256 . 104.It Fl C 105Start in control mode (see the 106.Sx CONTROL MODE 107section). 108Given twice 109.Xo ( Fl CC ) Xc 110disables echo. 111.It Fl c Ar shell-command 112Execute 113.Ar shell-command 114using the default shell. 115If necessary, the 116.Nm 117server will be started to retrieve the 118.Ic default-shell 119option. 120This option is for compatibility with 121.Xr sh 1 122when 123.Nm 124is used as a login shell. 125.It Fl D 126Do not start the 127.Nm 128server as a daemon. 129This also turns the 130.Ic exit-empty 131option off. 132With 133.Fl D , 134.Ar command 135may not be specified. 136.It Fl f Ar file 137Specify an alternative configuration file. 138By default, 139.Nm 140loads the system configuration file from 141.Pa @SYSCONFDIR@/tmux.conf , 142if present, then looks for a user configuration file at 143.Pa ~/.tmux.conf, 144.Pa $XDG_CONFIG_HOME/tmux/tmux.conf 145or 146.Pa ~/.config/tmux/tmux.conf . 147.Pp 148The configuration file is a set of 149.Nm 150commands which are executed in sequence when the server is first started. 151.Nm 152loads configuration files once when the server process has started. 153The 154.Ic source-file 155command may be used to load a file later. 156.Pp 157.Nm 158shows any error messages from commands in configuration files in the first 159session created, and continues to process the rest of the configuration file. 160.It Fl L Ar socket-name 161.Nm 162stores the server socket in a directory under 163.Ev TMUX_TMPDIR 164or 165.Pa /tmp 166if it is unset. 167The default socket is named 168.Em default . 169This option allows a different socket name to be specified, allowing several 170independent 171.Nm 172servers to be run. 173Unlike 174.Fl S 175a full path is not necessary: the sockets are all created in a directory 176.Pa tmux-UID 177under the directory given by 178.Ev TMUX_TMPDIR 179or in 180.Pa /tmp . 181The 182.Pa tmux-UID 183directory is created by 184.Nm 185and must not be world readable, writable or executable. 186.Pp 187If the socket is accidentally removed, the 188.Dv SIGUSR1 189signal may be sent to the 190.Nm 191server process to recreate it (note that this will fail if any parent 192directories are missing). 193.It Fl l 194Behave as a login shell. 195This flag currently has no effect and is for compatibility with other shells 196when using tmux as a login shell. 197.It Fl N 198Do not start the server even if the command would normally do so (for example 199.Ic new-session 200or 201.Ic start-server ) . 202.It Fl S Ar socket-path 203Specify a full alternative path to the server socket. 204If 205.Fl S 206is specified, the default socket directory is not used and any 207.Fl L 208flag is ignored. 209.It Fl u 210Write UTF-8 output to the terminal even if the first environment 211variable of 212.Ev LC_ALL , 213.Ev LC_CTYPE , 214or 215.Ev LANG 216that is set does not contain 217.Qq UTF-8 218or 219.Qq UTF8 . 220This is equivalent to 221.Fl T Ar UTF-8 . 222.It Fl T Ar features 223Set terminal features for the client. 224This is a comma-separated list of features. 225See the 226.Ic terminal-features 227option. 228.It Fl v 229Request verbose logging. 230Log messages will be saved into 231.Pa tmux-client-PID.log 232and 233.Pa tmux-server-PID.log 234files in the current directory, where 235.Em PID 236is the PID of the server or client process. 237If 238.Fl v 239is specified twice, an additional 240.Pa tmux-out-PID.log 241file is generated with a copy of everything 242.Nm 243writes to the terminal. 244.Pp 245The 246.Dv SIGUSR2 247signal may be sent to the 248.Nm 249server process to toggle logging between on (as if 250.Fl v 251was given) and off. 252.It Fl V 253Report the 254.Nm 255version. 256.It Ar command Op Ar flags 257This specifies one of a set of commands used to control 258.Nm , 259as described in the following sections. 260If no commands are specified, the 261.Ic new-session 262command is assumed. 263.El 264.Sh DEFAULT KEY BINDINGS 265.Nm 266may be controlled from an attached client by using a key combination of a 267prefix key, 268.Ql C-b 269(Ctrl-b) by default, followed by a command key. 270.Pp 271The default command key bindings are: 272.Pp 273.Bl -tag -width "XXXXXXXXXX" -offset indent -compact 274.It C-b 275Send the prefix key (C-b) through to the application. 276.It C-o 277Rotate the panes in the current window forwards. 278.It C-z 279Suspend the 280.Nm 281client. 282.It ! 283Break the current pane out of the window. 284.It \&" 285.\" " 286Split the current pane into two, top and bottom. 287.It # 288List all paste buffers. 289.It $ 290Rename the current session. 291.It % 292Split the current pane into two, left and right. 293.It & 294Kill the current window. 295.It ' 296Prompt for a window index to select. 297.It \&( 298Switch the attached client to the previous session. 299.It \&) 300Switch the attached client to the next session. 301.It , 302Rename the current window. 303.It - 304Delete the most recently copied buffer of text. 305.It . 306Prompt for an index to move the current window. 307.It 0 to 9 308Select windows 0 to 9. 309.It : 310Enter the 311.Nm 312command prompt. 313.It ; 314Move to the previously active pane. 315.It = 316Choose which buffer to paste interactively from a list. 317.It \&? 318List all key bindings. 319.It D 320Choose a client to detach. 321.It L 322Switch the attached client back to the last session. 323.It \&[ 324Enter copy mode to copy text or view the history. 325.It \&] 326Paste the most recently copied buffer of text. 327.It c 328Create a new window. 329.It d 330Detach the current client. 331.It f 332Prompt to search for text in open windows. 333.It i 334Display some information about the current window. 335.It l 336Move to the previously selected window. 337.It m 338Mark the current pane (see 339.Ic select-pane 340.Fl m ) . 341.It M 342Clear the marked pane. 343.It n 344Change to the next window. 345.It o 346Select the next pane in the current window. 347.It p 348Change to the previous window. 349.It q 350Briefly display pane indexes. 351.It r 352Force redraw of the attached client. 353.It s 354Select a new session for the attached client interactively. 355.It t 356Show the time. 357.It w 358Choose the current window interactively. 359.It x 360Kill the current pane. 361.It z 362Toggle zoom state of the current pane. 363.It { 364Swap the current pane with the previous pane. 365.It } 366Swap the current pane with the next pane. 367.It ~ 368Show previous messages from 369.Nm , 370if any. 371.It Page Up 372Enter copy mode and scroll one page up. 373.It Up, Down 374.It Left, Right 375Change to the pane above, below, to the left, or to the right of the current 376pane. 377.It M-1 to M-5 378Arrange panes in one of the five preset layouts: even-horizontal, 379even-vertical, main-horizontal, main-vertical, or tiled. 380.It Space 381Arrange the current window in the next preset layout. 382.It M-n 383Move to the next window with a bell or activity marker. 384.It M-o 385Rotate the panes in the current window backwards. 386.It M-p 387Move to the previous window with a bell or activity marker. 388.It C-Up, C-Down 389.It C-Left, C-Right 390Resize the current pane in steps of one cell. 391.It M-Up, M-Down 392.It M-Left, M-Right 393Resize the current pane in steps of five cells. 394.El 395.Pp 396Key bindings may be changed with the 397.Ic bind-key 398and 399.Ic unbind-key 400commands. 401.Sh COMMAND PARSING AND EXECUTION 402.Nm 403supports a large number of commands which can be used to control its 404behaviour. 405Each command is named and can accept zero or more flags and arguments. 406They may be bound to a key with the 407.Ic bind-key 408command or run from the shell prompt, a shell script, a configuration file or 409the command prompt. 410For example, the same 411.Ic set-option 412command run from the shell prompt, from 413.Pa ~/.tmux.conf 414and bound to a key may look like: 415.Bd -literal -offset indent 416$ tmux set-option -g status-style bg=cyan 417 418set-option -g status-style bg=cyan 419 420bind-key C set-option -g status-style bg=cyan 421.Ed 422.Pp 423Here, the command name is 424.Ql set-option , 425.Ql Fl g 426is a flag and 427.Ql status-style 428and 429.Ql bg=cyan 430are arguments. 431.Pp 432.Nm 433distinguishes between command parsing and execution. 434In order to execute a command, 435.Nm 436needs it to be split up into its name and arguments. 437This is command parsing. 438If a command is run from the shell, the shell parses it; from inside 439.Nm 440or from a configuration file, 441.Nm 442does. 443Examples of when 444.Nm 445parses commands are: 446.Bl -dash -offset indent 447.It 448in a configuration file; 449.It 450typed at the command prompt (see 451.Ic command-prompt ) ; 452.It 453given to 454.Ic bind-key ; 455.It 456passed as arguments to 457.Ic if-shell 458or 459.Ic confirm-before . 460.El 461.Pp 462To execute commands, each client has a 463.Ql command queue . 464A global command queue not attached to any client is used on startup 465for configuration files like 466.Pa ~/.tmux.conf . 467Parsed commands added to the queue are executed in order. 468Some commands, like 469.Ic if-shell 470and 471.Ic confirm-before , 472parse their argument to create a new command which is inserted immediately 473after themselves. 474This means that arguments can be parsed twice or more - once when the parent command (such as 475.Ic if-shell ) 476is parsed and again when it parses and executes its command. 477Commands like 478.Ic if-shell , 479.Ic run-shell 480and 481.Ic display-panes 482stop execution of subsequent commands on the queue until something happens - 483.Ic if-shell 484and 485.Ic run-shell 486until a shell command finishes and 487.Ic display-panes 488until a key is pressed. 489For example, the following commands: 490.Bd -literal -offset indent 491new-session; new-window 492if-shell "true" "split-window" 493kill-session 494.Ed 495.Pp 496Will execute 497.Ic new-session , 498.Ic new-window , 499.Ic if-shell , 500the shell command 501.Xr true 1 , 502.Ic split-window 503and 504.Ic kill-session 505in that order. 506.Pp 507The 508.Sx COMMANDS 509section lists the 510.Nm 511commands and their arguments. 512.Sh PARSING SYNTAX 513This section describes the syntax of commands parsed by 514.Nm , 515for example in a configuration file or at the command prompt. 516Note that when commands are entered into the shell, they are parsed by the shell 517- see for example 518.Xr ksh 1 519or 520.Xr csh 1 . 521.Pp 522Each command is terminated by a newline or a semicolon (;). 523Commands separated by semicolons together form a 524.Ql command sequence 525- if a command in the sequence encounters an error, no subsequent commands are 526executed. 527.Pp 528It is recommended that a semicolon used as a command separator should be 529written as an individual token, for example from 530.Xr sh 1 : 531.Bd -literal -offset indent 532$ tmux neww \\; splitw 533.Ed 534.Pp 535Or: 536.Bd -literal -offset indent 537$ tmux neww ';' splitw 538.Ed 539.Pp 540Or from the tmux command prompt: 541.Bd -literal -offset indent 542neww ; splitw 543.Ed 544.Pp 545However, a trailing semicolon is also interpreted as a command separator, 546for example in these 547.Xr sh 1 548commands: 549.Bd -literal -offset indent 550$ tmux neww\e\e; splitw 551.Ed 552.Pp 553Or: 554.Bd -literal -offset indent 555$ tmux 'neww;' splitw 556.Ed 557.Pp 558As in these examples, when running tmux from the shell extra care must be taken 559to properly quote semicolons: 560.Bl -enum -offset Ds 561.It 562Semicolons that should be interpreted as a command separator 563should be escaped according to the shell conventions. 564For 565.Xr sh 1 566this typically means quoted (such as 567.Ql neww ';' splitw ) 568or escaped (such as 569.Ql neww \e\e\e\e; splitw ) . 570.It 571Individual semicolons or trailing semicolons that should be interpreted as 572arguments should be escaped twice: once according to the shell conventions and 573a second time for 574.Nm ; 575for example: 576.Bd -literal -offset indent 577$ tmux neww 'foo\e\e;' bar 578$ tmux neww foo\e\e\e\e; bar 579.Ed 580.It 581Semicolons that are not individual tokens or trailing another token should only 582be escaped once according to shell conventions; for example: 583.Bd -literal -offset indent 584$ tmux neww 'foo-;-bar' 585$ tmux neww foo-\e\e;-bar 586.Ed 587.El 588.Pp 589Comments are marked by the unquoted # character - any remaining text after a 590comment is ignored until the end of the line. 591.Pp 592If the last character of a line is \e, the line is joined with the following 593line (the \e and the newline are completely removed). 594This is called line continuation and applies both inside and outside quoted 595strings and in comments, but not inside braces. 596.Pp 597Command arguments may be specified as strings surrounded by single (') quotes, 598double quotes (") or braces ({}). 599.\" " 600This is required when the argument contains any special character. 601Single and double quoted strings cannot span multiple lines except with line 602continuation. 603Braces can span multiple lines. 604.Pp 605Outside of quotes and inside double quotes, these replacements are performed: 606.Bl -dash -offset indent 607.It 608Environment variables preceded by $ are replaced with their value from the 609global environment (see the 610.Sx GLOBAL AND SESSION ENVIRONMENT 611section). 612.It 613A leading ~ or ~user is expanded to the home directory of the current or 614specified user. 615.It 616\euXXXX or \euXXXXXXXX is replaced by the Unicode codepoint corresponding to 617the given four or eight digit hexadecimal number. 618.It 619When preceded (escaped) by a \e, the following characters are replaced: \ee by 620the escape character; \er by a carriage return; \en by a newline; and \et by a 621tab. 622.It 623\eooo is replaced by a character of the octal value ooo. 624Three octal digits are required, for example \e001. 625The largest valid character is \e377. 626.It 627Any other characters preceded by \e are replaced by themselves (that is, the \e 628is removed) and are not treated as having any special meaning - so for example 629\e; will not mark a command sequence and \e$ will not expand an environment 630variable. 631.El 632.Pp 633Braces are parsed as a configuration file (so conditions such as 634.Ql %if 635are processed) and then converted into a string. 636They are designed to avoid the need for additional escaping when passing a 637group of 638.Nm 639commands as an argument (for example to 640.Ic if-shell ) . 641These two examples produce an identical command - note that no escaping is 642needed when using {}: 643.Bd -literal -offset indent 644if-shell true { 645 display -p 'brace-dollar-foo: }$foo' 646} 647 648if-shell true "display -p 'brace-dollar-foo: }\e$foo'" 649.Ed 650.Pp 651Braces may be enclosed inside braces, for example: 652.Bd -literal -offset indent 653bind x if-shell "true" { 654 if-shell "true" { 655 display "true!" 656 } 657} 658.Ed 659.Pp 660Environment variables may be set by using the syntax 661.Ql name=value , 662for example 663.Ql HOME=/home/user . 664Variables set during parsing are added to the global environment. 665A hidden variable may be set with 666.Ql %hidden , 667for example: 668.Bd -literal -offset indent 669%hidden MYVAR=42 670.Ed 671.Pp 672Hidden variables are not passed to the environment of processes created 673by tmux. 674See the 675.Sx GLOBAL AND SESSION ENVIRONMENT 676section. 677.Pp 678Commands may be parsed conditionally by surrounding them with 679.Ql %if , 680.Ql %elif , 681.Ql %else 682and 683.Ql %endif . 684The argument to 685.Ql %if 686and 687.Ql %elif 688is expanded as a format (see 689.Sx FORMATS ) 690and if it evaluates to false (zero or empty), subsequent text is ignored until 691the closing 692.Ql %elif , 693.Ql %else 694or 695.Ql %endif . 696For example: 697.Bd -literal -offset indent 698%if "#{==:#{host},myhost}" 699set -g status-style bg=red 700%elif "#{==:#{host},myotherhost}" 701set -g status-style bg=green 702%else 703set -g status-style bg=blue 704%endif 705.Ed 706.Pp 707Will change the status line to red if running on 708.Ql myhost , 709green if running on 710.Ql myotherhost , 711or blue if running on another host. 712Conditionals may be given on one line, for example: 713.Bd -literal -offset indent 714%if #{==:#{host},myhost} set -g status-style bg=red %endif 715.Ed 716.Sh COMMANDS 717This section describes the commands supported by 718.Nm . 719Most commands accept the optional 720.Fl t 721(and sometimes 722.Fl s ) 723argument with one of 724.Ar target-client , 725.Ar target-session , 726.Ar target-window , 727or 728.Ar target-pane . 729These specify the client, session, window or pane which a command should affect. 730.Pp 731.Ar target-client 732should be the name of the client, 733typically the 734.Xr pty 4 735file to which the client is connected, for example either of 736.Pa /dev/ttyp1 737or 738.Pa ttyp1 739for the client attached to 740.Pa /dev/ttyp1 . 741If no client is specified, 742.Nm 743attempts to work out the client currently in use; if that fails, an error is 744reported. 745Clients may be listed with the 746.Ic list-clients 747command. 748.Pp 749.Ar target-session 750is tried as, in order: 751.Bl -enum -offset Ds 752.It 753A session ID prefixed with a $. 754.It 755An exact name of a session (as listed by the 756.Ic list-sessions 757command). 758.It 759The start of a session name, for example 760.Ql mysess 761would match a session named 762.Ql mysession . 763.It 764An 765.Xr fnmatch 3 766pattern which is matched against the session name. 767.El 768.Pp 769If the session name is prefixed with an 770.Ql = , 771only an exact match is accepted (so 772.Ql =mysess 773will only match exactly 774.Ql mysess , 775not 776.Ql mysession ) . 777.Pp 778If a single session is found, it is used as the target session; multiple matches 779produce an error. 780If a session is omitted, the current session is used if available; if no 781current session is available, the most recently used is chosen. 782.Pp 783.Ar target-window 784(or 785.Ar src-window 786or 787.Ar dst-window ) 788specifies a window in the form 789.Em session Ns \&: Ns Em window . 790.Em session 791follows the same rules as for 792.Ar target-session , 793and 794.Em window 795is looked for in order as: 796.Bl -enum -offset Ds 797.It 798A special token, listed below. 799.It 800A window index, for example 801.Ql mysession:1 802is window 1 in session 803.Ql mysession . 804.It 805A window ID, such as @1. 806.It 807An exact window name, such as 808.Ql mysession:mywindow . 809.It 810The start of a window name, such as 811.Ql mysession:mywin . 812.It 813As an 814.Xr fnmatch 3 815pattern matched against the window name. 816.El 817.Pp 818Like sessions, a 819.Ql = 820prefix will do an exact match only. 821An empty window name specifies the next unused index if appropriate (for 822example the 823.Ic new-window 824and 825.Ic link-window 826commands) 827otherwise the current window in 828.Em session 829is chosen. 830.Pp 831The following special tokens are available to indicate particular windows. 832Each has a single-character alternative form. 833.Bl -column "XXXXXXXXXX" "X" 834.It Sy "Token" Ta Sy "" Ta Sy "Meaning" 835.It Li "{start}" Ta "^" Ta "The lowest-numbered window" 836.It Li "{end}" Ta "$" Ta "The highest-numbered window" 837.It Li "{last}" Ta "!" Ta "The last (previously current) window" 838.It Li "{next}" Ta "+" Ta "The next window by number" 839.It Li "{previous}" Ta "-" Ta "The previous window by number" 840.El 841.Pp 842.Ar target-pane 843(or 844.Ar src-pane 845or 846.Ar dst-pane ) 847may be a pane ID or takes a similar form to 848.Ar target-window 849but with the optional addition of a period followed by a pane index or pane ID, 850for example: 851.Ql mysession:mywindow.1 . 852If the pane index is omitted, the currently active pane in the specified 853window is used. 854The following special tokens are available for the pane index: 855.Bl -column "XXXXXXXXXXXXXX" "X" 856.It Sy "Token" Ta Sy "" Ta Sy "Meaning" 857.It Li "{last}" Ta "!" Ta "The last (previously active) pane" 858.It Li "{next}" Ta "+" Ta "The next pane by number" 859.It Li "{previous}" Ta "-" Ta "The previous pane by number" 860.It Li "{top}" Ta "" Ta "The top pane" 861.It Li "{bottom}" Ta "" Ta "The bottom pane" 862.It Li "{left}" Ta "" Ta "The leftmost pane" 863.It Li "{right}" Ta "" Ta "The rightmost pane" 864.It Li "{top-left}" Ta "" Ta "The top-left pane" 865.It Li "{top-right}" Ta "" Ta "The top-right pane" 866.It Li "{bottom-left}" Ta "" Ta "The bottom-left pane" 867.It Li "{bottom-right}" Ta "" Ta "The bottom-right pane" 868.It Li "{up-of}" Ta "" Ta "The pane above the active pane" 869.It Li "{down-of}" Ta "" Ta "The pane below the active pane" 870.It Li "{left-of}" Ta "" Ta "The pane to the left of the active pane" 871.It Li "{right-of}" Ta "" Ta "The pane to the right of the active pane" 872.El 873.Pp 874The tokens 875.Ql + 876and 877.Ql - 878may be followed by an offset, for example: 879.Bd -literal -offset indent 880select-window -t:+2 881.Ed 882.Pp 883In addition, 884.Em target-session , 885.Em target-window 886or 887.Em target-pane 888may consist entirely of the token 889.Ql {mouse} 890(alternative form 891.Ql = ) 892to specify the session, window or pane where the most recent mouse event occurred 893(see the 894.Sx MOUSE SUPPORT 895section) 896or 897.Ql {marked} 898(alternative form 899.Ql ~ ) 900to specify the marked pane (see 901.Ic select-pane 902.Fl m ) . 903.Pp 904Sessions, window and panes are each numbered with a unique ID; session IDs are 905prefixed with a 906.Ql $ , 907windows with a 908.Ql @ , 909and panes with a 910.Ql % . 911These are unique and are unchanged for the life of the session, window or pane 912in the 913.Nm 914server. 915The pane ID is passed to the child process of the pane in the 916.Ev TMUX_PANE 917environment variable. 918IDs may be displayed using the 919.Ql session_id , 920.Ql window_id , 921or 922.Ql pane_id 923formats (see the 924.Sx FORMATS 925section) and the 926.Ic display-message , 927.Ic list-sessions , 928.Ic list-windows 929or 930.Ic list-panes 931commands. 932.Pp 933.Ar shell-command 934arguments are 935.Xr sh 1 936commands. 937This may be a single argument passed to the shell, for example: 938.Bd -literal -offset indent 939new-window 'vi ~/.tmux.conf' 940.Ed 941.Pp 942Will run: 943.Bd -literal -offset indent 944/bin/sh -c 'vi ~/.tmux.conf' 945.Ed 946.Pp 947Additionally, the 948.Ic new-window , 949.Ic new-session , 950.Ic split-window , 951.Ic respawn-window 952and 953.Ic respawn-pane 954commands allow 955.Ar shell-command 956to be given as multiple arguments and executed directly (without 957.Ql sh -c ) . 958This can avoid issues with shell quoting. 959For example: 960.Bd -literal -offset indent 961$ tmux new-window vi ~/.tmux.conf 962.Ed 963.Pp 964Will run 965.Xr vi 1 966directly without invoking the shell. 967.Pp 968.Ar command 969.Op Ar arguments 970refers to a 971.Nm 972command, either passed with the command and arguments separately, for example: 973.Bd -literal -offset indent 974bind-key F1 set-option status off 975.Ed 976.Pp 977Or passed as a single string argument in 978.Pa .tmux.conf , 979for example: 980.Bd -literal -offset indent 981bind-key F1 { set-option status off } 982.Ed 983.Pp 984Example 985.Nm 986commands include: 987.Bd -literal -offset indent 988refresh-client -t/dev/ttyp2 989 990rename-session -tfirst newname 991 992set-option -wt:0 monitor-activity on 993 994new-window ; split-window -d 995 996bind-key R source-file ~/.tmux.conf \e; \e 997 display-message "source-file done" 998.Ed 999.Pp 1000Or from 1001.Xr sh 1 : 1002.Bd -literal -offset indent 1003$ tmux kill-window -t :1 1004 1005$ tmux new-window \e; split-window -d 1006 1007$ tmux new-session -d 'vi ~/.tmux.conf' \e; split-window -d \e; attach 1008.Ed 1009.Sh CLIENTS AND SESSIONS 1010The 1011.Nm 1012server manages clients, sessions, windows and panes. 1013Clients are attached to sessions to interact with them, either 1014when they are created with the 1015.Ic new-session 1016command, or later with the 1017.Ic attach-session 1018command. 1019Each session has one or more windows 1020.Em linked 1021into it. 1022Windows may be linked to multiple sessions and are made up of one or 1023more panes, 1024each of which contains a pseudo terminal. 1025Commands for creating, linking and otherwise manipulating windows 1026are covered 1027in the 1028.Sx WINDOWS AND PANES 1029section. 1030.Pp 1031The following commands are available to manage clients and sessions: 1032.Bl -tag -width Ds 1033.Tg attach 1034.It Xo Ic attach-session 1035.Op Fl dErx 1036.Op Fl c Ar working-directory 1037.Op Fl f Ar flags 1038.Op Fl t Ar target-session 1039.Xc 1040.D1 Pq alias: Ic attach 1041If run from outside 1042.Nm , 1043create a new client in the current terminal and attach it to 1044.Ar target-session . 1045If used from inside, switch the current client. 1046If 1047.Fl d 1048is specified, any other clients attached to the session are detached. 1049If 1050.Fl x 1051is given, send 1052.Dv SIGHUP 1053to the parent process of the client as well as 1054detaching the client, typically causing it to exit. 1055.Fl f 1056sets a comma-separated list of client flags. 1057The flags are: 1058.Bl -tag -width Ds 1059.It active-pane 1060the client has an independent active pane 1061.It ignore-size 1062the client does not affect the size of other clients 1063.It no-output 1064the client does not receive pane output in control mode 1065.It pause-after=seconds 1066output is paused once the pane is 1067.Ar seconds 1068behind in control mode 1069.It read-only 1070the client is read-only 1071.It wait-exit 1072wait for an empty line input before exiting in control mode 1073.El 1074.Pp 1075A leading 1076.Ql \&! 1077turns a flag off if the client is already attached. 1078.Fl r 1079is an alias for 1080.Fl f 1081.Ar read-only,ignore-size . 1082When a client is read-only, only keys bound to the 1083.Ic detach-client 1084or 1085.Ic switch-client 1086commands have any effect. 1087A client with the 1088.Ar active-pane 1089flag allows the active pane to be selected independently of the window's active 1090pane used by clients without the flag. 1091This only affects the cursor position and commands issued from the client; 1092other features such as hooks and styles continue to use the window's active 1093pane. 1094.Pp 1095If no server is started, 1096.Ic attach-session 1097will attempt to start it; this will fail unless sessions are created in the 1098configuration file. 1099.Pp 1100The 1101.Ar target-session 1102rules for 1103.Ic attach-session 1104are slightly adjusted: if 1105.Nm 1106needs to select the most recently used session, it will prefer the most 1107recently used 1108.Em unattached 1109session. 1110.Pp 1111.Fl c 1112will set the session working directory (used for new windows) to 1113.Ar working-directory . 1114.Pp 1115If 1116.Fl E 1117is used, the 1118.Ic update-environment 1119option will not be applied. 1120.Tg detach 1121.It Xo Ic detach-client 1122.Op Fl aP 1123.Op Fl E Ar shell-command 1124.Op Fl s Ar target-session 1125.Op Fl t Ar target-client 1126.Xc 1127.D1 Pq alias: Ic detach 1128Detach the current client if bound to a key, the client specified with 1129.Fl t , 1130or all clients currently attached to the session specified by 1131.Fl s . 1132The 1133.Fl a 1134option kills all but the client given with 1135.Fl t . 1136If 1137.Fl P 1138is given, send 1139.Dv SIGHUP 1140to the parent process of the client, typically causing it 1141to exit. 1142With 1143.Fl E , 1144run 1145.Ar shell-command 1146to replace the client. 1147.Tg has 1148.It Ic has-session Op Fl t Ar target-session 1149.D1 Pq alias: Ic has 1150Report an error and exit with 1 if the specified session does not exist. 1151If it does exist, exit with 0. 1152.It Ic kill-server 1153Kill the 1154.Nm 1155server and clients and destroy all sessions. 1156.It Xo Ic kill-session 1157.Op Fl aC 1158.Op Fl t Ar target-session 1159.Xc 1160Destroy the given session, closing any windows linked to it and no other 1161sessions, and detaching all clients attached to it. 1162If 1163.Fl a 1164is given, all sessions but the specified one is killed. 1165The 1166.Fl C 1167flag clears alerts (bell, activity, or silence) in all windows linked to the 1168session. 1169.Tg lsc 1170.It Xo Ic list-clients 1171.Op Fl F Ar format 1172.Op Fl t Ar target-session 1173.Xc 1174.D1 Pq alias: Ic lsc 1175List all clients attached to the server. 1176For the meaning of the 1177.Fl F 1178flag, see the 1179.Sx FORMATS 1180section. 1181If 1182.Ar target-session 1183is specified, list only clients connected to that session. 1184.Tg lscm 1185.It Xo Ic list-commands 1186.Op Fl F Ar format 1187.Op Ar command 1188.Xc 1189.D1 Pq alias: Ic lscm 1190List the syntax of 1191.Ar command 1192or - if omitted - of all commands supported by 1193.Nm . 1194.Tg ls 1195.It Xo Ic list-sessions 1196.Op Fl F Ar format 1197.Op Fl f Ar filter 1198.Xc 1199.D1 Pq alias: Ic ls 1200List all sessions managed by the server. 1201.Fl F 1202specifies the format of each line and 1203.Fl f 1204a filter. 1205Only sessions for which the filter is true are shown. 1206See the 1207.Sx FORMATS 1208section. 1209.Tg lockc 1210.It Ic lock-client Op Fl t Ar target-client 1211.D1 Pq alias: Ic lockc 1212Lock 1213.Ar target-client , 1214see the 1215.Ic lock-server 1216command. 1217.Tg locks 1218.It Ic lock-session Op Fl t Ar target-session 1219.D1 Pq alias: Ic locks 1220Lock all clients attached to 1221.Ar target-session . 1222.Tg new 1223.It Xo Ic new-session 1224.Op Fl AdDEPX 1225.Op Fl c Ar start-directory 1226.Op Fl e Ar environment 1227.Op Fl f Ar flags 1228.Op Fl F Ar format 1229.Op Fl n Ar window-name 1230.Op Fl s Ar session-name 1231.Op Fl t Ar group-name 1232.Op Fl x Ar width 1233.Op Fl y Ar height 1234.Op Ar shell-command 1235.Xc 1236.D1 Pq alias: Ic new 1237Create a new session with name 1238.Ar session-name . 1239.Pp 1240The new session is attached to the current terminal unless 1241.Fl d 1242is given. 1243.Ar window-name 1244and 1245.Ar shell-command 1246are the name of and shell command to execute in the initial window. 1247With 1248.Fl d , 1249the initial size comes from the global 1250.Ic default-size 1251option; 1252.Fl x 1253and 1254.Fl y 1255can be used to specify a different size. 1256.Ql - 1257uses the size of the current client if any. 1258If 1259.Fl x 1260or 1261.Fl y 1262is given, the 1263.Ic default-size 1264option is set for the session. 1265.Fl f 1266sets a comma-separated list of client flags (see 1267.Ic attach-session ) . 1268.Pp 1269If run from a terminal, any 1270.Xr termios 4 1271special characters are saved and used for new windows in the new session. 1272.Pp 1273The 1274.Fl A 1275flag makes 1276.Ic new-session 1277behave like 1278.Ic attach-session 1279if 1280.Ar session-name 1281already exists; in this case, 1282.Fl D 1283behaves like 1284.Fl d 1285to 1286.Ic attach-session , 1287and 1288.Fl X 1289behaves like 1290.Fl x 1291to 1292.Ic attach-session . 1293.Pp 1294If 1295.Fl t 1296is given, it specifies a 1297.Ic session group . 1298Sessions in the same group share the same set of windows - new windows are 1299linked to all sessions in the group and any windows closed removed from all 1300sessions. 1301The current and previous window and any session options remain independent and 1302any session in a group may be killed without affecting the others. 1303The 1304.Ar group-name 1305argument may be: 1306.Bl -enum -width Ds 1307.It 1308the name of an existing group, in which case the new session is added to that 1309group; 1310.It 1311the name of an existing session - the new session is added to the same group 1312as that session, creating a new group if necessary; 1313.It 1314the name for a new group containing only the new session. 1315.El 1316.Pp 1317.Fl n 1318and 1319.Ar shell-command 1320are invalid if 1321.Fl t 1322is used. 1323.Pp 1324The 1325.Fl P 1326option prints information about the new session after it has been created. 1327By default, it uses the format 1328.Ql #{session_name}:\& 1329but a different format may be specified with 1330.Fl F . 1331.Pp 1332If 1333.Fl E 1334is used, the 1335.Ic update-environment 1336option will not be applied. 1337.Fl e 1338takes the form 1339.Ql VARIABLE=value 1340and sets an environment variable for the newly created session; it may be 1341specified multiple times. 1342.Tg refresh 1343.It Xo Ic refresh-client 1344.Op Fl cDLRSU 1345.Op Fl A Ar pane:state 1346.Op Fl B Ar name:what:format 1347.Op Fl C Ar size 1348.Op Fl f Ar flags 1349.Op Fl l Op Ar target-pane 1350.Op Fl t Ar target-client 1351.Op Ar adjustment 1352.Xc 1353.D1 Pq alias: Ic refresh 1354Refresh the current client if bound to a key, or a single client if one is given 1355with 1356.Fl t . 1357If 1358.Fl S 1359is specified, only update the client's status line. 1360.Pp 1361The 1362.Fl U , 1363.Fl D , 1364.Fl L 1365.Fl R , 1366and 1367.Fl c 1368flags allow the visible portion of a window which is larger than the client 1369to be changed. 1370.Fl U 1371moves the visible part up by 1372.Ar adjustment 1373rows and 1374.Fl D 1375down, 1376.Fl L 1377left by 1378.Ar adjustment 1379columns and 1380.Fl R 1381right. 1382.Fl c 1383returns to tracking the cursor automatically. 1384If 1385.Ar adjustment 1386is omitted, 1 is used. 1387Note that the visible position is a property of the client not of the 1388window, changing the current window in the attached session will reset 1389it. 1390.Pp 1391.Fl C 1392sets the width and height of a control mode client or of a window for a 1393control mode client, 1394.Ar size 1395must be one of 1396.Ql widthxheight 1397or 1398.Ql window ID:widthxheight , 1399for example 1400.Ql 80x24 1401or 1402.Ql @0:80x24 . 1403.Fl A 1404allows a control mode client to trigger actions on a pane. 1405The argument is a pane ID (with leading 1406.Ql % ) , 1407a colon, then one of 1408.Ql on , 1409.Ql off , 1410.Ql continue 1411or 1412.Ql pause . 1413If 1414.Ql off , 1415.Nm 1416will not send output from the pane to the client and if all clients have turned 1417the pane off, will stop reading from the pane. 1418If 1419.Ql continue , 1420.Nm 1421will return to sending output to the pane if it was paused (manually or with the 1422.Ar pause-after 1423flag). 1424If 1425.Ql pause , 1426.Nm 1427will pause the pane. 1428.Fl A 1429may be given multiple times for different panes. 1430.Pp 1431.Fl B 1432sets a subscription to a format for a control mode client. 1433The argument is split into three items by colons: 1434.Ar name 1435is a name for the subscription; 1436.Ar what 1437is a type of item to subscribe to; 1438.Ar format 1439is the format. 1440After a subscription is added, changes to the format are reported with the 1441.Ic %subscription-changed 1442notification, at most once a second. 1443If only the name is given, the subscription is removed. 1444.Ar what 1445may be empty to check the format only for the attached session, or one of: 1446a pane ID such as 1447.Ql %0 ; 1448.Ql %* 1449for all panes in the attached session; 1450a window ID such as 1451.Ql @0 ; 1452or 1453.Ql @* 1454for all windows in the attached session. 1455.Pp 1456.Fl f 1457sets a comma-separated list of client flags, see 1458.Ic attach-session . 1459.Pp 1460.Fl l 1461requests the clipboard from the client using the 1462.Xr xterm 1 1463escape sequence. 1464If 1465Ar target-pane 1466is given, the clipboard is sent (in encoded form), otherwise it is stored in a 1467new paste buffer. 1468.Pp 1469.Fl L , 1470.Fl R , 1471.Fl U 1472and 1473.Fl D 1474move the visible portion of the window left, right, up or down 1475by 1476.Ar adjustment , 1477if the window is larger than the client. 1478.Fl c 1479resets so that the position follows the cursor. 1480See the 1481.Ic window-size 1482option. 1483.Tg rename 1484.It Xo Ic rename-session 1485.Op Fl t Ar target-session 1486.Ar new-name 1487.Xc 1488.D1 Pq alias: Ic rename 1489Rename the session to 1490.Ar new-name . 1491.It Xo Ic server-access 1492.Op Fl adlrw 1493.Op Ar user 1494.Xc 1495Change the access or read/write permission of 1496.Ar user . 1497The user running the 1498.Nm 1499server (its owner) and the root user cannot be changed and are always 1500permitted access. 1501.Pp 1502.Fl a 1503and 1504.Fl d 1505are used to give or revoke access for the specified user. 1506If the user is already attached, the 1507.Fl d 1508flag causes their clients to be detached. 1509.Pp 1510.Fl r 1511and 1512.Fl w 1513change the permissions for 1514.Ar user : 1515.Fl r 1516makes their clients read-only and 1517.Fl w 1518writable. 1519.Fl l 1520lists current access permissions. 1521.Pp 1522By default, the access list is empty and 1523.Nm 1524creates sockets with file system permissions preventing access by any user 1525other than the owner (and root). 1526These permissions must be changed manually. 1527Great care should be taken not to allow access to untrusted users even 1528read-only. 1529.Tg showmsgs 1530.It Xo Ic show-messages 1531.Op Fl JT 1532.Op Fl t Ar target-client 1533.Xc 1534.D1 Pq alias: Ic showmsgs 1535Show server messages or information. 1536Messages are stored, up to a maximum of the limit set by the 1537.Ar message-limit 1538server option. 1539.Fl J 1540and 1541.Fl T 1542show debugging information about jobs and terminals. 1543.Tg source 1544.It Xo Ic source-file 1545.Op Fl Fnqv 1546.Ar path 1547.Ar ... 1548.Xc 1549.D1 Pq alias: Ic source 1550Execute commands from one or more files specified by 1551.Ar path 1552(which may be 1553.Xr glob 7 1554patterns). 1555If 1556.Fl F 1557is present, then 1558.Ar path 1559is expanded as a format. 1560If 1561.Fl q 1562is given, no error will be returned if 1563.Ar path 1564does not exist. 1565With 1566.Fl n , 1567the file is parsed but no commands are executed. 1568.Fl v 1569shows the parsed commands and line numbers if possible. 1570.Tg start 1571.It Ic start-server 1572.D1 Pq alias: Ic start 1573Start the 1574.Nm 1575server, if not already running, without creating any sessions. 1576.Pp 1577Note that as by default the 1578.Nm 1579server will exit with no sessions, this is only useful if a session is created in 1580.Pa ~/.tmux.conf , 1581.Ic exit-empty 1582is turned off, or another command is run as part of the same command sequence. 1583For example: 1584.Bd -literal -offset indent 1585$ tmux start \\; show -g 1586.Ed 1587.Tg suspendc 1588.It Xo Ic suspend-client 1589.Op Fl t Ar target-client 1590.Xc 1591.D1 Pq alias: Ic suspendc 1592Suspend a client by sending 1593.Dv SIGTSTP 1594(tty stop). 1595.Tg switchc 1596.It Xo Ic switch-client 1597.Op Fl ElnprZ 1598.Op Fl c Ar target-client 1599.Op Fl t Ar target-session 1600.Op Fl T Ar key-table 1601.Xc 1602.D1 Pq alias: Ic switchc 1603Switch the current session for client 1604.Ar target-client 1605to 1606.Ar target-session . 1607As a special case, 1608.Fl t 1609may refer to a pane (a target that contains 1610.Ql \&: , 1611.Ql \&. 1612or 1613.Ql % ) , 1614to change session, window and pane. 1615In that case, 1616.Fl Z 1617keeps the window zoomed if it was zoomed. 1618If 1619.Fl l , 1620.Fl n 1621or 1622.Fl p 1623is used, the client is moved to the last, next or previous session 1624respectively. 1625.Fl r 1626toggles the client 1627.Ic read-only 1628and 1629.Ic ignore-size 1630flags (see the 1631.Ic attach-session 1632command). 1633.Pp 1634If 1635.Fl E 1636is used, 1637.Ic update-environment 1638option will not be applied. 1639.Pp 1640.Fl T 1641sets the client's key table; the next key from the client will be interpreted 1642from 1643.Ar key-table . 1644This may be used to configure multiple prefix keys, or to bind commands to 1645sequences of keys. 1646For example, to make typing 1647.Ql abc 1648run the 1649.Ic list-keys 1650command: 1651.Bd -literal -offset indent 1652bind-key -Ttable2 c list-keys 1653bind-key -Ttable1 b switch-client -Ttable2 1654bind-key -Troot a switch-client -Ttable1 1655.Ed 1656.El 1657.Sh WINDOWS AND PANES 1658Each window displayed by 1659.Nm 1660may be split into one or more 1661.Em panes ; 1662each pane takes up a certain area of the display and is a separate terminal. 1663A window may be split into panes using the 1664.Ic split-window 1665command. 1666Windows may be split horizontally (with the 1667.Fl h 1668flag) or vertically. 1669Panes may be resized with the 1670.Ic resize-pane 1671command (bound to 1672.Ql C-Up , 1673.Ql C-Down 1674.Ql C-Left 1675and 1676.Ql C-Right 1677by default), the current pane may be changed with the 1678.Ic select-pane 1679command and the 1680.Ic rotate-window 1681and 1682.Ic swap-pane 1683commands may be used to swap panes without changing their position. 1684Panes are numbered beginning from zero in the order they are created. 1685.Pp 1686By default, a 1687.Nm 1688pane permits direct access to the terminal contained in the pane. 1689A pane may also be put into one of several modes: 1690.Bl -dash -offset indent 1691.It 1692Copy mode, which permits a section of a window or its 1693history to be copied to a 1694.Em paste buffer 1695for later insertion into another window. 1696This mode is entered with the 1697.Ic copy-mode 1698command, bound to 1699.Ql \&[ 1700by default. 1701Copied text can be pasted with the 1702.Ic paste-buffer 1703command, bound to 1704.Ql \&] . 1705.It 1706View mode, which is like copy mode but is entered when a command that produces 1707output, such as 1708.Ic list-keys , 1709is executed from a key binding. 1710.It 1711Choose mode, which allows an item to be chosen from a list. 1712This may be a client, a session or window or pane, or a buffer. 1713This mode is entered with the 1714.Ic choose-buffer , 1715.Ic choose-client 1716and 1717.Ic choose-tree 1718commands. 1719.El 1720.Pp 1721In copy mode an indicator is displayed in the top-right corner of the pane with 1722the current position and the number of lines in the history. 1723.Pp 1724Commands are sent to copy mode using the 1725.Fl X 1726flag to the 1727.Ic send-keys 1728command. 1729When a key is pressed, copy mode automatically uses one of two key tables, 1730depending on the 1731.Ic mode-keys 1732option: 1733.Ic copy-mode 1734for emacs, or 1735.Ic copy-mode-vi 1736for vi. 1737Key tables may be viewed with the 1738.Ic list-keys 1739command. 1740.Pp 1741The following commands are supported in copy mode: 1742.Bl -column "CommandXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent 1743.It Sy "Command" Ta Sy "vi" Ta Sy "emacs" 1744.It Li "append-selection" Ta "" Ta "" 1745.It Li "append-selection-and-cancel" Ta "A" Ta "" 1746.It Li "back-to-indentation" Ta "^" Ta "M-m" 1747.It Li "begin-selection" Ta "Space" Ta "C-Space" 1748.It Li "bottom-line" Ta "L" Ta "" 1749.It Li "cancel" Ta "q" Ta "Escape" 1750.It Li "clear-selection" Ta "Escape" Ta "C-g" 1751.It Li "copy-end-of-line [<prefix>]" Ta "" Ta "" 1752.It Li "copy-end-of-line-and-cancel [<prefix>]" Ta "" Ta "" 1753.It Li "copy-pipe-end-of-line [<command>] [<prefix>]" Ta "" Ta "" 1754.It Li "copy-pipe-end-of-line-and-cancel [<command>] [<prefix>]" Ta "D" Ta "C-k" 1755.It Li "copy-line [<prefix>]" Ta "" Ta "" 1756.It Li "copy-line-and-cancel [<prefix>]" Ta "" Ta "" 1757.It Li "copy-pipe-line [<command>] [<prefix>]" Ta "" Ta "" 1758.It Li "copy-pipe-line-and-cancel [<command>] [<prefix>]" Ta "" Ta "" 1759.It Li "copy-pipe [<command>] [<prefix>]" Ta "" Ta "" 1760.It Li "copy-pipe-no-clear [<command>] [<prefix>]" Ta "" Ta "" 1761.It Li "copy-pipe-and-cancel [<command>] [<prefix>]" Ta "" Ta "" 1762.It Li "copy-selection [<prefix>]" Ta "" Ta "" 1763.It Li "copy-selection-no-clear [<prefix>]" Ta "" Ta "" 1764.It Li "copy-selection-and-cancel [<prefix>]" Ta "Enter" Ta "M-w" 1765.It Li "cursor-down" Ta "j" Ta "Down" 1766.It Li "cursor-down-and-cancel" Ta "" Ta "" 1767.It Li "cursor-left" Ta "h" Ta "Left" 1768.It Li "cursor-right" Ta "l" Ta "Right" 1769.It Li "cursor-up" Ta "k" Ta "Up" 1770.It Li "end-of-line" Ta "$" Ta "C-e" 1771.It Li "goto-line <line>" Ta ":" Ta "g" 1772.It Li "halfpage-down" Ta "C-d" Ta "M-Down" 1773.It Li "halfpage-down-and-cancel" Ta "" Ta "" 1774.It Li "halfpage-up" Ta "C-u" Ta "M-Up" 1775.It Li "history-bottom" Ta "G" Ta "M->" 1776.It Li "history-top" Ta "g" Ta "M-<" 1777.It Li "jump-again" Ta ";" Ta ";" 1778.It Li "jump-backward <to>" Ta "F" Ta "F" 1779.It Li "jump-forward <to>" Ta "f" Ta "f" 1780.It Li "jump-reverse" Ta "," Ta "," 1781.It Li "jump-to-backward <to>" Ta "T" Ta "" 1782.It Li "jump-to-forward <to>" Ta "t" Ta "" 1783.It Li "jump-to-mark" Ta "M-x" Ta "M-x" 1784.It Li "middle-line" Ta "M" Ta "M-r" 1785.It Li "next-matching-bracket" Ta "%" Ta "M-C-f" 1786.It Li "next-paragraph" Ta "}" Ta "M-}" 1787.It Li "next-space" Ta "W" Ta "" 1788.It Li "next-space-end" Ta "E" Ta "" 1789.It Li "next-word" Ta "w" Ta "" 1790.It Li "next-word-end" Ta "e" Ta "M-f" 1791.It Li "other-end" Ta "o" Ta "" 1792.It Li "page-down" Ta "C-f" Ta "PageDown" 1793.It Li "page-down-and-cancel" Ta "" Ta "" 1794.It Li "page-up" Ta "C-b" Ta "PageUp" 1795.It Li "pipe [<command>] [<prefix>]" Ta "" Ta "" 1796.It Li "pipe-no-clear [<command>] [<prefix>]" Ta "" Ta "" 1797.It Li "pipe-and-cancel [<command>] [<prefix>]" Ta "" Ta "" 1798.It Li "previous-matching-bracket" Ta "" Ta "M-C-b" 1799.It Li "previous-paragraph" Ta "{" Ta "M-{" 1800.It Li "previous-space" Ta "B" Ta "" 1801.It Li "previous-word" Ta "b" Ta "M-b" 1802.It Li "rectangle-on" Ta "" Ta "" 1803.It Li "rectangle-off" Ta "" Ta "" 1804.It Li "rectangle-toggle" Ta "v" Ta "R" 1805.It Li "refresh-from-pane" Ta "r" Ta "r" 1806.It Li "scroll-down" Ta "C-e" Ta "C-Down" 1807.It Li "scroll-down-and-cancel" Ta "" Ta "" 1808.It Li "scroll-up" Ta "C-y" Ta "C-Up" 1809.It Li "search-again" Ta "n" Ta "n" 1810.It Li "search-backward <for>" Ta "?" Ta "" 1811.It Li "search-backward-incremental <for>" Ta "" Ta "C-r" 1812.It Li "search-backward-text <for>" Ta "" Ta "" 1813.It Li "search-forward <for>" Ta "/" Ta "" 1814.It Li "search-forward-incremental <for>" Ta "" Ta "C-s" 1815.It Li "search-forward-text <for>" Ta "" Ta "" 1816.It Li "search-reverse" Ta "N" Ta "N" 1817.It Li "select-line" Ta "V" Ta "" 1818.It Li "select-word" Ta "" Ta "" 1819.It Li "set-mark" Ta "X" Ta "X" 1820.It Li "start-of-line" Ta "0" Ta "C-a" 1821.It Li "stop-selection" Ta "" Ta "" 1822.It Li "toggle-position" Ta "P" Ta "P" 1823.It Li "top-line" Ta "H" Ta "M-R" 1824.El 1825.Pp 1826The search commands come in several varieties: 1827.Ql search-forward 1828and 1829.Ql search-backward 1830search for a regular expression; 1831the 1832.Ql -text 1833variants search for a plain text string rather than a regular expression; 1834.Ql -incremental 1835perform an incremental search and expect to be used with the 1836.Fl i 1837flag to the 1838.Ic command-prompt 1839command. 1840.Ql search-again 1841repeats the last search and 1842.Ql search-reverse 1843does the same but reverses the direction (forward becomes backward and backward 1844becomes forward). 1845.Pp 1846Copy commands may take an optional buffer prefix argument which is used 1847to generate the buffer name (the default is 1848.Ql buffer 1849so buffers are named 1850.Ql buffer0 , 1851.Ql buffer1 1852and so on). 1853Pipe commands take a command argument which is the command to which the 1854selected text is piped. 1855.Ql copy-pipe 1856variants also copy the selection. 1857The 1858.Ql -and-cancel 1859variants of some commands exit copy mode after they have completed (for copy 1860commands) or when the cursor reaches the bottom (for scrolling commands). 1861.Ql -no-clear 1862variants do not clear the selection. 1863.Pp 1864The next and previous word keys skip over whitespace and treat consecutive 1865runs of either word separators or other letters as words. 1866Word separators can be customized with the 1867.Em word-separators 1868session option. 1869Next word moves to the start of the next word, next word end to the end of the 1870next word and previous word to the start of the previous word. 1871The three next and previous space keys work similarly but use a space alone as 1872the word separator. 1873Setting 1874.Em word-separators 1875to the empty string makes next/previous word equivalent to next/previous space. 1876.Pp 1877The jump commands enable quick movement within a line. 1878For instance, typing 1879.Ql f 1880followed by 1881.Ql / 1882will move the cursor to the next 1883.Ql / 1884character on the current line. 1885A 1886.Ql \&; 1887will then jump to the next occurrence. 1888.Pp 1889Commands in copy mode may be prefaced by an optional repeat count. 1890With vi key bindings, a prefix is entered using the number keys; with 1891emacs, the Alt (meta) key and a number begins prefix entry. 1892.Pp 1893The synopsis for the 1894.Ic copy-mode 1895command is: 1896.Bl -tag -width Ds 1897.It Xo Ic copy-mode 1898.Op Fl eHMqu 1899.Op Fl s Ar src-pane 1900.Op Fl t Ar target-pane 1901.Xc 1902Enter copy mode. 1903The 1904.Fl u 1905option scrolls one page up. 1906.Fl M 1907begins a mouse drag (only valid if bound to a mouse key binding, see 1908.Sx MOUSE SUPPORT ) . 1909.Fl H 1910hides the position indicator in the top right. 1911.Fl q 1912cancels copy mode and any other modes. 1913.Fl s 1914copies from 1915.Ar src-pane 1916instead of 1917.Ar target-pane . 1918.Pp 1919.Fl e 1920specifies that scrolling to the bottom of the history (to the visible screen) 1921should exit copy mode. 1922While in copy mode, pressing a key other than those used for scrolling will 1923disable this behaviour. 1924This is intended to allow fast scrolling through a pane's history, for 1925example with: 1926.Bd -literal -offset indent 1927bind PageUp copy-mode -eu 1928.Ed 1929.El 1930.Pp 1931A number of preset arrangements of panes are available, these are called layouts. 1932These may be selected with the 1933.Ic select-layout 1934command or cycled with 1935.Ic next-layout 1936(bound to 1937.Ql Space 1938by default); once a layout is chosen, panes within it may be moved and resized 1939as normal. 1940.Pp 1941The following layouts are supported: 1942.Bl -tag -width Ds 1943.It Ic even-horizontal 1944Panes are spread out evenly from left to right across the window. 1945.It Ic even-vertical 1946Panes are spread evenly from top to bottom. 1947.It Ic main-horizontal 1948A large (main) pane is shown at the top of the window and the remaining panes 1949are spread from left to right in the leftover space at the bottom. 1950Use the 1951.Em main-pane-height 1952window option to specify the height of the top pane. 1953.It Ic main-vertical 1954Similar to 1955.Ic main-horizontal 1956but the large pane is placed on the left and the others spread from top to 1957bottom along the right. 1958See the 1959.Em main-pane-width 1960window option. 1961.It Ic tiled 1962Panes are spread out as evenly as possible over the window in both rows and 1963columns. 1964.El 1965.Pp 1966In addition, 1967.Ic select-layout 1968may be used to apply a previously used layout - the 1969.Ic list-windows 1970command displays the layout of each window in a form suitable for use with 1971.Ic select-layout . 1972For example: 1973.Bd -literal -offset indent 1974$ tmux list-windows 19750: ksh [159x48] 1976 layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0} 1977$ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0} 1978.Ed 1979.Pp 1980.Nm 1981automatically adjusts the size of the layout for the current window size. 1982Note that a layout cannot be applied to a window with more panes than that 1983from which the layout was originally defined. 1984.Pp 1985Commands related to windows and panes are as follows: 1986.Bl -tag -width Ds 1987.Tg breakp 1988.It Xo Ic break-pane 1989.Op Fl abdP 1990.Op Fl F Ar format 1991.Op Fl n Ar window-name 1992.Op Fl s Ar src-pane 1993.Op Fl t Ar dst-window 1994.Xc 1995.D1 Pq alias: Ic breakp 1996Break 1997.Ar src-pane 1998off from its containing window to make it the only pane in 1999.Ar dst-window . 2000With 2001.Fl a 2002or 2003.Fl b , 2004the window is moved to the next index after or before (existing windows are 2005moved if necessary). 2006If 2007.Fl d 2008is given, the new window does not become the current window. 2009The 2010.Fl P 2011option prints information about the new window after it has been created. 2012By default, it uses the format 2013.Ql #{session_name}:#{window_index}.#{pane_index} 2014but a different format may be specified with 2015.Fl F . 2016.Tg capturep 2017.It Xo Ic capture-pane 2018.Op Fl aepPqCJN 2019.Op Fl b Ar buffer-name 2020.Op Fl E Ar end-line 2021.Op Fl S Ar start-line 2022.Op Fl t Ar target-pane 2023.Xc 2024.D1 Pq alias: Ic capturep 2025Capture the contents of a pane. 2026If 2027.Fl p 2028is given, the output goes to stdout, otherwise to the buffer specified with 2029.Fl b 2030or a new buffer if omitted. 2031If 2032.Fl a 2033is given, the alternate screen is used, and the history is not accessible. 2034If no alternate screen exists, an error will be returned unless 2035.Fl q 2036is given. 2037If 2038.Fl e 2039is given, the output includes escape sequences for text and background 2040attributes. 2041.Fl C 2042also escapes non-printable characters as octal \exxx. 2043.Fl N 2044preserves trailing spaces at each line's end and 2045.Fl J 2046preserves trailing spaces and joins any wrapped lines. 2047.Fl P 2048captures only any output that the pane has received that is the beginning of an 2049as-yet incomplete escape sequence. 2050.Pp 2051.Fl S 2052and 2053.Fl E 2054specify the starting and ending line numbers, zero is the first line of the 2055visible pane and negative numbers are lines in the history. 2056.Ql - 2057to 2058.Fl S 2059is the start of the history and to 2060.Fl E 2061the end of the visible pane. 2062The default is to capture only the visible contents of the pane. 2063.It Xo 2064.Ic choose-client 2065.Op Fl NrZ 2066.Op Fl F Ar format 2067.Op Fl f Ar filter 2068.Op Fl K Ar key-format 2069.Op Fl O Ar sort-order 2070.Op Fl t Ar target-pane 2071.Op Ar template 2072.Xc 2073Put a pane into client mode, allowing a client to be selected interactively from 2074a list. 2075Each client is shown on one line. 2076A shortcut key is shown on the left in brackets allowing for immediate choice, 2077or the list may be navigated and an item chosen or otherwise manipulated using 2078the keys below. 2079.Fl Z 2080zooms the pane. 2081The following keys may be used in client mode: 2082.Bl -column "Key" "Function" -offset indent 2083.It Sy "Key" Ta Sy "Function" 2084.It Li "Enter" Ta "Choose selected client" 2085.It Li "Up" Ta "Select previous client" 2086.It Li "Down" Ta "Select next client" 2087.It Li "C-s" Ta "Search by name" 2088.It Li "n" Ta "Repeat last search" 2089.It Li "t" Ta "Toggle if client is tagged" 2090.It Li "T" Ta "Tag no clients" 2091.It Li "C-t" Ta "Tag all clients" 2092.It Li "d" Ta "Detach selected client" 2093.It Li "D" Ta "Detach tagged clients" 2094.It Li "x" Ta "Detach and HUP selected client" 2095.It Li "X" Ta "Detach and HUP tagged clients" 2096.It Li "z" Ta "Suspend selected client" 2097.It Li "Z" Ta "Suspend tagged clients" 2098.It Li "f" Ta "Enter a format to filter items" 2099.It Li "O" Ta "Change sort field" 2100.It Li "r" Ta "Reverse sort order" 2101.It Li "v" Ta "Toggle preview" 2102.It Li "q" Ta "Exit mode" 2103.El 2104.Pp 2105After a client is chosen, 2106.Ql %% 2107is replaced by the client name in 2108.Ar template 2109and the result executed as a command. 2110If 2111.Ar template 2112is not given, "detach-client -t '%%'" is used. 2113.Pp 2114.Fl O 2115specifies the initial sort field: one of 2116.Ql name , 2117.Ql size , 2118.Ql creation , 2119or 2120.Ql activity . 2121.Fl r 2122reverses the sort order. 2123.Fl f 2124specifies an initial filter: the filter is a format - if it evaluates to zero, 2125the item in the list is not shown, otherwise it is shown. 2126If a filter would lead to an empty list, it is ignored. 2127.Fl F 2128specifies the format for each item in the list and 2129.Fl K 2130a format for each shortcut key; both are evaluated once for each line. 2131.Fl N 2132starts without the preview. 2133This command works only if at least one client is attached. 2134.It Xo 2135.Ic choose-tree 2136.Op Fl GNrswZ 2137.Op Fl F Ar format 2138.Op Fl f Ar filter 2139.Op Fl K Ar key-format 2140.Op Fl O Ar sort-order 2141.Op Fl t Ar target-pane 2142.Op Ar template 2143.Xc 2144Put a pane into tree mode, where a session, window or pane may be chosen 2145interactively from a tree. 2146Each session, window or pane is shown on one line. 2147A shortcut key is shown on the left in brackets allowing for immediate choice, 2148or the tree may be navigated and an item chosen or otherwise manipulated using 2149the keys below. 2150.Fl s 2151starts with sessions collapsed and 2152.Fl w 2153with windows collapsed. 2154.Fl Z 2155zooms the pane. 2156The following keys may be used in tree mode: 2157.Bl -column "Key" "Function" -offset indent 2158.It Sy "Key" Ta Sy "Function" 2159.It Li "Enter" Ta "Choose selected item" 2160.It Li "Up" Ta "Select previous item" 2161.It Li "Down" Ta "Select next item" 2162.It Li "+" Ta "Expand selected item" 2163.It Li "-" Ta "Collapse selected item" 2164.It Li "M-+" Ta "Expand all items" 2165.It Li "M--" Ta "Collapse all items" 2166.It Li "x" Ta "Kill selected item" 2167.It Li "X" Ta "Kill tagged items" 2168.It Li "<" Ta "Scroll list of previews left" 2169.It Li ">" Ta "Scroll list of previews right" 2170.It Li "C-s" Ta "Search by name" 2171.It Li "m" Ta "Set the marked pane" 2172.It Li "M" Ta "Clear the marked pane" 2173.It Li "n" Ta "Repeat last search" 2174.It Li "t" Ta "Toggle if item is tagged" 2175.It Li "T" Ta "Tag no items" 2176.It Li "C-t" Ta "Tag all items" 2177.It Li "\&:" Ta "Run a command for each tagged item" 2178.It Li "f" Ta "Enter a format to filter items" 2179.It Li "H" Ta "Jump to the starting pane" 2180.It Li "O" Ta "Change sort field" 2181.It Li "r" Ta "Reverse sort order" 2182.It Li "v" Ta "Toggle preview" 2183.It Li "q" Ta "Exit mode" 2184.El 2185.Pp 2186After a session, window or pane is chosen, the first instance of 2187.Ql %% 2188and all instances of 2189.Ql %1 2190are replaced by the target in 2191.Ar template 2192and the result executed as a command. 2193If 2194.Ar template 2195is not given, "switch-client -t '%%'" is used. 2196.Pp 2197.Fl O 2198specifies the initial sort field: one of 2199.Ql index , 2200.Ql name , 2201or 2202.Ql time . 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 margins 3663Supports DECSLRM margins. 3664.It mouse 3665Supports 3666.Xr xterm 1 3667mouse sequences. 3668.It osc7 3669Supports the OSC 7 working directory extension. 3670.It overline 3671Supports the overline SGR attribute. 3672.It rectfill 3673Supports the DECFRA rectangle fill escape sequence. 3674.It RGB 3675Supports RGB colour with the SGR escape sequences. 3676.It strikethrough 3677Supports the strikethrough SGR escape sequence. 3678.It sync 3679Supports synchronized updates. 3680.It title 3681Supports 3682.Xr xterm 1 3683title setting. 3684.It usstyle 3685Allows underscore style and colour to be set. 3686.El 3687.It Ic terminal-overrides[] Ar string 3688Allow terminal descriptions read using 3689.Xr terminfo 5 3690to be overridden. 3691Each entry is a colon-separated string made up of a terminal type pattern 3692(matched using 3693.Xr fnmatch 3 ) 3694and a set of 3695.Em name=value 3696entries. 3697.Pp 3698For example, to set the 3699.Ql clear 3700.Xr terminfo 5 3701entry to 3702.Ql \ee[H\ee[2J 3703for all terminal types matching 3704.Ql rxvt* : 3705.Pp 3706.Dl "rxvt*:clear=\ee[H\ee[2J" 3707.Pp 3708The terminal entry value is passed through 3709.Xr strunvis 3 3710before interpretation. 3711.It Ic user-keys[] Ar key 3712Set list of user-defined key escape sequences. 3713Each item is associated with a key named 3714.Ql User0 , 3715.Ql User1 , 3716and so on. 3717.Pp 3718For example: 3719.Bd -literal -offset indent 3720set -s user-keys[0] "\ee[5;30012~" 3721bind User0 resize-pane -L 3 3722.Ed 3723.El 3724.Pp 3725Available session options are: 3726.Bl -tag -width Ds 3727.It Xo Ic activity-action 3728.Op Ic any | none | current | other 3729.Xc 3730Set action on window activity when 3731.Ic monitor-activity 3732is on. 3733.Ic any 3734means activity in any window linked to a session causes a bell or message 3735(depending on 3736.Ic visual-activity ) 3737in the current window of that session, 3738.Ic none 3739means all activity is ignored (equivalent to 3740.Ic monitor-activity 3741being off), 3742.Ic current 3743means only activity in windows other than the current window are ignored and 3744.Ic other 3745means activity in the current window is ignored but not those in other windows. 3746.It Ic assume-paste-time Ar milliseconds 3747If keys are entered faster than one in 3748.Ar milliseconds , 3749they are assumed to have been pasted rather than typed and 3750.Nm 3751key bindings are not processed. 3752The default is one millisecond and zero disables. 3753.It Ic base-index Ar index 3754Set the base index from which an unused index should be searched when a new 3755window is created. 3756The default is zero. 3757.It Xo Ic bell-action 3758.Op Ic any | none | current | other 3759.Xc 3760Set action on a bell in a window when 3761.Ic monitor-bell 3762is on. 3763The values are the same as those for 3764.Ic activity-action . 3765.It Ic default-command Ar shell-command 3766Set the command used for new windows (if not specified when the window is 3767created) to 3768.Ar shell-command , 3769which may be any 3770.Xr sh 1 3771command. 3772The default is an empty string, which instructs 3773.Nm 3774to create a login shell using the value of the 3775.Ic default-shell 3776option. 3777.It Ic default-shell Ar path 3778Specify the default shell. 3779This is used as the login shell for new windows when the 3780.Ic default-command 3781option is set to empty, and must be the full path of the executable. 3782When started 3783.Nm 3784tries to set a default value from the first suitable of the 3785.Ev SHELL 3786environment variable, the shell returned by 3787.Xr getpwuid 3 , 3788or 3789.Pa /bin/sh . 3790This option should be configured when 3791.Nm 3792is used as a login shell. 3793.It Ic default-size Ar XxY 3794Set the default size of new windows when the 3795.Ic window-size 3796option is set to manual or when a session is created with 3797.Ic new-session 3798.Fl d . 3799The value is the width and height separated by an 3800.Ql x 3801character. 3802The default is 80x24. 3803.It Xo Ic destroy-unattached 3804.Op Ic on | off 3805.Xc 3806If enabled and the session is no longer attached to any clients, it is 3807destroyed. 3808.It Xo Ic detach-on-destroy 3809.Op Ic off | on | no-detached 3810.Xc 3811If on (the default), the client is detached when the session it is attached to 3812is destroyed. 3813If off, the client is switched to the most recently active of the remaining 3814sessions. 3815If 3816.Ic no-detached , 3817the client is detached only if there are no detached sessions; if detached 3818sessions exist, the client is switched to the most recently active. 3819.It Ic display-panes-active-colour Ar colour 3820Set the colour used by the 3821.Ic display-panes 3822command to show the indicator for the active pane. 3823.It Ic display-panes-colour Ar colour 3824Set the colour used by the 3825.Ic display-panes 3826command to show the indicators for inactive panes. 3827.It Ic display-panes-time Ar time 3828Set the time in milliseconds for which the indicators shown by the 3829.Ic display-panes 3830command appear. 3831.It Ic display-time Ar time 3832Set the amount of time for which status line messages and other on-screen 3833indicators are displayed. 3834If set to 0, messages and indicators are displayed until a key is pressed. 3835.Ar time 3836is in milliseconds. 3837.It Ic history-limit Ar lines 3838Set the maximum number of lines held in window history. 3839This setting applies only to new windows - existing window histories are not 3840resized and retain the limit at the point they were created. 3841.It Ic key-table Ar key-table 3842Set the default key table to 3843.Ar key-table 3844instead of 3845.Em root . 3846.It Ic lock-after-time Ar number 3847Lock the session (like the 3848.Ic lock-session 3849command) after 3850.Ar number 3851seconds of inactivity. 3852The default is not to lock (set to 0). 3853.It Ic lock-command Ar shell-command 3854Command to run when locking each client. 3855The default is to run 3856.Xr lock 1 3857with 3858.Fl np . 3859.It Ic message-command-style Ar style 3860Set status line message command style. 3861This is used for the command prompt with 3862.Xr vi 1 3863keys when in command mode. 3864For how to specify 3865.Ar style , 3866see the 3867.Sx STYLES 3868section. 3869.It Ic message-style Ar style 3870Set status line message style. 3871This is used for messages and for the command prompt. 3872For how to specify 3873.Ar style , 3874see the 3875.Sx STYLES 3876section. 3877.It Xo Ic mouse 3878.Op Ic on | off 3879.Xc 3880If on, 3881.Nm 3882captures the mouse and allows mouse events to be bound as key bindings. 3883See the 3884.Sx MOUSE SUPPORT 3885section for details. 3886.It Ic prefix Ar key 3887Set the key accepted as a prefix key. 3888In addition to the standard keys described under 3889.Sx KEY BINDINGS , 3890.Ic prefix 3891can be set to the special key 3892.Ql None 3893to set no prefix. 3894.It Ic prefix2 Ar key 3895Set a secondary key accepted as a prefix key. 3896Like 3897.Ic prefix , 3898.Ic prefix2 3899can be set to 3900.Ql None . 3901.It Xo Ic renumber-windows 3902.Op Ic on | off 3903.Xc 3904If on, when a window is closed in a session, automatically renumber the other 3905windows in numerical order. 3906This respects the 3907.Ic base-index 3908option if it has been set. 3909If off, do not renumber the windows. 3910.It Ic repeat-time Ar time 3911Allow multiple commands to be entered without pressing the prefix-key again 3912in the specified 3913.Ar time 3914milliseconds (the default is 500). 3915Whether a key repeats may be set when it is bound using the 3916.Fl r 3917flag to 3918.Ic bind-key . 3919Repeat is enabled for the default keys bound to the 3920.Ic resize-pane 3921command. 3922.It Xo Ic set-titles 3923.Op Ic on | off 3924.Xc 3925Attempt to set the client terminal title using the 3926.Em tsl 3927and 3928.Em fsl 3929.Xr terminfo 5 3930entries if they exist. 3931.Nm 3932automatically sets these to the \ee]0;...\e007 sequence if 3933the terminal appears to be 3934.Xr xterm 1 . 3935This option is off by default. 3936.It Ic set-titles-string Ar string 3937String used to set the client terminal title if 3938.Ic set-titles 3939is on. 3940Formats are expanded, see the 3941.Sx FORMATS 3942section. 3943.It Xo Ic silence-action 3944.Op Ic any | none | current | other 3945.Xc 3946Set action on window silence when 3947.Ic monitor-silence 3948is on. 3949The values are the same as those for 3950.Ic activity-action . 3951.It Xo Ic status 3952.Op Ic off | on | 2 | 3 | 4 | 5 3953.Xc 3954Show or hide the status line or specify its size. 3955Using 3956.Ic on 3957gives a status line one row in height; 3958.Ic 2 , 3959.Ic 3 , 3960.Ic 4 3961or 3962.Ic 5 3963more rows. 3964.It Ic status-format[] Ar format 3965Specify the format to be used for each line of the status line. 3966The default builds the top status line from the various individual status 3967options below. 3968.It Ic status-interval Ar interval 3969Update the status line every 3970.Ar interval 3971seconds. 3972By default, updates will occur every 15 seconds. 3973A setting of zero disables redrawing at interval. 3974.It Xo Ic status-justify 3975.Op Ic left | centre | right | absolute-centre 3976.Xc 3977Set the position of the window list in the status line: left, centre or right. 3978centre puts the window list in the relative centre of the available free space; 3979absolute-centre uses the centre of the entire horizontal space. 3980.It Xo Ic status-keys 3981.Op Ic vi | emacs 3982.Xc 3983Use vi or emacs-style 3984key bindings in the status line, for example at the command prompt. 3985The default is emacs, unless the 3986.Ev VISUAL 3987or 3988.Ev EDITOR 3989environment variables are set and contain the string 3990.Ql vi . 3991.It Ic status-left Ar string 3992Display 3993.Ar string 3994(by default the session name) to the left of the status line. 3995.Ar string 3996will be passed through 3997.Xr strftime 3 . 3998Also see the 3999.Sx FORMATS 4000and 4001.Sx STYLES 4002sections. 4003.Pp 4004For details on how the names and titles can be set see the 4005.Sx "NAMES AND TITLES" 4006section. 4007.Pp 4008Examples are: 4009.Bd -literal -offset indent 4010#(sysctl vm.loadavg) 4011#[fg=yellow,bold]#(apm -l)%%#[default] [#S] 4012.Ed 4013.Pp 4014The default is 4015.Ql "[#S] " . 4016.It Ic status-left-length Ar length 4017Set the maximum 4018.Ar length 4019of the left component of the status line. 4020The default is 10. 4021.It Ic status-left-style Ar style 4022Set the style of the left part of the status line. 4023For how to specify 4024.Ar style , 4025see the 4026.Sx STYLES 4027section. 4028.It Xo Ic status-position 4029.Op Ic top | bottom 4030.Xc 4031Set the position of the status line. 4032.It Ic status-right Ar string 4033Display 4034.Ar string 4035to the right of the status line. 4036By default, the current pane title in double quotes, the date and the time 4037are shown. 4038As with 4039.Ic status-left , 4040.Ar string 4041will be passed to 4042.Xr strftime 3 4043and character pairs are replaced. 4044.It Ic status-right-length Ar length 4045Set the maximum 4046.Ar length 4047of the right component of the status line. 4048The default is 40. 4049.It Ic status-right-style Ar style 4050Set the style of the right part of the status line. 4051For how to specify 4052.Ar style , 4053see the 4054.Sx STYLES 4055section. 4056.It Ic status-style Ar style 4057Set status line style. 4058For how to specify 4059.Ar style , 4060see the 4061.Sx STYLES 4062section. 4063.It Ic update-environment[] Ar variable 4064Set list of environment variables to be copied into the session environment 4065when a new session is created or an existing session is attached. 4066Any variables that do not exist in the source environment are set to be 4067removed from the session environment (as if 4068.Fl r 4069was given to the 4070.Ic set-environment 4071command). 4072.It Xo Ic visual-activity 4073.Op Ic on | off | both 4074.Xc 4075If on, display a message instead of sending a bell when activity occurs in a 4076window for which the 4077.Ic monitor-activity 4078window option is enabled. 4079If set to both, a bell and a message are produced. 4080.It Xo Ic visual-bell 4081.Op Ic on | off | both 4082.Xc 4083If on, a message is shown on a bell in a window for which the 4084.Ic monitor-bell 4085window option is enabled instead of it being passed through to the 4086terminal (which normally makes a sound). 4087If set to both, a bell and a message are produced. 4088Also see the 4089.Ic bell-action 4090option. 4091.It Xo Ic visual-silence 4092.Op Ic on | off | both 4093.Xc 4094If 4095.Ic monitor-silence 4096is enabled, prints a message after the interval has expired on a given window 4097instead of sending a bell. 4098If set to both, a bell and a message are produced. 4099.It Ic word-separators Ar string 4100Sets the session's conception of what characters are considered word 4101separators, for the purposes of the next and previous word commands in 4102copy mode. 4103.El 4104.Pp 4105Available window options are: 4106.Pp 4107.Bl -tag -width Ds -compact 4108.It Xo Ic aggressive-resize 4109.Op Ic on | off 4110.Xc 4111Aggressively resize the chosen window. 4112This means that 4113.Nm 4114will resize the window to the size of the smallest or largest session 4115(see the 4116.Ic window-size 4117option) for which it is the current window, rather than the session to 4118which it is attached. 4119The window may resize when the current window is changed on another 4120session; this option is good for full-screen programs which support 4121.Dv SIGWINCH 4122and poor for interactive programs such as shells. 4123.Pp 4124.It Xo Ic automatic-rename 4125.Op Ic on | off 4126.Xc 4127Control automatic window renaming. 4128When this setting is enabled, 4129.Nm 4130will rename the window automatically using the format specified by 4131.Ic automatic-rename-format . 4132This flag is automatically disabled for an individual window when a name 4133is specified at creation with 4134.Ic new-window 4135or 4136.Ic new-session , 4137or later with 4138.Ic rename-window , 4139or with a terminal escape sequence. 4140It may be switched off globally with: 4141.Bd -literal -offset indent 4142set-option -wg automatic-rename off 4143.Ed 4144.Pp 4145.It Ic automatic-rename-format Ar format 4146The format (see 4147.Sx FORMATS ) 4148used when the 4149.Ic automatic-rename 4150option is enabled. 4151.Pp 4152.It Ic clock-mode-colour Ar colour 4153Set clock colour. 4154.Pp 4155.It Xo Ic clock-mode-style 4156.Op Ic 12 | 24 4157.Xc 4158Set clock hour format. 4159.Pp 4160.It Ic fill-character Ar character 4161Set the character used to fill areas of the terminal unused by a window. 4162.Pp 4163.It Ic main-pane-height Ar height 4164.It Ic main-pane-width Ar width 4165Set the width or height of the main (left or top) pane in the 4166.Ic main-horizontal 4167or 4168.Ic main-vertical 4169layouts. 4170If suffixed by 4171.Ql % , 4172this is a percentage of the window size. 4173.Pp 4174.It Ic copy-mode-match-style Ar style 4175Set the style of search matches in copy mode. 4176For how to specify 4177.Ar style , 4178see the 4179.Sx STYLES 4180section. 4181.Pp 4182.It Ic copy-mode-mark-style Ar style 4183Set the style of the line containing the mark in copy mode. 4184For how to specify 4185.Ar style , 4186see the 4187.Sx STYLES 4188section. 4189.Pp 4190.It Ic copy-mode-current-match-style Ar style 4191Set the style of the current search match in copy mode. 4192For how to specify 4193.Ar style , 4194see the 4195.Sx STYLES 4196section. 4197.Pp 4198.It Xo Ic mode-keys 4199.Op Ic vi | emacs 4200.Xc 4201Use vi or emacs-style key bindings in copy mode. 4202The default is emacs, unless 4203.Ev VISUAL 4204or 4205.Ev EDITOR 4206contains 4207.Ql vi . 4208.Pp 4209.It Ic mode-style Ar style 4210Set window modes style. 4211For how to specify 4212.Ar style , 4213see the 4214.Sx STYLES 4215section. 4216.Pp 4217.It Xo Ic monitor-activity 4218.Op Ic on | off 4219.Xc 4220Monitor for activity in the window. 4221Windows with activity are highlighted in the status line. 4222.Pp 4223.It Xo Ic monitor-bell 4224.Op Ic on | off 4225.Xc 4226Monitor for a bell in the window. 4227Windows with a bell are highlighted in the status line. 4228.Pp 4229.It Xo Ic monitor-silence 4230.Op Ic interval 4231.Xc 4232Monitor for silence (no activity) in the window within 4233.Ic interval 4234seconds. 4235Windows that have been silent for the interval are highlighted in the 4236status line. 4237An interval of zero disables the monitoring. 4238.Pp 4239.It Ic other-pane-height Ar height 4240Set the height of the other panes (not the main pane) in the 4241.Ic main-horizontal 4242layout. 4243If this option is set to 0 (the default), it will have no effect. 4244If both the 4245.Ic main-pane-height 4246and 4247.Ic other-pane-height 4248options are set, the main pane will grow taller to make the other panes the 4249specified height, but will never shrink to do so. 4250If suffixed by 4251.Ql % , 4252this is a percentage of the window size. 4253.Pp 4254.It Ic other-pane-width Ar width 4255Like 4256.Ic other-pane-height , 4257but set the width of other panes in the 4258.Ic main-vertical 4259layout. 4260.Pp 4261.It Ic pane-active-border-style Ar style 4262Set the pane border style for the currently active pane. 4263For how to specify 4264.Ar style , 4265see the 4266.Sx STYLES 4267section. 4268Attributes are ignored. 4269.Pp 4270.It Ic pane-base-index Ar index 4271Like 4272.Ic base-index , 4273but set the starting index for pane numbers. 4274.Pp 4275.It Ic pane-border-format Ar format 4276Set the text shown in pane border status lines. 4277.Pp 4278.It Xo Ic pane-border-indicators 4279.Op Ic off | colour | arrows | both 4280.Xc 4281Indicate active pane by colouring only half of the border in windows with 4282exactly two panes, by displaying arrow markers, by drawing both or neither. 4283.Pp 4284.It Ic pane-border-lines Ar type 4285Set the type of characters used for drawing pane borders. 4286.Ar type 4287may be one of: 4288.Bl -tag -width Ds 4289.It single 4290single lines using ACS or UTF-8 characters 4291.It double 4292double lines using UTF-8 characters 4293.It heavy 4294heavy lines using UTF-8 characters 4295.It simple 4296simple ASCII characters 4297.It number 4298the pane number 4299.El 4300.Pp 4301.Ql double 4302and 4303.Ql heavy 4304will fall back to standard ACS line drawing when UTF-8 is not supported. 4305.Pp 4306.It Xo Ic pane-border-status 4307.Op Ic off | top | bottom 4308.Xc 4309Turn pane border status lines off or set their position. 4310.Pp 4311.It Ic pane-border-style Ar style 4312Set the pane border style for panes aside from the active pane. 4313For how to specify 4314.Ar style , 4315see the 4316.Sx STYLES 4317section. 4318Attributes are ignored. 4319.Pp 4320.It Ic popup-style Ar style 4321Set the popup style. 4322For how to specify 4323.Ar style , 4324see the 4325.Sx STYLES 4326section. 4327Attributes are ignored. 4328.Pp 4329.It Ic popup-border-style Ar style 4330Set the popup border style. 4331For how to specify 4332.Ar style , 4333see the 4334.Sx STYLES 4335section. 4336Attributes are ignored. 4337.Pp 4338.It Ic popup-border-lines Ar type 4339Set the type of characters used for drawing popup borders. 4340.Ar type 4341may be one of: 4342.Bl -tag -width Ds 4343.It single 4344single lines using ACS or UTF-8 characters (default) 4345.It rounded 4346variation of single with rounded corners using UTF-8 characters 4347.It double 4348double lines using UTF-8 characters 4349.It heavy 4350heavy lines using UTF-8 characters 4351.It simple 4352simple ASCII characters 4353.It padded 4354simple ASCII space character 4355.It none 4356no border 4357.El 4358.Pp 4359.Ql double 4360and 4361.Ql heavy 4362will fall back to standard ACS line drawing when UTF-8 is not supported. 4363.Pp 4364.It Ic window-status-activity-style Ar style 4365Set status line style for windows with an activity alert. 4366For how to specify 4367.Ar style , 4368see the 4369.Sx STYLES 4370section. 4371.Pp 4372.It Ic window-status-bell-style Ar style 4373Set status line style for windows with a bell alert. 4374For how to specify 4375.Ar style , 4376see the 4377.Sx STYLES 4378section. 4379.Pp 4380.It Ic window-status-current-format Ar string 4381Like 4382.Ar window-status-format , 4383but is the format used when the window is the current window. 4384.Pp 4385.It Ic window-status-current-style Ar style 4386Set status line style for the currently active window. 4387For how to specify 4388.Ar style , 4389see the 4390.Sx STYLES 4391section. 4392.Pp 4393.It Ic window-status-format Ar string 4394Set the format in which the window is displayed in the status line window list. 4395See the 4396.Sx FORMATS 4397and 4398.Sx STYLES 4399sections. 4400.Pp 4401.It Ic window-status-last-style Ar style 4402Set status line style for the last active window. 4403For how to specify 4404.Ar style , 4405see the 4406.Sx STYLES 4407section. 4408.Pp 4409.It Ic window-status-separator Ar string 4410Sets the separator drawn between windows in the status line. 4411The default is a single space character. 4412.Pp 4413.It Ic window-status-style Ar style 4414Set status line style for a single window. 4415For how to specify 4416.Ar style , 4417see the 4418.Sx STYLES 4419section. 4420.Pp 4421.It Xo Ic window-size 4422.Ar largest | Ar smallest | Ar manual | Ar latest 4423.Xc 4424Configure how 4425.Nm 4426determines the window size. 4427If set to 4428.Ar largest , 4429the size of the largest attached session is used; if 4430.Ar smallest , 4431the size of the smallest. 4432If 4433.Ar manual , 4434the size of a new window is set from the 4435.Ic default-size 4436option and windows are resized automatically. 4437With 4438.Ar latest , 4439.Nm 4440uses the size of the client that had the most recent activity. 4441See also the 4442.Ic resize-window 4443command and the 4444.Ic aggressive-resize 4445option. 4446.Pp 4447.It Xo Ic wrap-search 4448.Op Ic on | off 4449.Xc 4450If this option is set, searches will wrap around the end of the pane contents. 4451The default is on. 4452.El 4453.Pp 4454Available pane options are: 4455.Pp 4456.Bl -tag -width Ds -compact 4457.It Xo Ic allow-passthrough 4458.Op Ic on | off 4459.Xc 4460Allow programs in the pane to bypass 4461.Nm 4462using a terminal escape sequence (\eePtmux;...\ee\e\e). 4463.Pp 4464.It Xo Ic allow-rename 4465.Op Ic on | off 4466.Xc 4467Allow programs in the pane to change the window name using a terminal escape 4468sequence (\eek...\ee\e\e). 4469.Pp 4470.It Xo Ic alternate-screen 4471.Op Ic on | off 4472.Xc 4473This option configures whether programs running inside the pane may use the 4474terminal alternate screen feature, which allows the 4475.Em smcup 4476and 4477.Em rmcup 4478.Xr terminfo 5 4479capabilities. 4480The alternate screen feature preserves the contents of the window when an 4481interactive application starts and restores it on exit, so that any output 4482visible before the application starts reappears unchanged after it exits. 4483.Pp 4484.It Ic cursor-colour Ar colour 4485Set the colour of the cursor. 4486.Pp 4487.It Ic pane-colours[] Ar colour 4488The default colour palette. 4489Each entry in the array defines the colour 4490.Nm 4491uses when the colour with that index is requested. 4492The index may be from zero to 255. 4493.Pp 4494.It Ic cursor-style Ar style 4495Set the style of the cursor. 4496Available styles are: 4497.Ic default , 4498.Ic blinking-block , 4499.Ic block , 4500.Ic blinking-underline , 4501.Ic underline , 4502.Ic blinking-bar , 4503.Ic bar . 4504.Pp 4505.It Xo Ic remain-on-exit 4506.Op Ic on | off | failed 4507.Xc 4508A pane with this flag set is not destroyed when the program running in it 4509exits. 4510If set to 4511.Ic failed , 4512then only when the program exit status is not zero. 4513The pane may be reactivated with the 4514.Ic respawn-pane 4515command. 4516.Pp 4517.It Ic remain-on-exit-format Ar string 4518Set the text shown at the bottom of exited panes when 4519.Ic remain-on-exit 4520is enabled. 4521.Pp 4522.It Xo Ic scroll-on-clear 4523.Op Ic on | off 4524.Xc 4525When the entire screen is cleared and this option is on, scroll the contents of 4526the screen into history before clearing it. 4527.Pp 4528.It Xo Ic synchronize-panes 4529.Op Ic on | off 4530.Xc 4531Duplicate input to all other panes in the same window where this option is also 4532on (only for panes that are not in any mode). 4533.Pp 4534.It Ic window-active-style Ar style 4535Set the pane style when it is the active pane. 4536For how to specify 4537.Ar style , 4538see the 4539.Sx STYLES 4540section. 4541.Pp 4542.It Ic window-style Ar style 4543Set the pane style. 4544For how to specify 4545.Ar style , 4546see the 4547.Sx STYLES 4548section. 4549.El 4550.Sh HOOKS 4551.Nm 4552allows commands to run on various triggers, called 4553.Em hooks . 4554Most 4555.Nm 4556commands have an 4557.Em after 4558hook and there are a number of hooks not associated with commands. 4559.Pp 4560Hooks are stored as array options, members of the array are executed in 4561order when the hook is triggered. 4562Like options different hooks may be global or belong to a session, window or pane. 4563Hooks may be configured with the 4564.Ic set-hook 4565or 4566.Ic set-option 4567commands and displayed with 4568.Ic show-hooks 4569or 4570.Ic show-options 4571.Fl H . 4572The following two commands are equivalent: 4573.Bd -literal -offset indent. 4574set-hook -g pane-mode-changed[42] 'set -g status-left-style bg=red' 4575set-option -g pane-mode-changed[42] 'set -g status-left-style bg=red' 4576.Ed 4577.Pp 4578Setting a hook without specifying an array index clears the hook and sets the 4579first member of the array. 4580.Pp 4581A command's after 4582hook is run after it completes, except when the command is run as part of a hook 4583itself. 4584They are named with an 4585.Ql after- 4586prefix. 4587For example, the following command adds a hook to select the even-vertical 4588layout after every 4589.Ic split-window : 4590.Bd -literal -offset indent 4591set-hook -g after-split-window "selectl even-vertical" 4592.Ed 4593.Pp 4594All the notifications listed in the 4595.Sx CONTROL MODE 4596section are hooks (without any arguments), except 4597.Ic %exit . 4598The following additional hooks are available: 4599.Bl -tag -width "XXXXXXXXXXXXXXXXXXXXXX" 4600.It alert-activity 4601Run when a window has activity. 4602See 4603.Ic monitor-activity . 4604.It alert-bell 4605Run when a window has received a bell. 4606See 4607.Ic monitor-bell . 4608.It alert-silence 4609Run when a window has been silent. 4610See 4611.Ic monitor-silence . 4612.It client-active 4613Run when a client becomes the latest active client of its session. 4614.It client-attached 4615Run when a client is attached. 4616.It client-detached 4617Run when a client is detached 4618.It client-focus-in 4619Run when focus enters a client 4620.It client-focus-out 4621Run when focus exits a client 4622.It client-resized 4623Run when a client is resized. 4624.It client-session-changed 4625Run when a client's attached session is changed. 4626.It pane-died 4627Run when the program running in a pane exits, but 4628.Ic remain-on-exit 4629is on so the pane has not closed. 4630.It pane-exited 4631Run when the program running in a pane exits. 4632.It pane-focus-in 4633Run when the focus enters a pane, if the 4634.Ic focus-events 4635option is on. 4636.It pane-focus-out 4637Run when the focus exits a pane, if the 4638.Ic focus-events 4639option is on. 4640.It pane-set-clipboard 4641Run when the terminal clipboard is set using the 4642.Xr xterm 1 4643escape sequence. 4644.It session-created 4645Run when a new session created. 4646.It session-closed 4647Run when a session closed. 4648.It session-renamed 4649Run when a session is renamed. 4650.It window-linked 4651Run when a window is linked into a session. 4652.It window-renamed 4653Run when a window is renamed. 4654.It window-resized 4655Run when a window is resized. 4656This may be after the 4657.Ar client-resized 4658hook is run. 4659.It window-unlinked 4660Run when a window is unlinked from a session. 4661.El 4662.Pp 4663Hooks are managed with these commands: 4664.Bl -tag -width Ds 4665.It Xo Ic set-hook 4666.Op Fl agpRuw 4667.Op Fl t Ar target-pane 4668.Ar hook-name 4669.Ar command 4670.Xc 4671Without 4672.Fl R , 4673sets (or with 4674.Fl u 4675unsets) hook 4676.Ar hook-name 4677to 4678.Ar command . 4679The flags are the same as for 4680.Ic set-option . 4681.Pp 4682With 4683.Fl R , 4684run 4685.Ar hook-name 4686immediately. 4687.It Xo Ic show-hooks 4688.Op Fl gpw 4689.Op Fl t Ar target-pane 4690.Xc 4691Shows hooks. 4692The flags are the same as for 4693.Ic show-options . 4694.El 4695.Sh MOUSE SUPPORT 4696If the 4697.Ic mouse 4698option is on (the default is off), 4699.Nm 4700allows mouse events to be bound as keys. 4701The name of each key is made up of a mouse event (such as 4702.Ql MouseUp1 ) 4703and a location suffix, one of the following: 4704.Bl -column "XXXXXXXXXXXXX" -offset indent 4705.It Li "Pane" Ta "the contents of a pane" 4706.It Li "Border" Ta "a pane border" 4707.It Li "Status" Ta "the status line window list" 4708.It Li "StatusLeft" Ta "the left part of the status line" 4709.It Li "StatusRight" Ta "the right part of the status line" 4710.It Li "StatusDefault" Ta "any other part of the status line" 4711.El 4712.Pp 4713The following mouse events are available: 4714.Bl -column "MouseDown1" "MouseDrag1" "WheelDown" -offset indent 4715.It Li "WheelUp" Ta "WheelDown" Ta "" 4716.It Li "MouseDown1" Ta "MouseUp1" Ta "MouseDrag1" Ta "MouseDragEnd1" 4717.It Li "MouseDown2" Ta "MouseUp2" Ta "MouseDrag2" Ta "MouseDragEnd2" 4718.It Li "MouseDown3" Ta "MouseUp3" Ta "MouseDrag3" Ta "MouseDragEnd3" 4719.It Li "SecondClick1" Ta "SecondClick2" Ta "SecondClick3" 4720.It Li "DoubleClick1" Ta "DoubleClick2" Ta "DoubleClick3" 4721.It Li "TripleClick1" Ta "TripleClick2" Ta "TripleClick3" 4722.El 4723.Pp 4724The 4725.Ql SecondClick 4726events are fired for the second click of a double click, even if there may be a 4727third click which will fire 4728.Ql TripleClick 4729instead of 4730.Ql DoubleClick . 4731.Pp 4732Each should be suffixed with a location, for example 4733.Ql MouseDown1Status . 4734.Pp 4735The special token 4736.Ql {mouse} 4737or 4738.Ql = 4739may be used as 4740.Ar target-window 4741or 4742.Ar target-pane 4743in commands bound to mouse key bindings. 4744It resolves to the window or pane over which the mouse event took place 4745(for example, the window in the status line over which button 1 was released for a 4746.Ql MouseUp1Status 4747binding, or the pane over which the wheel was scrolled for a 4748.Ql WheelDownPane 4749binding). 4750.Pp 4751The 4752.Ic send-keys 4753.Fl M 4754flag may be used to forward a mouse event to a pane. 4755.Pp 4756The default key bindings allow the mouse to be used to select and resize panes, 4757to copy text and to change window using the status line. 4758These take effect if the 4759.Ic mouse 4760option is turned on. 4761.Sh FORMATS 4762Certain commands accept the 4763.Fl F 4764flag with a 4765.Ar format 4766argument. 4767This is a string which controls the output format of the command. 4768Format variables are enclosed in 4769.Ql #{ 4770and 4771.Ql } , 4772for example 4773.Ql #{session_name} . 4774The possible variables are listed in the table below, or the name of a 4775.Nm 4776option may be used for an option's value. 4777Some variables have a shorter alias such as 4778.Ql #S ; 4779.Ql ## 4780is replaced by a single 4781.Ql # , 4782.Ql #, 4783by a 4784.Ql \&, 4785and 4786.Ql #} 4787by a 4788.Ql } . 4789.Pp 4790Conditionals are available by prefixing with 4791.Ql \&? 4792and separating two alternatives with a comma; 4793if the specified variable exists and is not zero, the first alternative 4794is chosen, otherwise the second is used. 4795For example 4796.Ql #{?session_attached,attached,not attached} 4797will include the string 4798.Ql attached 4799if the session is attached and the string 4800.Ql not attached 4801if it is unattached, or 4802.Ql #{?automatic-rename,yes,no} 4803will include 4804.Ql yes 4805if 4806.Ic automatic-rename 4807is enabled, or 4808.Ql no 4809if not. 4810Conditionals can be nested arbitrarily. 4811Inside a conditional, 4812.Ql \&, 4813and 4814.Ql } 4815must be escaped as 4816.Ql #, 4817and 4818.Ql #} , 4819unless they are part of a 4820.Ql #{...} 4821replacement. 4822For example: 4823.Bd -literal -offset indent 4824#{?pane_in_mode,#[fg=white#,bg=red],#[fg=red#,bg=white]}#W . 4825.Ed 4826.Pp 4827String comparisons may be expressed by prefixing two comma-separated 4828alternatives by 4829.Ql == , 4830.Ql != , 4831.Ql < , 4832.Ql > , 4833.Ql <= 4834or 4835.Ql >= 4836and a colon. 4837For example 4838.Ql #{==:#{host},myhost} 4839will be replaced by 4840.Ql 1 4841if running on 4842.Ql myhost , 4843otherwise by 4844.Ql 0 . 4845.Ql || 4846and 4847.Ql && 4848evaluate to true if either or both of two comma-separated alternatives are 4849true, for example 4850.Ql #{||:#{pane_in_mode},#{alternate_on}} . 4851.Pp 4852An 4853.Ql m 4854specifies an 4855.Xr fnmatch 3 4856or regular expression comparison. 4857The first argument is the pattern and the second the string to compare. 4858An optional argument specifies flags: 4859.Ql r 4860means the pattern is a regular expression instead of the default 4861.Xr fnmatch 3 4862pattern, and 4863.Ql i 4864means to ignore case. 4865For example: 4866.Ql #{m:*foo*,#{host}} 4867or 4868.Ql #{m/ri:^A,MYVAR} . 4869A 4870.Ql C 4871performs a search for an 4872.Xr fnmatch 3 4873pattern or regular expression in the pane content and evaluates to zero if not 4874found, or a line number if found. 4875Like 4876.Ql m , 4877an 4878.Ql r 4879flag means search for a regular expression and 4880.Ql i 4881ignores case. 4882For example: 4883.Ql #{C/r:^Start} 4884.Pp 4885Numeric operators may be performed by prefixing two comma-separated alternatives with an 4886.Ql e 4887and an operator. 4888An optional 4889.Ql f 4890flag may be given after the operator to use floating point numbers, otherwise integers are used. 4891This may be followed by a number giving the number of decimal places to use for the result. 4892The available operators are: 4893addition 4894.Ql + , 4895subtraction 4896.Ql - , 4897multiplication 4898.Ql * , 4899division 4900.Ql / , 4901modulus 4902.Ql m 4903or 4904.Ql % 4905(note that 4906.Ql % 4907must be escaped as 4908.Ql %% 4909in formats which are also expanded by 4910.Xr strftime 3 ) 4911and numeric comparison operators 4912.Ql == , 4913.Ql != , 4914.Ql < , 4915.Ql <= , 4916.Ql > 4917and 4918.Ql >= . 4919For example, 4920.Ql #{e|*|f|4:5.5,3} 4921multiplies 5.5 by 3 for a result with four decimal places and 4922.Ql #{e|%%:7,3} 4923returns the modulus of 7 and 3. 4924.Ql a 4925replaces a numeric argument by its ASCII equivalent, so 4926.Ql #{a:98} 4927results in 4928.Ql b . 4929.Ql c 4930replaces a 4931.Nm 4932colour by its six-digit hexadecimal RGB value. 4933.Pp 4934A limit may be placed on the length of the resultant string by prefixing it 4935by an 4936.Ql = , 4937a number and a colon. 4938Positive numbers count from the start of the string and negative from the end, 4939so 4940.Ql #{=5:pane_title} 4941will include at most the first five characters of the pane title, or 4942.Ql #{=-5:pane_title} 4943the last five characters. 4944A suffix or prefix may be given as a second argument - if provided then it is 4945appended or prepended to the string if the length has been trimmed, for example 4946.Ql #{=/5/...:pane_title} 4947will append 4948.Ql ... 4949if the pane title is more than five characters. 4950Similarly, 4951.Ql p 4952pads the string to a given width, for example 4953.Ql #{p10:pane_title} 4954will result in a width of at least 10 characters. 4955A positive width pads on the left, a negative on the right. 4956.Ql n 4957expands to the length of the variable and 4958.Ql w 4959to its width when displayed, for example 4960.Ql #{n:window_name} . 4961.Pp 4962Prefixing a time variable with 4963.Ql t:\& 4964will convert it to a string, so if 4965.Ql #{window_activity} 4966gives 4967.Ql 1445765102 , 4968.Ql #{t:window_activity} 4969gives 4970.Ql Sun Oct 25 09:25:02 2015 . 4971Adding 4972.Ql p ( 4973.Ql `t/p` ) 4974will use shorter but less accurate time format for times in the past. 4975A custom format may be given using an 4976.Ql f 4977suffix (note that 4978.Ql % 4979must be escaped as 4980.Ql %% 4981if the format is separately being passed through 4982.Xr strftime 3 , 4983for example in the 4984.Ic status-left 4985option): 4986.Ql #{t/f/%%H#:%%M:window_activity} , 4987see 4988.Xr strftime 3 . 4989.Pp 4990The 4991.Ql b:\& 4992and 4993.Ql d:\& 4994prefixes are 4995.Xr basename 3 4996and 4997.Xr dirname 3 4998of the variable respectively. 4999.Ql q:\& 5000will escape 5001.Xr sh 1 5002special characters or with a 5003.Ql h 5004suffix, escape hash characters (so 5005.Ql # 5006becomes 5007.Ql ## ) . 5008.Ql E:\& 5009will expand the format twice, for example 5010.Ql #{E:status-left} 5011is the result of expanding the content of the 5012.Ic status-left 5013option rather than the option itself. 5014.Ql T:\& 5015is like 5016.Ql E:\& 5017but also expands 5018.Xr strftime 3 5019specifiers. 5020.Ql S:\& , 5021.Ql W:\& 5022or 5023.Ql P:\& 5024will loop over each session, window or pane and insert the format once 5025for each. 5026For windows and panes, two comma-separated formats may be given: 5027the second is used for the current window or active pane. 5028For example, to get a list of windows formatted like the status line: 5029.Bd -literal -offset indent 5030#{W:#{E:window-status-format} ,#{E:window-status-current-format} } 5031.Ed 5032.Pp 5033.Ql N:\& 5034checks if a window (without any suffix or with the 5035.Ql w 5036suffix) or a session (with the 5037.Ql s 5038suffix) name exists, for example 5039.Ql `N/w:foo` 5040is replaced with 1 if a window named 5041.Ql foo 5042exists. 5043.Pp 5044A prefix of the form 5045.Ql s/foo/bar/:\& 5046will substitute 5047.Ql foo 5048with 5049.Ql bar 5050throughout. 5051The first argument may be an extended regular expression and a final argument may be 5052.Ql i 5053to ignore case, for example 5054.Ql s/a(.)/\e1x/i:\& 5055would change 5056.Ql abABab 5057into 5058.Ql bxBxbx . 5059.Pp 5060In addition, the last line of a shell command's output may be inserted using 5061.Ql #() . 5062For example, 5063.Ql #(uptime) 5064will insert the system's uptime. 5065When constructing formats, 5066.Nm 5067does not wait for 5068.Ql #() 5069commands to finish; instead, the previous result from running the same command is used, 5070or a placeholder if the command has not been run before. 5071If the command hasn't exited, the most recent line of output will be used, but the status 5072line will not be updated more than once a second. 5073Commands are executed using 5074.Pa /bin/sh 5075and with the 5076.Nm 5077global environment set (see the 5078.Sx GLOBAL AND SESSION ENVIRONMENT 5079section). 5080.Pp 5081An 5082.Ql l 5083specifies that a string should be interpreted literally and not expanded. 5084For example 5085.Ql #{l:#{?pane_in_mode,yes,no}} 5086will be replaced by 5087.Ql #{?pane_in_mode,yes,no} . 5088.Pp 5089The following variables are available, where appropriate: 5090.Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX" 5091.It Sy "Variable name" Ta Sy "Alias" Ta Sy "Replaced with" 5092.It Li "active_window_index" Ta "" Ta "Index of active window in session" 5093.It Li "alternate_on" Ta "" Ta "1 if pane is in alternate screen" 5094.It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen" 5095.It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen" 5096.It Li "buffer_created" Ta "" Ta "Time buffer created" 5097.It Li "buffer_name" Ta "" Ta "Name of buffer" 5098.It Li "buffer_sample" Ta "" Ta "Sample of start of buffer" 5099.It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes" 5100.It Li "client_activity" Ta "" Ta "Time client last had activity" 5101.It Li "client_cell_height" Ta "" Ta "Height of each client cell in pixels" 5102.It Li "client_cell_width" Ta "" Ta "Width of each client cell in pixels" 5103.It Li "client_control_mode" Ta "" Ta "1 if client is in control mode" 5104.It Li "client_created" Ta "" Ta "Time client created" 5105.It Li "client_discarded" Ta "" Ta "Bytes discarded when client behind" 5106.It Li "client_flags" Ta "" Ta "List of client flags" 5107.It Li "client_height" Ta "" Ta "Height of client" 5108.It Li "client_key_table" Ta "" Ta "Current key table" 5109.It Li "client_last_session" Ta "" Ta "Name of the client's last session" 5110.It Li "client_name" Ta "" Ta "Name of client" 5111.It Li "client_pid" Ta "" Ta "PID of client process" 5112.It Li "client_prefix" Ta "" Ta "1 if prefix key has been pressed" 5113.It Li "client_readonly" Ta "" Ta "1 if client is read-only" 5114.It Li "client_session" Ta "" Ta "Name of the client's session" 5115.It Li "client_termfeatures" Ta "" Ta "Terminal features of client, if any" 5116.It Li "client_termname" Ta "" Ta "Terminal name of client" 5117.It Li "client_termtype" Ta "" Ta "Terminal type of client, if available" 5118.It Li "client_tty" Ta "" Ta "Pseudo terminal of client" 5119.It Li "client_uid" Ta "" Ta "UID of client process" 5120.It Li "client_user" Ta "" Ta "User of client process" 5121.It Li "client_utf8" Ta "" Ta "1 if client supports UTF-8" 5122.It Li "client_width" Ta "" Ta "Width of client" 5123.It Li "client_written" Ta "" Ta "Bytes written to client" 5124.It Li "command" Ta "" Ta "Name of command in use, if any" 5125.It Li "command_list_alias" Ta "" Ta "Command alias if listing commands" 5126.It Li "command_list_name" Ta "" Ta "Command name if listing commands" 5127.It Li "command_list_usage" Ta "" Ta "Command usage if listing commands" 5128.It Li "config_files" Ta "" Ta "List of configuration files loaded" 5129.It Li "copy_cursor_line" Ta "" Ta "Line the cursor is on in copy mode" 5130.It Li "copy_cursor_word" Ta "" Ta "Word under cursor in copy mode" 5131.It Li "copy_cursor_x" Ta "" Ta "Cursor X position in copy mode" 5132.It Li "copy_cursor_y" Ta "" Ta "Cursor Y position in copy mode" 5133.It Li "current_file" Ta "" Ta "Current configuration file" 5134.It Li "cursor_character" Ta "" Ta "Character at cursor in pane" 5135.It Li "cursor_flag" Ta "" Ta "Pane cursor flag" 5136.It Li "cursor_x" Ta "" Ta "Cursor X position in pane" 5137.It Li "cursor_y" Ta "" Ta "Cursor Y position in pane" 5138.It Li "history_bytes" Ta "" Ta "Number of bytes in window history" 5139.It Li "history_limit" Ta "" Ta "Maximum window history lines" 5140.It Li "history_size" Ta "" Ta "Size of history in lines" 5141.It Li "hook" Ta "" Ta "Name of running hook, if any" 5142.It Li "hook_client" Ta "" Ta "Name of client where hook was run, if any" 5143.It Li "hook_pane" Ta "" Ta "ID of pane where hook was run, if any" 5144.It Li "hook_session" Ta "" Ta "ID of session where hook was run, if any" 5145.It Li "hook_session_name" Ta "" Ta "Name of session where hook was run, if any" 5146.It Li "hook_window" Ta "" Ta "ID of window where hook was run, if any" 5147.It Li "hook_window_name" Ta "" Ta "Name of window where hook was run, if any" 5148.It Li "host" Ta "#H" Ta "Hostname of local host" 5149.It Li "host_short" Ta "#h" Ta "Hostname of local host (no domain name)" 5150.It Li "insert_flag" Ta "" Ta "Pane insert flag" 5151.It Li "keypad_cursor_flag" Ta "" Ta "Pane keypad cursor flag" 5152.It Li "keypad_flag" Ta "" Ta "Pane keypad flag" 5153.It Li "last_window_index" Ta "" Ta "Index of last window in session" 5154.It Li "line" Ta "" Ta "Line number in the list" 5155.It Li "mouse_all_flag" Ta "" Ta "Pane mouse all flag" 5156.It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag" 5157.It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag" 5158.It Li "mouse_line" Ta "" Ta "Line under mouse, if any" 5159.It Li "mouse_sgr_flag" Ta "" Ta "Pane mouse SGR flag" 5160.It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag" 5161.It Li "mouse_utf8_flag" Ta "" Ta "Pane mouse UTF-8 flag" 5162.It Li "mouse_word" Ta "" Ta "Word under mouse, if any" 5163.It Li "mouse_x" Ta "" Ta "Mouse X position, if any" 5164.It Li "mouse_y" Ta "" Ta "Mouse Y position, if any" 5165.It Li "next_session_id" Ta "" Ta "Unique session ID for next new session" 5166.It Li "origin_flag" Ta "" Ta "Pane origin flag" 5167.It Li "pane_active" Ta "" Ta "1 if active pane" 5168.It Li "pane_at_bottom" Ta "" Ta "1 if pane is at the bottom of window" 5169.It Li "pane_at_left" Ta "" Ta "1 if pane is at the left of window" 5170.It Li "pane_at_right" Ta "" Ta "1 if pane is at the right of window" 5171.It Li "pane_at_top" Ta "" Ta "1 if pane is at the top of window" 5172.It Li "pane_bg" Ta "" Ta "Pane background colour" 5173.It Li "pane_bottom" Ta "" Ta "Bottom of pane" 5174.It Li "pane_current_command" Ta "" Ta "Current command if available" 5175.It Li "pane_current_path" Ta "" Ta "Current path if available" 5176.It Li "pane_dead" Ta "" Ta "1 if pane is dead" 5177.It Li "pane_dead_signal" Ta "" Ta "Exit signal of process in dead pane" 5178.It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane" 5179.It Li "pane_dead_time" Ta "" Ta "Exit time of process in dead pane" 5180.It Li "pane_fg" Ta "" Ta "Pane foreground colour" 5181.It Li "pane_format" Ta "" Ta "1 if format is for a pane" 5182.It Li "pane_height" Ta "" Ta "Height of pane" 5183.It Li "pane_id" Ta "#D" Ta "Unique pane ID" 5184.It Li "pane_in_mode" Ta "" Ta "1 if pane is in a mode" 5185.It Li "pane_index" Ta "#P" Ta "Index of pane" 5186.It Li "pane_input_off" Ta "" Ta "1 if input to pane is disabled" 5187.It Li "pane_last" Ta "" Ta "1 if last pane" 5188.It Li "pane_left" Ta "" Ta "Left of pane" 5189.It Li "pane_marked" Ta "" Ta "1 if this is the marked pane" 5190.It Li "pane_marked_set" Ta "" Ta "1 if a marked pane is set" 5191.It Li "pane_mode" Ta "" Ta "Name of pane mode, if any" 5192.It Li "pane_path" Ta "" Ta "Path of pane (can be set by application)" 5193.It Li "pane_pid" Ta "" Ta "PID of first process in pane" 5194.It Li "pane_pipe" Ta "" Ta "1 if pane is being piped" 5195.It Li "pane_right" Ta "" Ta "Right of pane" 5196.It Li "pane_search_string" Ta "" Ta "Last search string in copy mode" 5197.It Li "pane_start_command" Ta "" Ta "Command pane started with" 5198.It Li "pane_start_path" Ta "" Ta "Path pane started with" 5199.It Li "pane_synchronized" Ta "" Ta "1 if pane is synchronized" 5200.It Li "pane_tabs" Ta "" Ta "Pane tab positions" 5201.It Li "pane_title" Ta "#T" Ta "Title of pane (can be set by application)" 5202.It Li "pane_top" Ta "" Ta "Top of pane" 5203.It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane" 5204.It Li "pane_width" Ta "" Ta "Width of pane" 5205.It Li "pid" Ta "" Ta "Server PID" 5206.It Li "rectangle_toggle" Ta "" Ta "1 if rectangle selection is activated" 5207.It Li "scroll_position" Ta "" Ta "Scroll position in copy mode" 5208.It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane" 5209.It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane" 5210.It Li "search_match" Ta "" Ta "Search match if any" 5211.It Li "search_present" Ta "" Ta "1 if search started in copy mode" 5212.It Li "selection_active" Ta "" Ta "1 if selection started and changes with the cursor in copy mode" 5213.It Li "selection_end_x" Ta "" Ta "X position of the end of the selection" 5214.It Li "selection_end_y" Ta "" Ta "Y position of the end of the selection" 5215.It Li "selection_present" Ta "" Ta "1 if selection started in copy mode" 5216.It Li "selection_start_x" Ta "" Ta "X position of the start of the selection" 5217.It Li "selection_start_y" Ta "" Ta "Y position of the start of the selection" 5218.It Li "session_activity" Ta "" Ta "Time of session last activity" 5219.It Li "session_alerts" Ta "" Ta "List of window indexes with alerts" 5220.It Li "session_attached" Ta "" Ta "Number of clients session is attached to" 5221.It Li "session_attached_list" Ta "" Ta "List of clients session is attached to" 5222.It Li "session_created" Ta "" Ta "Time session created" 5223.It Li "session_format" Ta "" Ta "1 if format is for a session" 5224.It Li "session_group" Ta "" Ta "Name of session group" 5225.It Li "session_group_attached" Ta "" Ta "Number of clients sessions in group are attached to" 5226.It Li "session_group_attached_list" Ta "" Ta "List of clients sessions in group are attached to" 5227.It Li "session_group_list" Ta "" Ta "List of sessions in group" 5228.It Li "session_group_many_attached" Ta "" Ta "1 if multiple clients attached to sessions in group" 5229.It Li "session_group_size" Ta "" Ta "Size of session group" 5230.It Li "session_grouped" Ta "" Ta "1 if session in a group" 5231.It Li "session_id" Ta "" Ta "Unique session ID" 5232.It Li "session_last_attached" Ta "" Ta "Time session last attached" 5233.It Li "session_many_attached" Ta "" Ta "1 if multiple clients attached" 5234.It Li "session_marked" Ta "" Ta "1 if this session contains the marked pane" 5235.It Li "session_name" Ta "#S" Ta "Name of session" 5236.It Li "session_path" Ta "" Ta "Working directory of session" 5237.It Li "session_stack" Ta "" Ta "Window indexes in most recent order" 5238.It Li "session_windows" Ta "" Ta "Number of windows in session" 5239.It Li "socket_path" Ta "" Ta "Server socket path" 5240.It Li "start_time" Ta "" Ta "Server start time" 5241.It Li "uid" Ta "" Ta "Server UID" 5242.It Li "user" Ta "" Ta "Server user" 5243.It Li "version" Ta "" Ta "Server version" 5244.It Li "window_active" Ta "" Ta "1 if window active" 5245.It Li "window_active_clients" Ta "" Ta "Number of clients viewing this window" 5246.It Li "window_active_clients_list" Ta "" Ta "List of clients viewing this window" 5247.It Li "window_active_sessions" Ta "" Ta "Number of sessions on which this window is active" 5248.It Li "window_active_sessions_list" Ta "" Ta "List of sessions on which this window is active" 5249.It Li "window_activity" Ta "" Ta "Time of window last activity" 5250.It Li "window_activity_flag" Ta "" Ta "1 if window has activity" 5251.It Li "window_bell_flag" Ta "" Ta "1 if window has bell" 5252.It Li "window_bigger" Ta "" Ta "1 if window is larger than client" 5253.It Li "window_cell_height" Ta "" Ta "Height of each cell in pixels" 5254.It Li "window_cell_width" Ta "" Ta "Width of each cell in pixels" 5255.It Li "window_end_flag" Ta "" Ta "1 if window has the highest index" 5256.It Li "window_flags" Ta "#F" Ta "Window flags with # escaped as ##" 5257.It Li "window_format" Ta "" Ta "1 if format is for a window" 5258.It Li "window_height" Ta "" Ta "Height of window" 5259.It Li "window_id" Ta "" Ta "Unique window ID" 5260.It Li "window_index" Ta "#I" Ta "Index of window" 5261.It Li "window_last_flag" Ta "" Ta "1 if window is the last used" 5262.It Li "window_layout" Ta "" Ta "Window layout description, ignoring zoomed window panes" 5263.It Li "window_linked" Ta "" Ta "1 if window is linked across sessions" 5264.It Li "window_linked_sessions" Ta "" Ta "Number of sessions this window is linked to" 5265.It Li "window_linked_sessions_list" Ta "" Ta "List of sessions this window is linked to" 5266.It Li "window_marked_flag" Ta "" Ta "1 if window contains the marked pane" 5267.It Li "window_name" Ta "#W" Ta "Name of window" 5268.It Li "window_offset_x" Ta "" Ta "X offset into window if larger than client" 5269.It Li "window_offset_y" Ta "" Ta "Y offset into window if larger than client" 5270.It Li "window_panes" Ta "" Ta "Number of panes in window" 5271.It Li "window_raw_flags" Ta "" Ta "Window flags with nothing escaped" 5272.It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert" 5273.It Li "window_stack_index" Ta "" Ta "Index in session most recent stack" 5274.It Li "window_start_flag" Ta "" Ta "1 if window has the lowest index" 5275.It Li "window_visible_layout" Ta "" Ta "Window layout description, respecting zoomed window panes" 5276.It Li "window_width" Ta "" Ta "Width of window" 5277.It Li "window_zoomed_flag" Ta "" Ta "1 if window is zoomed" 5278.It Li "wrap_flag" Ta "" Ta "Pane wrap flag" 5279.El 5280.Sh STYLES 5281.Nm 5282offers various options to specify the colour and attributes of aspects of the 5283interface, for example 5284.Ic status-style 5285for the status line. 5286In addition, embedded styles may be specified in format options, such as 5287.Ic status-left , 5288by enclosing them in 5289.Ql #[ 5290and 5291.Ql \&] . 5292.Pp 5293A style may be the single term 5294.Ql default 5295to specify the default style (which may come from an option, for example 5296.Ic status-style 5297in the status line) or a space 5298or comma separated list of the following: 5299.Bl -tag -width Ds 5300.It Ic fg=colour 5301Set the foreground colour. 5302The colour is one of: 5303.Ic black , 5304.Ic red , 5305.Ic green , 5306.Ic yellow , 5307.Ic blue , 5308.Ic magenta , 5309.Ic cyan , 5310.Ic white ; 5311if supported the bright variants 5312.Ic brightred , 5313.Ic brightgreen , 5314.Ic brightyellow ; 5315.Ic colour0 5316to 5317.Ic colour255 5318from the 256-colour set; 5319.Ic default 5320for the default colour; 5321.Ic terminal 5322for the terminal default colour; or a hexadecimal RGB string such as 5323.Ql #ffffff . 5324.It Ic bg=colour 5325Set the background colour. 5326.It Ic none 5327Set no attributes (turn off any active attributes). 5328.It Xo Ic acs , 5329.Ic bright 5330(or 5331.Ic bold ) , 5332.Ic dim , 5333.Ic underscore , 5334.Ic blink , 5335.Ic reverse , 5336.Ic hidden , 5337.Ic italics , 5338.Ic overline , 5339.Ic strikethrough , 5340.Ic double-underscore , 5341.Ic curly-underscore , 5342.Ic dotted-underscore , 5343.Ic dashed-underscore 5344.Xc 5345Set an attribute. 5346Any of the attributes may be prefixed with 5347.Ql no 5348to unset. 5349.Ic acs 5350is the terminal alternate character set. 5351.It Xo Ic align=left 5352(or 5353.Ic noalign ) , 5354.Ic align=centre , 5355.Ic align=right 5356.Xc 5357Align text to the left, centre or right of the available space if appropriate. 5358.It Ic fill=colour 5359Fill the available space with a background colour if appropriate. 5360.It Xo Ic list=on , 5361.Ic list=focus , 5362.Ic list=left-marker , 5363.Ic list=right-marker , 5364.Ic nolist 5365.Xc 5366Mark the position of the various window list components in the 5367.Ic status-format 5368option: 5369.Ic list=on 5370marks the start of the list; 5371.Ic list=focus 5372is the part of the list that should be kept in focus if the entire list won't fit 5373in the available space (typically the current window); 5374.Ic list=left-marker 5375and 5376.Ic list=right-marker 5377mark the text to be used to mark that text has been trimmed from the left or 5378right of the list if there is not enough space. 5379.It Xo Ic push-default , 5380.Ic pop-default 5381.Xc 5382Store the current colours and attributes as the default or reset to the previous 5383default. 5384A 5385.Ic push-default 5386affects any subsequent use of the 5387.Ic default 5388term until a 5389.Ic pop-default . 5390Only one default may be pushed (each 5391.Ic push-default 5392replaces the previous saved default). 5393.It Xo Ic range=left , 5394.Ic range=right , 5395.Ic range=window|X , 5396.Ic norange 5397.Xc 5398Mark a range in the 5399.Ic status-format 5400option. 5401.Ic range=left 5402and 5403.Ic range=right 5404are the text used for the 5405.Ql StatusLeft 5406and 5407.Ql StatusRight 5408mouse keys. 5409.Ic range=window|X 5410is the range for a window passed to the 5411.Ql Status 5412mouse key, where 5413.Ql X 5414is a window index. 5415.El 5416.Pp 5417Examples are: 5418.Bd -literal -offset indent 5419fg=yellow bold underscore blink 5420bg=black,fg=default,noreverse 5421.Ed 5422.Sh NAMES AND TITLES 5423.Nm 5424distinguishes between names and titles. 5425Windows and sessions have names, which may be used to specify them in targets 5426and are displayed in the status line and various lists: the name is the 5427.Nm 5428identifier for a window or session. 5429Only panes have titles. 5430A pane's title is typically set by the program running inside the pane using 5431an escape sequence (like it would set the 5432.Xr xterm 1 5433window title in 5434.Xr X 7 ) . 5435Windows themselves do not have titles - a window's title is the title of its 5436active pane. 5437.Nm 5438itself may set the title of the terminal in which the client is running, see 5439the 5440.Ic set-titles 5441option. 5442.Pp 5443A session's name is set with the 5444.Ic new-session 5445and 5446.Ic rename-session 5447commands. 5448A window's name is set with one of: 5449.Bl -enum -width Ds 5450.It 5451A command argument (such as 5452.Fl n 5453for 5454.Ic new-window 5455or 5456.Ic new-session ) . 5457.It 5458An escape sequence (if the 5459.Ic allow-rename 5460option is turned on): 5461.Bd -literal -offset indent 5462$ printf '\e033kWINDOW_NAME\e033\e\e' 5463.Ed 5464.It 5465Automatic renaming, which sets the name to the active command in the window's 5466active pane. 5467See the 5468.Ic automatic-rename 5469option. 5470.El 5471.Pp 5472When a pane is first created, its title is the hostname. 5473A pane's title can be set via the title setting escape sequence, for example: 5474.Bd -literal -offset indent 5475$ printf '\e033]2;My Title\e033\e\e' 5476.Ed 5477.Pp 5478It can also be modified with the 5479.Ic select-pane 5480.Fl T 5481command. 5482.Sh GLOBAL AND SESSION ENVIRONMENT 5483When the server is started, 5484.Nm 5485copies the environment into the 5486.Em global environment ; 5487in addition, each session has a 5488.Em session environment . 5489When a window is created, the session and global environments are merged. 5490If a variable exists in both, the value from the session environment is used. 5491The result is the initial environment passed to the new process. 5492.Pp 5493The 5494.Ic update-environment 5495session option may be used to update the session environment from the client 5496when a new session is created or an old reattached. 5497.Nm 5498also initialises the 5499.Ev TMUX 5500variable with some internal information to allow commands to be executed 5501from inside, and the 5502.Ev TERM 5503variable with the correct terminal setting of 5504.Ql screen . 5505.Pp 5506Variables in both session and global environments may be marked as hidden. 5507Hidden variables are not passed into the environment of new processes and 5508instead can only be used by tmux itself (for example in formats, see the 5509.Sx FORMATS 5510section). 5511.Pp 5512Commands to alter and view the environment are: 5513.Bl -tag -width Ds 5514.Tg setenv 5515.It Xo Ic set-environment 5516.Op Fl Fhgru 5517.Op Fl t Ar target-session 5518.Ar name Op Ar value 5519.Xc 5520.D1 Pq alias: Ic setenv 5521Set or unset an environment variable. 5522If 5523.Fl g 5524is used, the change is made in the global environment; otherwise, it is applied 5525to the session environment for 5526.Ar target-session . 5527If 5528.Fl F 5529is present, then 5530.Ar value 5531is expanded as a format. 5532The 5533.Fl u 5534flag unsets a variable. 5535.Fl r 5536indicates the variable is to be removed from the environment before starting a 5537new process. 5538.Fl h 5539marks the variable as hidden. 5540.Tg showenv 5541.It Xo Ic show-environment 5542.Op Fl hgs 5543.Op Fl t Ar target-session 5544.Op Ar variable 5545.Xc 5546.D1 Pq alias: Ic showenv 5547Display the environment for 5548.Ar target-session 5549or the global environment with 5550.Fl g . 5551If 5552.Ar variable 5553is omitted, all variables are shown. 5554Variables removed from the environment are prefixed with 5555.Ql - . 5556If 5557.Fl s 5558is used, the output is formatted as a set of Bourne shell commands. 5559.Fl h 5560shows hidden variables (omitted by default). 5561.El 5562.Sh STATUS LINE 5563.Nm 5564includes an optional status line which is displayed in the bottom line of each 5565terminal. 5566.Pp 5567By default, the status line is enabled and one line in height (it may be 5568disabled or made multiple lines with the 5569.Ic status 5570session option) and contains, from left-to-right: the name of the current 5571session in square brackets; the window list; the title of the active pane 5572in double quotes; and the time and date. 5573.Pp 5574Each line of the status line is configured with the 5575.Ic status-format 5576option. 5577The default is made of three parts: configurable left and right sections (which 5578may contain dynamic content such as the time or output from a shell command, 5579see the 5580.Ic status-left , 5581.Ic status-left-length , 5582.Ic status-right , 5583and 5584.Ic status-right-length 5585options below), and a central window list. 5586By default, the window list shows the index, name and (if any) flag of the 5587windows present in the current session in ascending numerical order. 5588It may be customised with the 5589.Ar window-status-format 5590and 5591.Ar window-status-current-format 5592options. 5593The flag is one of the following symbols appended to the window name: 5594.Bl -column "Symbol" "Meaning" -offset indent 5595.It Sy "Symbol" Ta Sy "Meaning" 5596.It Li "*" Ta "Denotes the current window." 5597.It Li "-" Ta "Marks the last window (previously selected)." 5598.It Li "#" Ta "Window activity is monitored and activity has been detected." 5599.It Li "\&!" Ta "Window bells are monitored and a bell has occurred in the window." 5600.It Li "~" Ta "The window has been silent for the monitor-silence interval." 5601.It Li "M" Ta "The window contains the marked pane." 5602.It Li "Z" Ta "The window's active pane is zoomed." 5603.El 5604.Pp 5605The # symbol relates to the 5606.Ic monitor-activity 5607window option. 5608The window name is printed in inverted colours if an alert (bell, activity or 5609silence) is present. 5610.Pp 5611The colour and attributes of the status line may be configured, the entire 5612status line using the 5613.Ic status-style 5614session option and individual windows using the 5615.Ic window-status-style 5616window option. 5617.Pp 5618The status line is automatically refreshed at interval if it has changed, the 5619interval may be controlled with the 5620.Ic status-interval 5621session option. 5622.Pp 5623Commands related to the status line are as follows: 5624.Bl -tag -width Ds 5625.Tg clearphist 5626.It Xo Ic clear-prompt-history 5627.Op Fl T Ar prompt-type 5628.Xc 5629.D1 Pq alias: Ic clearphist 5630Clear status prompt history for prompt type 5631.Ar prompt-type . 5632If 5633.Fl T 5634is omitted, then clear history for all types. 5635See 5636.Ic command-prompt 5637for possible values for 5638.Ar prompt-type . 5639.It Xo Ic command-prompt 5640.Op Fl 1bFikN 5641.Op Fl I Ar inputs 5642.Op Fl p Ar prompts 5643.Op Fl t Ar target-client 5644.Op Fl T Ar prompt-type 5645.Op Ar template 5646.Xc 5647Open the command prompt in a client. 5648This may be used from inside 5649.Nm 5650to execute commands interactively. 5651.Pp 5652If 5653.Ar template 5654is specified, it is used as the command. 5655With 5656.Fl F , 5657.Ar template 5658is expanded as a format. 5659.Pp 5660If present, 5661.Fl I 5662is a comma-separated list of the initial text for each prompt. 5663If 5664.Fl p 5665is given, 5666.Ar prompts 5667is a comma-separated list of prompts which are displayed in order; otherwise 5668a single prompt is displayed, constructed from 5669.Ar template 5670if it is present, or 5671.Ql \&: 5672if not. 5673.Pp 5674Before the command is executed, the first occurrence of the string 5675.Ql %% 5676and all occurrences of 5677.Ql %1 5678are replaced by the response to the first prompt, all 5679.Ql %2 5680are replaced with the response to the second prompt, and so on for further 5681prompts. 5682Up to nine prompt responses may be replaced 5683.Po 5684.Ql %1 5685to 5686.Ql %9 5687.Pc . 5688.Ql %%% 5689is like 5690.Ql %% 5691but any quotation marks are escaped. 5692.Pp 5693.Fl 1 5694makes the prompt only accept one key press, in this case the resulting input 5695is a single character. 5696.Fl k 5697is like 5698.Fl 1 5699but the key press is translated to a key name. 5700.Fl N 5701makes the prompt only accept numeric key presses. 5702.Fl i 5703executes the command every time the prompt input changes instead of when the 5704user exits the command prompt. 5705.Pp 5706.Fl T 5707tells 5708.Nm 5709the prompt type. 5710This affects what completions are offered when 5711.Em Tab 5712is pressed. 5713Available types are: 5714.Ql command , 5715.Ql search , 5716.Ql target 5717and 5718.Ql window-target . 5719.Pp 5720The following keys have a special meaning in the command prompt, depending 5721on the value of the 5722.Ic status-keys 5723option: 5724.Bl -column "FunctionXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXX" "emacsX" -offset indent 5725.It Sy "Function" Ta Sy "vi" Ta Sy "emacs" 5726.It Li "Cancel command prompt" Ta "q" Ta "Escape" 5727.It Li "Delete from cursor to start of word" Ta "" Ta "C-w" 5728.It Li "Delete entire command" Ta "d" Ta "C-u" 5729.It Li "Delete from cursor to end" Ta "D" Ta "C-k" 5730.It Li "Execute command" Ta "Enter" Ta "Enter" 5731.It Li "Get next command from history" Ta "" Ta "Down" 5732.It Li "Get previous command from history" Ta "" Ta "Up" 5733.It Li "Insert top paste buffer" Ta "p" Ta "C-y" 5734.It Li "Look for completions" Ta "Tab" Ta "Tab" 5735.It Li "Move cursor left" Ta "h" Ta "Left" 5736.It Li "Move cursor right" Ta "l" Ta "Right" 5737.It Li "Move cursor to end" Ta "$" Ta "C-e" 5738.It Li "Move cursor to next word" Ta "w" Ta "M-f" 5739.It Li "Move cursor to previous word" Ta "b" Ta "M-b" 5740.It Li "Move cursor to start" Ta "0" Ta "C-a" 5741.It Li "Transpose characters" Ta "" Ta "C-t" 5742.El 5743.Pp 5744With 5745.Fl b , 5746the prompt is shown in the background and the invoking client does not exit 5747until it is dismissed. 5748.Tg confirm 5749.It Xo Ic confirm-before 5750.Op Fl b 5751.Op Fl p Ar prompt 5752.Op Fl t Ar target-client 5753.Ar command 5754.Xc 5755.D1 Pq alias: Ic confirm 5756Ask for confirmation before executing 5757.Ar command . 5758If 5759.Fl p 5760is given, 5761.Ar prompt 5762is the prompt to display; otherwise a prompt is constructed from 5763.Ar command . 5764It may contain the special character sequences supported by the 5765.Ic status-left 5766option. 5767With 5768.Fl b , 5769the prompt is shown in the background and the invoking client does not exit 5770until it is dismissed. 5771.Tg menu 5772.It Xo Ic display-menu 5773.Op Fl O 5774.Op Fl c Ar target-client 5775.Op Fl t Ar target-pane 5776.Op Fl T Ar title 5777.Op Fl x Ar position 5778.Op Fl y Ar position 5779.Ar name 5780.Ar key 5781.Ar command 5782.Ar ... 5783.Xc 5784.D1 Pq alias: Ic menu 5785Display a menu on 5786.Ar target-client . 5787.Ar target-pane 5788gives the target for any commands run from the menu. 5789.Pp 5790A menu is passed as a series of arguments: first the menu item name, 5791second the key shortcut (or empty for none) and third the command 5792to run when the menu item is chosen. 5793The name and command are formats, see the 5794.Sx FORMATS 5795and 5796.Sx STYLES 5797sections. 5798If the name begins with a hyphen (-), then the item is disabled (shown dim) and 5799may not be chosen. 5800The name may be empty for a separator line, in which case both the key and 5801command should be omitted. 5802.Pp 5803.Fl T 5804is a format for the menu title (see 5805.Sx FORMATS ) . 5806.Pp 5807.Fl x 5808and 5809.Fl y 5810give the position of the menu. 5811Both may be a row or column number, or one of the following special values: 5812.Bl -column "XXXXX" "XXXX" -offset indent 5813.It Sy "Value" Ta Sy "Flag" Ta Sy "Meaning" 5814.It Li "C" Ta "Both" Ta "The centre of the terminal" 5815.It Li "R" Ta Fl x Ta "The right side of the terminal" 5816.It Li "P" Ta "Both" Ta "The bottom left of the pane" 5817.It Li "M" Ta "Both" Ta "The mouse position" 5818.It Li "W" Ta "Both" Ta "The window position on the status line" 5819.It Li "S" Ta Fl y Ta "The line above or below the status line" 5820.El 5821.Pp 5822Or a format, which is expanded including the following additional variables: 5823.Bl -column "XXXXXXXXXXXXXXXXXXXXXXXXXX" -offset indent 5824.It Sy "Variable name" Ta Sy "Replaced with" 5825.It Li "popup_centre_x" Ta "Centered in the client" 5826.It Li "popup_centre_y" Ta "Centered in the client" 5827.It Li "popup_height" Ta "Height of menu or popup" 5828.It Li "popup_mouse_bottom" Ta "Bottom of at the mouse" 5829.It Li "popup_mouse_centre_x" Ta "Horizontal centre at the mouse" 5830.It Li "popup_mouse_centre_y" Ta "Vertical centre at the mouse" 5831.It Li "popup_mouse_top" Ta "Top at the mouse" 5832.It Li "popup_mouse_x" Ta "Mouse X position" 5833.It Li "popup_mouse_y" Ta "Mouse Y position" 5834.It Li "popup_pane_bottom" Ta "Bottom of the pane" 5835.It Li "popup_pane_left" Ta "Left of the pane" 5836.It Li "popup_pane_right" Ta "Right of the pane" 5837.It Li "popup_pane_top" Ta "Top of the pane" 5838.It Li "popup_status_line_y" Ta "Above or below the status line" 5839.It Li "popup_width" Ta "Width of menu or popup" 5840.It Li "popup_window_status_line_x" Ta "At the window position in status line" 5841.It Li "popup_window_status_line_y" Ta "At the status line showing the window" 5842.El 5843.Pp 5844Each menu consists of items followed by a key shortcut shown in brackets. 5845If the menu is too large to fit on the terminal, it is not displayed. 5846Pressing the key shortcut chooses the corresponding item. 5847If the mouse is enabled and the menu is opened from a mouse key binding, 5848releasing the mouse button with an item selected chooses that item and 5849releasing the mouse button without an item selected closes the menu. 5850.Fl O 5851changes this behaviour so that the menu does not close when the mouse button is 5852released without an item selected the menu is not closed and a mouse button 5853must be clicked to choose an item. 5854.Pp 5855The following keys are also available: 5856.Bl -column "Key" "Function" -offset indent 5857.It Sy "Key" Ta Sy "Function" 5858.It Li "Enter" Ta "Choose selected item" 5859.It Li "Up" Ta "Select previous item" 5860.It Li "Down" Ta "Select next item" 5861.It Li "q" Ta "Exit menu" 5862.El 5863.Tg display 5864.It Xo Ic display-message 5865.Op Fl aINpv 5866.Op Fl c Ar target-client 5867.Op Fl d Ar delay 5868.Op Fl t Ar target-pane 5869.Op Ar message 5870.Xc 5871.D1 Pq alias: Ic display 5872Display a message. 5873If 5874.Fl p 5875is given, the output is printed to stdout, otherwise it is displayed in the 5876.Ar target-client 5877status line for up to 5878.Ar delay 5879milliseconds. 5880If 5881.Ar delay 5882is not given, the 5883.Ic display-time 5884option is used; a delay of zero waits for a key press. 5885.Ql N 5886ignores key presses and closes only after the delay expires. 5887The format of 5888.Ar message 5889is described in the 5890.Sx FORMATS 5891section; information is taken from 5892.Ar target-pane 5893if 5894.Fl t 5895is given, otherwise the active pane. 5896.Pp 5897.Fl v 5898prints verbose logging as the format is parsed and 5899.Fl a 5900lists the format variables and their values. 5901.Pp 5902.Fl I 5903forwards any input read from stdin to the empty pane given by 5904.Ar target-pane . 5905.Tg popup 5906.It Xo Ic display-popup 5907.Op Fl BCE 5908.Op Fl b Ar border-lines 5909.Op Fl c Ar target-client 5910.Op Fl d Ar start-directory 5911.Op Fl e Ar environment 5912.Op Fl h Ar height 5913.Op Fl s Ar style 5914.Op Fl S Ar border-style 5915.Op Fl t Ar target-pane 5916.Op Fl T Ar title 5917.Op Fl w Ar width 5918.Op Fl x Ar position 5919.Op Fl y Ar position 5920.Op Ar shell-command 5921.Xc 5922.D1 Pq alias: Ic popup 5923Display a popup running 5924.Ar shell-command 5925on 5926.Ar target-client . 5927A popup is a rectangular box drawn over the top of any panes. 5928Panes are not updated while a popup is present. 5929.Pp 5930.Fl E 5931closes the popup automatically when 5932.Ar shell-command 5933exits. 5934Two 5935.Fl E 5936closes the popup only if 5937.Ar shell-command 5938exited with success. 5939.Pp 5940.Fl x 5941and 5942.Fl y 5943give the position of the popup, they have the same meaning as for the 5944.Ic display-menu 5945command. 5946.Fl w 5947and 5948.Fl h 5949give the width and height - both may be a percentage (followed by 5950.Ql % ) . 5951If omitted, half of the terminal size is used. 5952.Pp 5953.Fl B 5954does not surround the popup by a border. 5955.Pp 5956.Fl b 5957sets the type of border line for the popup. 5958When 5959.Fl B 5960is specified, the 5961.Fl b 5962option is ignored. 5963See 5964.Ic popup-border-lines 5965for possible values for 5966.Ar border-lines . 5967.Pp 5968.Fl s 5969sets the style for the popup and 5970.Fl S 5971sets the style for the popup border. 5972For how to specify 5973.Ar style , 5974see the 5975.Sx STYLES 5976section. 5977.Pp 5978.Fl e 5979takes the form 5980.Ql VARIABLE=value 5981and sets an environment variable for the popup; it may be specified multiple 5982times. 5983.Pp 5984.Fl T 5985is a format for the popup title (see 5986.Sx FORMATS ) . 5987.Pp 5988The 5989.Fl C 5990flag closes any popup on the client. 5991.Tg showphist 5992.It Xo Ic show-prompt-history 5993.Op Fl T Ar prompt-type 5994.Xc 5995.D1 Pq alias: Ic showphist 5996Display status prompt history for prompt type 5997.Ar prompt-type . 5998If 5999.Fl T 6000is omitted, then show history for all types. 6001See 6002.Ic command-prompt 6003for possible values for 6004.Ar prompt-type . 6005.El 6006.Sh BUFFERS 6007.Nm 6008maintains a set of named 6009.Em paste buffers . 6010Each buffer may be either explicitly or automatically named. 6011Explicitly named buffers are named when created with the 6012.Ic set-buffer 6013or 6014.Ic load-buffer 6015commands, or by renaming an automatically named buffer with 6016.Ic set-buffer 6017.Fl n . 6018Automatically named buffers are given a name such as 6019.Ql buffer0001 , 6020.Ql buffer0002 6021and so on. 6022When the 6023.Ic buffer-limit 6024option is reached, the oldest automatically named buffer is deleted. 6025Explicitly named buffers are not subject to 6026.Ic buffer-limit 6027and may be deleted with the 6028.Ic delete-buffer 6029command. 6030.Pp 6031Buffers may be added using 6032.Ic copy-mode 6033or the 6034.Ic set-buffer 6035and 6036.Ic load-buffer 6037commands, and pasted into a window using the 6038.Ic paste-buffer 6039command. 6040If a buffer command is used and no buffer is specified, the most 6041recently added automatically named buffer is assumed. 6042.Pp 6043A configurable history buffer is also maintained for each window. 6044By default, up to 2000 lines are kept; this can be altered with the 6045.Ic history-limit 6046option (see the 6047.Ic set-option 6048command above). 6049.Pp 6050The buffer commands are as follows: 6051.Bl -tag -width Ds 6052.It Xo 6053.Ic choose-buffer 6054.Op Fl NZr 6055.Op Fl F Ar format 6056.Op Fl f Ar filter 6057.Op Fl K Ar key-format 6058.Op Fl O Ar sort-order 6059.Op Fl t Ar target-pane 6060.Op Ar template 6061.Xc 6062Put a pane into buffer mode, where a buffer may be chosen interactively from 6063a list. 6064Each buffer is shown on one line. 6065A shortcut key is shown on the left in brackets allowing for immediate choice, 6066or the list may be navigated and an item chosen or otherwise manipulated using 6067the keys below. 6068.Fl Z 6069zooms the pane. 6070The following keys may be used in buffer mode: 6071.Bl -column "Key" "Function" -offset indent 6072.It Sy "Key" Ta Sy "Function" 6073.It Li "Enter" Ta "Paste selected buffer" 6074.It Li "Up" Ta "Select previous buffer" 6075.It Li "Down" Ta "Select next buffer" 6076.It Li "C-s" Ta "Search by name or content" 6077.It Li "n" Ta "Repeat last search" 6078.It Li "t" Ta "Toggle if buffer is tagged" 6079.It Li "T" Ta "Tag no buffers" 6080.It Li "C-t" Ta "Tag all buffers" 6081.It Li "p" Ta "Paste selected buffer" 6082.It Li "P" Ta "Paste tagged buffers" 6083.It Li "d" Ta "Delete selected buffer" 6084.It Li "D" Ta "Delete tagged buffers" 6085.It Li "e" Ta "Open the buffer in an editor" 6086.It Li "f" Ta "Enter a format to filter items" 6087.It Li "O" Ta "Change sort field" 6088.It Li "r" Ta "Reverse sort order" 6089.It Li "v" Ta "Toggle preview" 6090.It Li "q" Ta "Exit mode" 6091.El 6092.Pp 6093After a buffer is chosen, 6094.Ql %% 6095is replaced by the buffer name in 6096.Ar template 6097and the result executed as a command. 6098If 6099.Ar template 6100is not given, "paste-buffer -b '%%'" is used. 6101.Pp 6102.Fl O 6103specifies the initial sort field: one of 6104.Ql time , 6105.Ql name 6106or 6107.Ql size . 6108.Fl r 6109reverses the sort order. 6110.Fl f 6111specifies an initial filter: the filter is a format - if it evaluates to zero, 6112the item in the list is not shown, otherwise it is shown. 6113If a filter would lead to an empty list, it is ignored. 6114.Fl F 6115specifies the format for each item in the list and 6116.Fl K 6117a format for each shortcut key; both are evaluated once for each line. 6118.Fl N 6119starts without the preview. 6120This command works only if at least one client is attached. 6121.Tg clearhist 6122.It Ic clear-history Op Fl t Ar target-pane 6123.D1 Pq alias: Ic clearhist 6124Remove and free the history for the specified pane. 6125.Tg deleteb 6126.It Ic delete-buffer Op Fl b Ar buffer-name 6127.D1 Pq alias: Ic deleteb 6128Delete the buffer named 6129.Ar buffer-name , 6130or the most recently added automatically named buffer if not specified. 6131.Tg lsb 6132.It Xo Ic list-buffers 6133.Op Fl F Ar format 6134.Op Fl f Ar filter 6135.Xc 6136.D1 Pq alias: Ic lsb 6137List the global buffers. 6138.Fl F 6139specifies the format of each line and 6140.Fl f 6141a filter. 6142Only buffers for which the filter is true are shown. 6143See the 6144.Sx FORMATS 6145section. 6146.It Xo Ic load-buffer 6147.Op Fl w 6148.Op Fl b Ar buffer-name 6149.Op Fl t Ar target-client 6150.Ar path 6151.Xc 6152.Tg loadb 6153.D1 Pq alias: Ic loadb 6154Load the contents of the specified paste buffer from 6155.Ar path . 6156If 6157.Fl w 6158is given, the buffer is also sent to the clipboard for 6159.Ar target-client 6160using the 6161.Xr xterm 1 6162escape sequence, if possible. 6163.Tg pasteb 6164.It Xo Ic paste-buffer 6165.Op Fl dpr 6166.Op Fl b Ar buffer-name 6167.Op Fl s Ar separator 6168.Op Fl t Ar target-pane 6169.Xc 6170.D1 Pq alias: Ic pasteb 6171Insert the contents of a paste buffer into the specified pane. 6172If not specified, paste into the current one. 6173With 6174.Fl d , 6175also delete the paste buffer. 6176When output, any linefeed (LF) characters in the paste buffer are replaced with 6177a separator, by default carriage return (CR). 6178A custom separator may be specified using the 6179.Fl s 6180flag. 6181The 6182.Fl r 6183flag means to do no replacement (equivalent to a separator of LF). 6184If 6185.Fl p 6186is specified, paste bracket control codes are inserted around the 6187buffer if the application has requested bracketed paste mode. 6188.Tg saveb 6189.It Xo Ic save-buffer 6190.Op Fl a 6191.Op Fl b Ar buffer-name 6192.Ar path 6193.Xc 6194.D1 Pq alias: Ic saveb 6195Save the contents of the specified paste buffer to 6196.Ar path . 6197The 6198.Fl a 6199option appends to rather than overwriting the file. 6200.It Xo Ic set-buffer 6201.Op Fl aw 6202.Op Fl b Ar buffer-name 6203.Op Fl t Ar target-client 6204.Tg setb 6205.Op Fl n Ar new-buffer-name 6206.Ar data 6207.Xc 6208.D1 Pq alias: Ic setb 6209Set the contents of the specified buffer to 6210.Ar data . 6211If 6212.Fl w 6213is given, the buffer is also sent to the clipboard for 6214.Ar target-client 6215using the 6216.Xr xterm 1 6217escape sequence, if possible. 6218The 6219.Fl a 6220option appends to rather than overwriting the buffer. 6221The 6222.Fl n 6223option renames the buffer to 6224.Ar new-buffer-name . 6225.Tg showb 6226.It Xo Ic show-buffer 6227.Op Fl b Ar buffer-name 6228.Xc 6229.D1 Pq alias: Ic showb 6230Display the contents of the specified buffer. 6231.El 6232.Sh MISCELLANEOUS 6233Miscellaneous commands are as follows: 6234.Bl -tag -width Ds 6235.It Ic clock-mode Op Fl t Ar target-pane 6236Display a large clock. 6237.Tg if 6238.It Xo Ic if-shell 6239.Op Fl bF 6240.Op Fl t Ar target-pane 6241.Ar shell-command command 6242.Op Ar command 6243.Xc 6244.D1 Pq alias: Ic if 6245Execute the first 6246.Ar command 6247if 6248.Ar shell-command 6249(run with 6250.Pa /bin/sh ) 6251returns success or the second 6252.Ar command 6253otherwise. 6254Before being executed, 6255.Ar shell-command 6256is expanded using the rules specified in the 6257.Sx FORMATS 6258section, including those relevant to 6259.Ar target-pane . 6260With 6261.Fl b , 6262.Ar shell-command 6263is run in the background. 6264.Pp 6265If 6266.Fl F 6267is given, 6268.Ar shell-command 6269is not executed but considered success if neither empty nor zero (after formats 6270are expanded). 6271.Tg lock 6272.It Ic lock-server 6273.D1 Pq alias: Ic lock 6274Lock each client individually by running the command specified by the 6275.Ic lock-command 6276option. 6277.Tg run 6278.It Xo Ic run-shell 6279.Op Fl bC 6280.Op Fl d Ar delay 6281.Op Fl t Ar target-pane 6282.Op Ar shell-command 6283.Xc 6284.D1 Pq alias: Ic run 6285Execute 6286.Ar shell-command 6287using 6288.Pa /bin/sh 6289or (with 6290.Fl C ) 6291a 6292.Nm 6293command in the background without creating a window. 6294Before being executed, 6295.Ar shell-command 6296is expanded using the rules specified in the 6297.Sx FORMATS 6298section. 6299With 6300.Fl b , 6301the command is run in the background. 6302.Fl d 6303waits for 6304.Ar delay 6305seconds before starting the command. 6306If 6307.Fl C 6308is not given, any output to stdout is displayed in view mode (in the pane 6309specified by 6310.Fl t 6311or the current pane if omitted) after the command finishes. 6312If the command fails, the exit status is also displayed. 6313.Tg wait 6314.It Xo Ic wait-for 6315.Op Fl L | S | U 6316.Ar channel 6317.Xc 6318.D1 Pq alias: Ic wait 6319When used without options, prevents the client from exiting until woken using 6320.Ic wait-for 6321.Fl S 6322with the same channel. 6323When 6324.Fl L 6325is used, the channel is locked and any clients that try to lock the same 6326channel are made to wait until the channel is unlocked with 6327.Ic wait-for 6328.Fl U . 6329.El 6330.Sh EXIT MESSAGES 6331When a 6332.Nm 6333client detaches, it prints a message. 6334This may be one of: 6335.Bl -tag -width Ds 6336.It detached (from session ...) 6337The client was detached normally. 6338.It detached and SIGHUP 6339The client was detached and its parent sent the 6340.Dv SIGHUP 6341signal (for example with 6342.Ic detach-client 6343.Fl P ) . 6344.It lost tty 6345The client's 6346.Xr tty 4 6347or 6348.Xr pty 4 6349was unexpectedly destroyed. 6350.It terminated 6351The client was killed with 6352.Dv SIGTERM . 6353.It too far behind 6354The client is in control mode and became unable to keep up with the data from 6355.Nm . 6356.It exited 6357The server exited when it had no sessions. 6358.It server exited 6359The server exited when it received 6360.Dv SIGTERM . 6361.It server exited unexpectedly 6362The server crashed or otherwise exited without telling the client the reason. 6363.El 6364.Sh TERMINFO EXTENSIONS 6365.Nm 6366understands some unofficial extensions to 6367.Xr terminfo 5 . 6368It is not normally necessary to set these manually, instead the 6369.Ic terminal-features 6370option should be used. 6371.Bl -tag -width Ds 6372.It Em \&AX 6373An existing extension that tells 6374.Nm 6375the terminal supports default colours. 6376.It Em \&Bidi 6377Tell 6378.Nm 6379that the terminal supports the VTE bidirectional text extensions. 6380.It Em \&Cs , Cr 6381Set the cursor colour. 6382The first takes a single string argument and is used to set the colour; 6383the second takes no arguments and restores the default cursor colour. 6384If set, a sequence such as this may be used 6385to change the cursor colour from inside 6386.Nm : 6387.Bd -literal -offset indent 6388$ printf '\e033]12;red\e033\e\e' 6389.Ed 6390.Pp 6391The colour is an 6392.Xr X 7 6393colour, see 6394.Xr XParseColor 3 . 6395.It Em \&Cmg, \&Clmg, \&Dsmg , \&Enmg 6396Set, clear, disable or enable DECSLRM margins. 6397These are set automatically if the terminal reports it is 6398.Em VT420 6399compatible. 6400.It Em \&Dsbp , \&Enbp 6401Disable and enable bracketed paste. 6402These are set automatically if the 6403.Em XT 6404capability is present. 6405.It Em \&Dseks , \&Eneks 6406Disable and enable extended keys. 6407.It Em \&Dsfcs , \&Enfcs 6408Disable and enable focus reporting. 6409These are set automatically if the 6410.Em XT 6411capability is present. 6412.It Em \&Rect 6413Tell 6414.Nm 6415that the terminal supports rectangle operations. 6416.It Em \&Smol 6417Enable the overline attribute. 6418.It Em \&Smulx 6419Set a styled underscore. 6420The single parameter is one of: 0 for no underscore, 1 for normal 6421underscore, 2 for double underscore, 3 for curly underscore, 4 for dotted 6422underscore and 5 for dashed underscore. 6423.It Em \&Setulc , \&ol 6424Set the underscore colour or reset to the default. 6425The argument is (red * 65536) + (green * 256) + blue where each is between 0 6426and 255. 6427.It Em \&Ss , Se 6428Set or reset the cursor style. 6429If set, a sequence such as this may be used 6430to change the cursor to an underline: 6431.Bd -literal -offset indent 6432$ printf '\e033[4 q' 6433.Ed 6434.Pp 6435If 6436.Em Se 6437is not set, \&Ss with argument 0 will be used to reset the cursor style instead. 6438.It Em \&Swd 6439Set the opening sequence for the working directory notification. 6440The sequence is terminated using the standard 6441.Em fsl 6442capability. 6443.It Em \&Sync 6444Start (parameter is 1) or end (parameter is 2) a synchronized update. 6445.It Em \&Tc 6446Indicate that the terminal supports the 6447.Ql direct colour 6448RGB escape sequence (for example, \ee[38;2;255;255;255m). 6449.Pp 6450If supported, this is used for the initialize colour escape sequence (which 6451may be enabled by adding the 6452.Ql initc 6453and 6454.Ql ccc 6455capabilities to the 6456.Nm 6457.Xr terminfo 5 6458entry). 6459.Pp 6460This is equivalent to the 6461.Em RGB 6462.Xr terminfo 5 6463capability. 6464.It Em \&Ms 6465Store the current buffer in the host terminal's selection (clipboard). 6466See the 6467.Em set-clipboard 6468option above and the 6469.Xr xterm 1 6470man page. 6471.It Em \&XT 6472This is an existing extension capability that tmux uses to mean that the 6473terminal supports the 6474.Xr xterm 1 6475title set sequences and to automatically set some of the capabilities above. 6476.El 6477.Sh CONTROL MODE 6478.Nm 6479offers a textual interface called 6480.Em control mode . 6481This allows applications to communicate with 6482.Nm 6483using a simple text-only protocol. 6484.Pp 6485In control mode, a client sends 6486.Nm 6487commands or command sequences terminated by newlines on standard input. 6488Each command will produce one block of output on standard output. 6489An output block consists of a 6490.Em %begin 6491line followed by the output (which may be empty). 6492The output block ends with a 6493.Em %end 6494or 6495.Em %error . 6496.Em %begin 6497and matching 6498.Em %end 6499or 6500.Em %error 6501have three arguments: an integer time (as seconds from epoch), command number and 6502flags (currently not used). 6503For example: 6504.Bd -literal -offset indent 6505%begin 1363006971 2 1 65060: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active) 6507%end 1363006971 2 1 6508.Ed 6509.Pp 6510The 6511.Ic refresh-client 6512.Fl C 6513command may be used to set the size of a client in control mode. 6514.Pp 6515In control mode, 6516.Nm 6517outputs notifications. 6518A notification will never occur inside an output block. 6519.Pp 6520The following notifications are defined: 6521.Bl -tag -width Ds 6522.It Ic %client-detached Ar client 6523The client has detached. 6524.It Ic %client-session-changed Ar client session-id name 6525The client is now attached to the session with ID 6526.Ar session-id , 6527which is named 6528.Ar name . 6529.It Ic %continue Ar pane-id 6530The pane has been continued after being paused (if the 6531.Ar pause-after 6532flag is set, see 6533.Ic refresh-client 6534.Fl A ) . 6535.It Ic %exit Op Ar reason 6536The 6537.Nm 6538client is exiting immediately, either because it is not attached to any session 6539or an error occurred. 6540If present, 6541.Ar reason 6542describes why the client exited. 6543.It Ic %extended-output Ar pane-id Ar age Ar ... \& : Ar value 6544New form of 6545.Ic %output 6546sent when the 6547.Ar pause-after 6548flag is set. 6549.Ar age 6550is the time in milliseconds for which tmux had buffered the output before it was sent. 6551Any subsequent arguments up until a single 6552.Ql \&: 6553are for future use and should be ignored. 6554.It Ic %layout-change Ar window-id Ar window-layout Ar window-visible-layout Ar window-flags 6555The layout of a window with ID 6556.Ar window-id 6557changed. 6558The new layout is 6559.Ar window-layout . 6560The window's visible layout is 6561.Ar window-visible-layout 6562and the window flags are 6563.Ar window-flags . 6564.It Ic %output Ar pane-id Ar value 6565A window pane produced output. 6566.Ar value 6567escapes non-printable characters and backslash as octal \\xxx. 6568.It Ic %pane-mode-changed Ar pane-id 6569The pane with ID 6570.Ar pane-id 6571has changed mode. 6572.It Ic %pause Ar pane-id 6573The pane has been paused (if the 6574.Ar pause-after 6575flag is set). 6576.It Ic %session-changed Ar session-id Ar name 6577The client is now attached to the session with ID 6578.Ar session-id , 6579which is named 6580.Ar name . 6581.It Ic %session-renamed Ar name 6582The current session was renamed to 6583.Ar name . 6584.It Ic %session-window-changed Ar session-id Ar window-id 6585The session with ID 6586.Ar session-id 6587changed its active window to the window with ID 6588.Ar window-id . 6589.It Ic %sessions-changed 6590A session was created or destroyed. 6591.It Xo Ic %subscription-changed 6592.Ar name 6593.Ar session-id 6594.Ar window-id 6595.Ar window-index 6596.Ar pane-id ... \& : 6597.Ar value 6598.Xc 6599The value of the format associated with subscription 6600.Ar name 6601has changed to 6602.Ar value . 6603See 6604.Ic refresh-client 6605.Fl B . 6606Any arguments after 6607.Ar pane-id 6608up until a single 6609.Ql \&: 6610are for future use and should be ignored. 6611.It Ic %unlinked-window-add Ar window-id 6612The window with ID 6613.Ar window-id 6614was created but is not linked to the current session. 6615.It Ic %unlinked-window-close Ar window-id 6616The window with ID 6617.Ar window-id , 6618which is not linked to the current session, was closed. 6619.It Ic %unlinked-window-renamed Ar window-id 6620The window with ID 6621.Ar window-id , 6622which is not linked to the current session, was renamed. 6623.It Ic %window-add Ar window-id 6624The window with ID 6625.Ar window-id 6626was linked to the current session. 6627.It Ic %window-close Ar window-id 6628The window with ID 6629.Ar window-id 6630closed. 6631.It Ic %window-pane-changed Ar window-id Ar pane-id 6632The active pane in the window with ID 6633.Ar window-id 6634changed to the pane with ID 6635.Ar pane-id . 6636.It Ic %window-renamed Ar window-id Ar name 6637The window with ID 6638.Ar window-id 6639was renamed to 6640.Ar name . 6641.El 6642.Sh ENVIRONMENT 6643When 6644.Nm 6645is started, it inspects the following environment variables: 6646.Bl -tag -width LC_CTYPE 6647.It Ev EDITOR 6648If the command specified in this variable contains the string 6649.Ql vi 6650and 6651.Ev VISUAL 6652is unset, use vi-style key bindings. 6653Overridden by the 6654.Ic mode-keys 6655and 6656.Ic status-keys 6657options. 6658.It Ev HOME 6659The user's login directory. 6660If unset, the 6661.Xr passwd 5 6662database is consulted. 6663.It Ev LC_CTYPE 6664The character encoding 6665.Xr locale 1 . 6666It is used for two separate purposes. 6667For output to the terminal, UTF-8 is used if the 6668.Fl u 6669option is given or if 6670.Ev LC_CTYPE 6671contains 6672.Qq UTF-8 6673or 6674.Qq UTF8 . 6675Otherwise, only ASCII characters are written and non-ASCII characters 6676are replaced with underscores 6677.Pq Ql _ . 6678For input, 6679.Nm 6680always runs with a UTF-8 locale. 6681If en_US.UTF-8 is provided by the operating system, it is used and 6682.Ev LC_CTYPE 6683is ignored for input. 6684Otherwise, 6685.Ev LC_CTYPE 6686tells 6687.Nm 6688what the UTF-8 locale is called on the current system. 6689If the locale specified by 6690.Ev LC_CTYPE 6691is not available or is not a UTF-8 locale, 6692.Nm 6693exits with an error message. 6694.It Ev LC_TIME 6695The date and time format 6696.Xr locale 1 . 6697It is used for locale-dependent 6698.Xr strftime 3 6699format specifiers. 6700.It Ev PWD 6701The current working directory to be set in the global environment. 6702This may be useful if it contains symbolic links. 6703If the value of the variable does not match the current working 6704directory, the variable is ignored and the result of 6705.Xr getcwd 3 6706is used instead. 6707.It Ev SHELL 6708The absolute path to the default shell for new windows. 6709See the 6710.Ic default-shell 6711option for details. 6712.It Ev TMUX_TMPDIR 6713The parent directory of the directory containing the server sockets. 6714See the 6715.Fl L 6716option for details. 6717.It Ev VISUAL 6718If the command specified in this variable contains the string 6719.Ql vi , 6720use vi-style key bindings. 6721Overridden by the 6722.Ic mode-keys 6723and 6724.Ic status-keys 6725options. 6726.El 6727.Sh FILES 6728.Bl -tag -width "@SYSCONFDIR@/tmux.confXXX" -compact 6729.It Pa ~/.tmux.conf 6730.It Pa $XDG_CONFIG_HOME/tmux/tmux.conf 6731.It Pa ~/.config/tmux/tmux.conf 6732Default 6733.Nm 6734configuration file. 6735.It Pa @SYSCONFDIR@/tmux.conf 6736System-wide configuration file. 6737.El 6738.Sh EXAMPLES 6739To create a new 6740.Nm 6741session running 6742.Xr vi 1 : 6743.Pp 6744.Dl $ tmux new-session vi 6745.Pp 6746Most commands have a shorter form, known as an alias. 6747For new-session, this is 6748.Ic new : 6749.Pp 6750.Dl $ tmux new vi 6751.Pp 6752Alternatively, the shortest unambiguous form of a command is accepted. 6753If there are several options, they are listed: 6754.Bd -literal -offset indent 6755$ tmux n 6756ambiguous command: n, could be: new-session, new-window, next-window 6757.Ed 6758.Pp 6759Within an active session, a new window may be created by typing 6760.Ql C-b c 6761(Ctrl 6762followed by the 6763.Ql b 6764key 6765followed by the 6766.Ql c 6767key). 6768.Pp 6769Windows may be navigated with: 6770.Ql C-b 0 6771(to select window 0), 6772.Ql C-b 1 6773(to select window 1), and so on; 6774.Ql C-b n 6775to select the next window; and 6776.Ql C-b p 6777to select the previous window. 6778.Pp 6779A session may be detached using 6780.Ql C-b d 6781(or by an external event such as 6782.Xr ssh 1 6783disconnection) and reattached with: 6784.Pp 6785.Dl $ tmux attach-session 6786.Pp 6787Typing 6788.Ql C-b \&? 6789lists the current key bindings in the current window; up and down may be used 6790to navigate the list or 6791.Ql q 6792to exit from it. 6793.Pp 6794Commands to be run when the 6795.Nm 6796server is started may be placed in the 6797.Pa ~/.tmux.conf 6798configuration file. 6799Common examples include: 6800.Pp 6801Changing the default prefix key: 6802.Bd -literal -offset indent 6803set-option -g prefix C-a 6804unbind-key C-b 6805bind-key C-a send-prefix 6806.Ed 6807.Pp 6808Turning the status line off, or changing its colour: 6809.Bd -literal -offset indent 6810set-option -g status off 6811set-option -g status-style bg=blue 6812.Ed 6813.Pp 6814Setting other options, such as the default command, 6815or locking after 30 minutes of inactivity: 6816.Bd -literal -offset indent 6817set-option -g default-command "exec /bin/ksh" 6818set-option -g lock-after-time 1800 6819.Ed 6820.Pp 6821Creating new key bindings: 6822.Bd -literal -offset indent 6823bind-key b set-option status 6824bind-key / command-prompt "split-window 'exec man %%'" 6825bind-key S command-prompt "new-window -n %1 'ssh %1'" 6826.Ed 6827.Sh SEE ALSO 6828.Xr pty 4 6829.Sh AUTHORS 6830.An Nicholas Marriott Aq Mt nicholas.marriott@gmail.com 6831