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