1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261 |
- .\" $OpenBSD$
- .\"
- .\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
- .\"
- .\" Permission to use, copy, modify, and distribute this software for any
- .\" purpose with or without fee is hereby granted, provided that the above
- .\" copyright notice and this permission notice appear in all copies.
- .\"
- .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- .\" WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
- .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
- .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- .\"
- .Dd $Mdocdate: March 25 2013 $
- .Dt TMUX 1
- .Os
- .Sh NAME
- .Nm tmux
- .Nd terminal multiplexer
- .Sh SYNOPSIS
- .Nm tmux
- .Bk -words
- .Op Fl 2CluvV
- .Op Fl c Ar shell-command
- .Op Fl f Ar file
- .Op Fl L Ar socket-name
- .Op Fl S Ar socket-path
- .Op Ar command Op Ar flags
- .Ek
- .Sh DESCRIPTION
- .Nm
- is a terminal multiplexer:
- it enables a number of terminals to be created, accessed, and
- controlled from a single screen.
- .Nm
- may be detached from a screen
- and continue running in the background,
- then later reattached.
- .Pp
- When
- .Nm
- is started it creates a new
- .Em session
- with a single
- .Em window
- and displays it on screen.
- A status line at the bottom of the screen
- shows information on the current session
- and is used to enter interactive commands.
- .Pp
- A session is a single collection of
- .Em pseudo terminals
- under the management of
- .Nm .
- Each session has one or more
- windows linked to it.
- A window occupies the entire screen
- and may be split into rectangular panes,
- each of which is a separate pseudo terminal
- (the
- .Xr pty 4
- manual page documents the technical details of pseudo terminals).
- Any number of
- .Nm
- instances may connect to the same session,
- and any number of windows may be present in the same session.
- Once all sessions are killed,
- .Nm
- exits.
- .Pp
- Each session is persistent and will survive accidental disconnection
- (such as
- .Xr ssh 1
- connection timeout) or intentional detaching (with the
- .Ql C-b d
- key strokes).
- .Nm
- may be reattached using:
- .Pp
- .Dl $ tmux attach
- .Pp
- In
- .Nm ,
- a session is displayed on screen by a
- .Em client
- and all sessions are managed by a single
- .Em server .
- The server and each client are separate processes which communicate through a
- socket in
- .Pa /tmp .
- .Pp
- The options are as follows:
- .Bl -tag -width "XXXXXXXXXXXX"
- .It Fl 2
- Force
- .Nm
- to assume the terminal supports 256 colours.
- .It Fl C
- Start in control mode (see the
- .Sx CONTROL MODE
- section).
- Given twice
- .Xo ( Fl CC ) Xc
- disables echo.
- .It Fl c Ar shell-command
- Execute
- .Ar shell-command
- using the default shell.
- If necessary, the
- .Nm
- server will be started to retrieve the
- .Ic default-shell
- option.
- This option is for compatibility with
- .Xr sh 1
- when
- .Nm
- is used as a login shell.
- .It Fl f Ar file
- Specify an alternative configuration file.
- By default,
- .Nm
- loads the system configuration file from
- .Pa @SYSCONFDIR@/tmux.conf ,
- if present, then looks for a user configuration file at
- .Pa ~/.tmux.conf .
- .Pp
- The configuration file is a set of
- .Nm
- commands which are executed in sequence when the server is first started.
- .Nm
- loads configuration files once when the server process has started.
- The
- .Ic source-file
- command may be used to load a file later.
- .Pp
- .Nm
- shows any error messages from commands in configuration files in the first
- session created, and continues to process the rest of the configuration file.
- .It Fl L Ar socket-name
- .Nm
- stores the server socket in a directory under
- .Ev TMUX_TMPDIR
- or
- .Pa /tmp
- if it is unset.
- The default socket is named
- .Em default .
- This option allows a different socket name to be specified, allowing several
- independent
- .Nm
- servers to be run.
- Unlike
- .Fl S
- a full path is not necessary: the sockets are all created in the same
- directory.
- .Pp
- If the socket is accidentally removed, the
- .Dv SIGUSR1
- signal may be sent to the
- .Nm
- server process to recreate it (note that this will fail if any parent
- directories are missing).
- .It Fl l
- Behave as a login shell.
- This flag currently has no effect and is for compatibility with other shells
- when using tmux as a login shell.
- .It Fl S Ar socket-path
- Specify a full alternative path to the server socket.
- If
- .Fl S
- is specified, the default socket directory is not used and any
- .Fl L
- flag is ignored.
- .It Fl u
- .Nm
- attempts to guess if the terminal is likely to support UTF-8 by checking the
- first of the
- .Ev LC_ALL ,
- .Ev LC_CTYPE
- and
- .Ev LANG
- environment variables to be set for the string "UTF-8".
- This is not always correct: the
- .Fl u
- flag explicitly informs
- .Nm
- that UTF-8 is supported.
- .Pp
- Note that
- .Nm
- itself always accepts UTF-8; this controls whether it will send UTF-8
- characters to the terminal it is running (if not, they are replaced by
- .Ql _ ) .
- .It Fl v
- Request verbose logging.
- This option may be specified multiple times for increasing verbosity.
- Log messages will be saved into
- .Pa tmux-client-PID.log
- and
- .Pa tmux-server-PID.log
- files in the current directory, where
- .Em PID
- is the PID of the server or client process.
- .It Fl V
- Report the
- .Nm
- version.
- .It Ar command Op Ar flags
- This specifies one of a set of commands used to control
- .Nm ,
- as described in the following sections.
- If no commands are specified, the
- .Ic new-session
- command is assumed.
- .El
- .Sh KEY BINDINGS
- .Nm
- may be controlled from an attached client by using a key combination of a
- prefix key,
- .Ql C-b
- (Ctrl-b) by default, followed by a command key.
- .Pp
- The default command key bindings are:
- .Pp
- .Bl -tag -width "XXXXXXXXXX" -offset indent -compact
- .It C-b
- Send the prefix key (C-b) through to the application.
- .It C-o
- Rotate the panes in the current window forwards.
- .It C-z
- Suspend the
- .Nm
- client.
- .It !
- Break the current pane out of the window.
- .It \&"
- Split the current pane into two, top and bottom.
- .It #
- List all paste buffers.
- .It $
- Rename the current session.
- .It %
- Split the current pane into two, left and right.
- .It &
- Kill the current window.
- .It '
- Prompt for a window index to select.
- .It \&(
- Switch the attached client to the previous session.
- .It \&)
- Switch the attached client to the next session.
- .It ,
- Rename the current window.
- .It -
- Delete the most recently copied buffer of text.
- .It .
- Prompt for an index to move the current window.
- .It 0 to 9
- Select windows 0 to 9.
- .It :
- Enter the
- .Nm
- command prompt.
- .It ;
- Move to the previously active pane.
- .It =
- Choose which buffer to paste interactively from a list.
- .It \&?
- List all key bindings.
- .It D
- Choose a client to detach.
- .It L
- Switch the attached client back to the last session.
- .It \&[
- Enter copy mode to copy text or view the history.
- .It \&]
- Paste the most recently copied buffer of text.
- .It c
- Create a new window.
- .It d
- Detach the current client.
- .It f
- Prompt to search for text in open windows.
- .It i
- Display some information about the current window.
- .It l
- Move to the previously selected window.
- .It n
- Change to the next window.
- .It o
- Select the next pane in the current window.
- .It p
- Change to the previous window.
- .It q
- Briefly display pane indexes.
- .It r
- Force redraw of the attached client.
- .It m
- Mark the current pane (see
- .Ic select-pane
- .Fl m ) .
- .It M
- Clear the marked pane.
- .It s
- Select a new session for the attached client interactively.
- .It t
- Show the time.
- .It w
- Choose the current window interactively.
- .It x
- Kill the current pane.
- .It z
- Toggle zoom state of the current pane.
- .It {
- Swap the current pane with the previous pane.
- .It }
- Swap the current pane with the next pane.
- .It ~
- Show previous messages from
- .Nm ,
- if any.
- .It Page Up
- Enter copy mode and scroll one page up.
- .It Up, Down
- .It Left, Right
- Change to the pane above, below, to the left, or to the right of the current
- pane.
- .It M-1 to M-5
- Arrange panes in one of the five preset layouts: even-horizontal,
- even-vertical, main-horizontal, main-vertical, or tiled.
- .It Space
- Arrange the current window in the next preset layout.
- .It M-n
- Move to the next window with a bell or activity marker.
- .It M-o
- Rotate the panes in the current window backwards.
- .It M-p
- Move to the previous window with a bell or activity marker.
- .It C-Up, C-Down
- .It C-Left, C-Right
- Resize the current pane in steps of one cell.
- .It M-Up, M-Down
- .It M-Left, M-Right
- Resize the current pane in steps of five cells.
- .El
- .Pp
- Key bindings may be changed with the
- .Ic bind-key
- and
- .Ic unbind-key
- commands.
- .Sh COMMANDS
- This section contains a list of the commands supported by
- .Nm .
- Most commands accept the optional
- .Fl t
- (and sometimes
- .Fl s )
- argument with one of
- .Ar target-client ,
- .Ar target-session
- .Ar target-window ,
- or
- .Ar target-pane .
- These specify the client, session, window or pane which a command should affect.
- .Pp
- .Ar target-client
- is the name of the
- .Xr pty 4
- file to which the client is connected, for example either of
- .Pa /dev/ttyp1
- or
- .Pa ttyp1
- for the client attached to
- .Pa /dev/ttyp1 .
- If no client is specified,
- .Nm
- attempts to work out the client currently in use; if that fails, an error is
- reported.
- Clients may be listed with the
- .Ic list-clients
- command.
- .Pp
- .Ar target-session
- is tried as, in order:
- .Bl -enum -offset Ds
- .It
- A session ID prefixed with a $.
- .It
- An exact name of a session (as listed by the
- .Ic list-sessions
- command).
- .It
- The start of a session name, for example
- .Ql mysess
- would match a session named
- .Ql mysession .
- .It
- An
- .Xr fnmatch 3
- pattern which is matched against the session name.
- .El
- .Pp
- If the session name is prefixed with an
- .Ql = ,
- only an exact match is accepted (so
- .Ql =mysess
- will only match exactly
- .Ql mysess ,
- not
- .Ql mysession ) .
- .Pp
- If a single session is found, it is used as the target session; multiple matches
- produce an error.
- If a session is omitted, the current session is used if available; if no
- current session is available, the most recently used is chosen.
- .Pp
- .Ar target-window
- (or
- .Ar src-window
- or
- .Ar dst-window )
- specifies a window in the form
- .Em session Ns \&: Ns Em window .
- .Em session
- follows the same rules as for
- .Ar target-session ,
- and
- .Em window
- is looked for in order as:
- .Bl -enum -offset Ds
- .It
- A special token, listed below.
- .It
- A window index, for example
- .Ql mysession:1
- is window 1 in session
- .Ql mysession .
- .It
- A window ID, such as @1.
- .It
- An exact window name, such as
- .Ql mysession:mywindow .
- .It
- The start of a window name, such as
- .Ql mysession:mywin .
- .It
- As an
- .Xr fnmatch 3
- pattern matched against the window name.
- .El
- .Pp
- Like sessions, a
- .Ql =
- prefix will do an exact match only.
- An empty window name specifies the next unused index if appropriate (for
- example the
- .Ic new-window
- and
- .Ic link-window
- commands)
- otherwise the current window in
- .Em session
- is chosen.
- .Pp
- The following special tokens are available to indicate particular windows.
- Each has a single-character alternative form.
- .Bl -column "XXXXXXXXXX" "X"
- .It Sy "Token" Ta Sy "" Ta Sy "Meaning"
- .It Li "{start}" Ta "^" Ta "The lowest-numbered window"
- .It Li "{end}" Ta "$" Ta "The highest-numbered window"
- .It Li "{last}" Ta "!" Ta "The last (previously current) window"
- .It Li "{next}" Ta "+" Ta "The next window by number"
- .It Li "{previous}" Ta "-" Ta "The previous window by number"
- .El
- .Pp
- .Ar target-pane
- (or
- .Ar src-pane
- or
- .Ar dst-pane )
- may be a pane ID or takes a similar form to
- .Ar target-window
- but with the optional addition of a period followed by a pane index or pane ID,
- for example:
- .Ql mysession:mywindow.1 .
- If the pane index is omitted, the currently active pane in the specified
- window is used.
- The following special tokens are available for the pane index:
- .Bl -column "XXXXXXXXXXXXXX" "X"
- .It Sy "Token" Ta Sy "" Ta Sy "Meaning"
- .It Li "{last}" Ta "!" Ta "The last (previously active) pane"
- .It Li "{next}" Ta "+" Ta "The next pane by number"
- .It Li "{previous}" Ta "-" Ta "The previous pane by number"
- .It Li "{top}" Ta "" Ta "The top pane"
- .It Li "{bottom}" Ta "" Ta "The bottom pane"
- .It Li "{left}" Ta "" Ta "The leftmost pane"
- .It Li "{right}" Ta "" Ta "The rightmost pane"
- .It Li "{top-left}" Ta "" Ta "The top-left pane"
- .It Li "{top-right}" Ta "" Ta "The top-right pane"
- .It Li "{bottom-left}" Ta "" Ta "The bottom-left pane"
- .It Li "{bottom-right}" Ta "" Ta "The bottom-right pane"
- .It Li "{up-of}" Ta "" Ta "The pane above the active pane"
- .It Li "{down-of}" Ta "" Ta "The pane below the active pane"
- .It Li "{left-of}" Ta "" Ta "The pane to the left of the active pane"
- .It Li "{right-of}" Ta "" Ta "The pane to the right of the active pane"
- .El
- .Pp
- The tokens
- .Ql +
- and
- .Ql -
- may be followed by an offset, for example:
- .Bd -literal -offset indent
- select-window -t:+2
- .Ed
- .Pp
- In addition,
- .Em target-session ,
- .Em target-window
- or
- .Em target-pane
- may consist entirely of the token
- .Ql {mouse}
- (alternative form
- .Ql = )
- to specify the most recent mouse event
- (see the
- .Sx MOUSE SUPPORT
- section)
- or
- .Ql {marked}
- (alternative form
- .Ql ~ )
- to specify the marked pane (see
- .Ic select-pane
- .Fl m ) .
- .Pp
- Sessions, window and panes are each numbered with a unique ID; session IDs are
- prefixed with a
- .Ql $ ,
- windows with a
- .Ql @ ,
- and panes with a
- .Ql % .
- These are unique and are unchanged for the life of the session, window or pane
- in the
- .Nm
- server.
- The pane ID is passed to the child process of the pane in the
- .Ev TMUX_PANE
- environment variable.
- IDs may be displayed using the
- .Ql session_id ,
- .Ql window_id ,
- or
- .Ql pane_id
- formats (see the
- .Sx FORMATS
- section) and the
- .Ic display-message ,
- .Ic list-sessions ,
- .Ic list-windows
- or
- .Ic list-panes
- commands.
- .Pp
- .Ar shell-command
- arguments are
- .Xr sh 1
- commands.
- This may be a single argument passed to the shell, for example:
- .Bd -literal -offset indent
- new-window 'vi /etc/passwd'
- .Ed
- .Pp
- Will run:
- .Bd -literal -offset indent
- /bin/sh -c 'vi /etc/passwd'
- .Ed
- .Pp
- Additionally, the
- .Ic new-window ,
- .Ic new-session ,
- .Ic split-window ,
- .Ic respawn-window
- and
- .Ic respawn-pane
- commands allow
- .Ar shell-command
- to be given as multiple arguments and executed directly (without
- .Ql sh -c ) .
- This can avoid issues with shell quoting.
- For example:
- .Bd -literal -offset indent
- $ tmux new-window vi /etc/passwd
- .Ed
- .Pp
- Will run
- .Xr vi 1
- directly without invoking the shell.
- .Pp
- .Ar command
- .Op Ar arguments
- refers to a
- .Nm
- command, passed with the command and arguments separately, for example:
- .Bd -literal -offset indent
- bind-key F1 set-window-option force-width 81
- .Ed
- .Pp
- Or if using
- .Xr sh 1 :
- .Bd -literal -offset indent
- $ tmux bind-key F1 set-window-option force-width 81
- .Ed
- .Pp
- Multiple commands may be specified together as part of a
- .Em command sequence .
- Each command should be separated by spaces and a semicolon;
- commands are executed sequentially from left to right and
- lines ending with a backslash continue on to the next line,
- except when escaped by another backslash.
- A literal semicolon may be included by escaping it with a backslash (for
- example, when specifying a command sequence to
- .Ic bind-key ) .
- .Pp
- Example
- .Nm
- commands include:
- .Bd -literal -offset indent
- refresh-client -t/dev/ttyp2
- rename-session -tfirst newname
- set-window-option -t:0 monitor-activity on
- new-window ; split-window -d
- bind-key R source-file ~/.tmux.conf \e; \e
- display-message "source-file done"
- .Ed
- .Pp
- Or from
- .Xr sh 1 :
- .Bd -literal -offset indent
- $ tmux kill-window -t :1
- $ tmux new-window \e; split-window -d
- $ tmux new-session -d 'vi /etc/passwd' \e; split-window -d \e; attach
- .Ed
- .Sh CLIENTS AND SESSIONS
- The
- .Nm
- server manages clients, sessions, windows and panes.
- Clients are attached to sessions to interact with them, either
- when they are created with the
- .Ic new-session
- command, or later with the
- .Ic attach-session
- command.
- Each session has one or more windows
- .Em linked
- into it.
- Windows may be linked to multiple sessions and are made up of one or
- more panes,
- each of which contains a pseudo terminal.
- Commands for creating, linking and otherwise manipulating windows
- are covered
- in the
- .Sx WINDOWS AND PANES
- section.
- .Pp
- The following commands are available to manage clients and sessions:
- .Bl -tag -width Ds
- .It Xo Ic attach-session
- .Op Fl dEr
- .Op Fl c Ar working-directory
- .Op Fl t Ar target-session
- .Xc
- .D1 (alias: Ic attach )
- If run from outside
- .Nm ,
- create a new client in the current terminal and attach it to
- .Ar target-session .
- If used from inside, switch the current client.
- If
- .Fl d
- is specified, any other clients attached to the session are detached.
- .Fl r
- signifies the client is read-only (only keys bound to the
- .Ic detach-client
- or
- .Ic switch-client
- commands have any effect)
- .Pp
- If no server is started,
- .Ic attach-session
- will attempt to start it; this will fail unless sessions are created in the
- configuration file.
- .Pp
- The
- .Ar target-session
- rules for
- .Ic attach-session
- are slightly adjusted: if
- .Nm
- needs to select the most recently used session, it will prefer the most
- recently used
- .Em unattached
- session.
- .Pp
- .Fl c
- will set the session working directory (used for new windows) to
- .Ar working-directory .
- .Pp
- If
- .Fl E
- is used, the
- .Ic update-environment
- option will not be applied.
- .It Xo Ic detach-client
- .Op Fl aP
- .Op Fl s Ar target-session
- .Op Fl t Ar target-client
- .Xc
- .D1 (alias: Ic detach )
- Detach the current client if bound to a key, the client specified with
- .Fl t ,
- or all clients currently attached to the session specified by
- .Fl s .
- The
- .Fl a
- option kills all but the client given with
- .Fl t .
- If
- .Fl P
- is given, send SIGHUP to the parent process of the client, typically causing it
- to exit.
- .It Ic has-session Op Fl t Ar target-session
- .D1 (alias: Ic has )
- Report an error and exit with 1 if the specified session does not exist.
- If it does exist, exit with 0.
- .It Ic kill-server
- Kill the
- .Nm
- server and clients and destroy all sessions.
- .It Xo Ic kill-session
- .Op Fl aC
- .Op Fl t Ar target-session
- .Xc
- Destroy the given session, closing any windows linked to it and no other
- sessions, and detaching all clients attached to it.
- If
- .Fl a
- is given, all sessions but the specified one is killed.
- The
- .Fl C
- flag clears alerts (bell, activity, or silence) in all windows linked to the
- session.
- .It Xo Ic list-clients
- .Op Fl F Ar format
- .Op Fl t Ar target-session
- .Xc
- .D1 (alias: Ic lsc )
- List all clients attached to the server.
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- If
- .Ar target-session
- is specified, list only clients connected to that session.
- .It Ic list-commands
- .D1 (alias: Ic lscm )
- List the syntax of all commands supported by
- .Nm .
- .It Ic list-sessions Op Fl F Ar format
- .D1 (alias: Ic ls )
- List all sessions managed by the server.
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- .It Ic lock-client Op Fl t Ar target-client
- .D1 (alias: Ic lockc )
- Lock
- .Ar target-client ,
- see the
- .Ic lock-server
- command.
- .It Ic lock-session Op Fl t Ar target-session
- .D1 (alias: Ic locks )
- Lock all clients attached to
- .Ar target-session .
- .It Xo Ic new-session
- .Op Fl AdDEP
- .Op Fl c Ar start-directory
- .Op Fl F Ar format
- .Op Fl n Ar window-name
- .Op Fl s Ar session-name
- .Op Fl t Ar target-session
- .Op Fl x Ar width
- .Op Fl y Ar height
- .Op Ar shell-command
- .Xc
- .D1 (alias: Ic new )
- Create a new session with name
- .Ar session-name .
- .Pp
- The new session is attached to the current terminal unless
- .Fl d
- is given.
- .Ar window-name
- and
- .Ar shell-command
- are the name of and shell command to execute in the initial window.
- If
- .Fl d
- is used,
- .Fl x
- and
- .Fl y
- specify the size of the initial window (80 by 24 if not given).
- .Pp
- If run from a terminal, any
- .Xr termios 4
- special characters are saved and used for new windows in the new session.
- .Pp
- The
- .Fl A
- flag makes
- .Ic new-session
- behave like
- .Ic attach-session
- if
- .Ar session-name
- already exists; in this case,
- .Fl D
- behaves like
- .Fl d
- to
- .Ic attach-session .
- .Pp
- If
- .Fl t
- is given, the new session is
- .Em grouped
- with
- .Ar target-session .
- This means they share the same set of windows - all windows from
- .Ar target-session
- are linked to the new session, any new windows are linked to both sessions and
- any windows closed removed from both sessions.
- The current and previous window and any session options remain independent and
- either session may be killed without affecting the other.
- .Fl n
- and
- .Ar shell-command
- are invalid if
- .Fl t
- is used.
- .Pp
- The
- .Fl P
- option prints information about the new session after it has been created.
- By default, it uses the format
- .Ql #{session_name}:
- but a different format may be specified with
- .Fl F .
- .Pp
- If
- .Fl E
- is used, the
- .Ic update-environment
- option will not be applied.
- .It Xo Ic refresh-client
- .Op Fl S
- .Op Fl t Ar target-client
- .Xc
- .D1 (alias: Ic refresh )
- Refresh the current client if bound to a key, or a single client if one is given
- with
- .Fl t .
- If
- .Fl S
- is specified, only update the client's status bar.
- .It Xo Ic rename-session
- .Op Fl t Ar target-session
- .Ar new-name
- .Xc
- .D1 (alias: Ic rename )
- Rename the session to
- .Ar new-name .
- .It Xo Ic show-messages
- .Op Fl JT
- .Op Fl t Ar target-client
- .Xc
- .D1 (alias: Ic showmsgs )
- Show client messages or server information.
- Any messages displayed on the status line are saved in a per-client message
- log, up to a maximum of the limit set by the
- .Ar message-limit
- server option.
- With
- .Fl t ,
- display the log for
- .Ar target-client .
- .Fl J
- and
- .Fl T
- show debugging information about jobs and terminals.
- .It Ic source-file Ar path
- .D1 (alias: Ic source )
- Execute commands from
- .Ar path .
- .It Ic start-server
- .D1 (alias: Ic start )
- Start the
- .Nm
- server, if not already running, without creating any sessions.
- .It Xo Ic suspend-client
- .Op Fl t Ar target-client
- .Xc
- .D1 (alias: Ic suspendc )
- Suspend a client by sending
- .Dv SIGTSTP
- (tty stop).
- .It Xo Ic switch-client
- .Op Fl Elnpr
- .Op Fl c Ar target-client
- .Op Fl t Ar target-session
- .Op Fl T Ar key-table
- .Xc
- .D1 (alias: Ic switchc )
- Switch the current session for client
- .Ar target-client
- to
- .Ar target-session .
- If
- .Fl l ,
- .Fl n
- or
- .Fl p
- is used, the client is moved to the last, next or previous session
- respectively.
- .Fl r
- toggles whether a client is read-only (see the
- .Ic attach-session
- command).
- .Pp
- If
- .Fl E
- is used,
- .Ic update-environment
- option will not be applied.
- .Pp
- .Fl T
- sets the client's key table; the next key from the client will be interpreted from
- .Ar key-table .
- This may be used to configure multiple prefix keys, or to bind commands to
- sequences of keys.
- For example, to make typing
- .Ql abc
- run the
- .Ic list-keys
- command:
- .Bd -literal -offset indent
- bind-key -Ttable2 c list-keys
- bind-key -Ttable1 b switch-client -Ttable2
- bind-key -Troot a switch-client -Ttable1
- .Ed
- .El
- .Sh WINDOWS AND PANES
- A
- .Nm
- window may be in one of several modes.
- The default permits direct access to the terminal attached to the window.
- The other is copy mode, which permits a section of a window or its
- history to be copied to a
- .Em paste buffer
- for later insertion into another window.
- This mode is entered with the
- .Ic copy-mode
- command, bound to
- .Ql \&[
- by default.
- It is also entered when a command that produces output, such as
- .Ic list-keys ,
- is executed from a key binding.
- .Pp
- The keys available depend on whether emacs or vi mode is selected
- (see the
- .Ic mode-keys
- option).
- The following keys are supported as appropriate for the mode:
- .Bl -column "FunctionXXXXXXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent
- .It Sy "Function" Ta Sy "vi" Ta Sy "emacs"
- .It Li "Append selection" Ta "A" Ta ""
- .It Li "Back to indentation" Ta "^" Ta "M-m"
- .It Li "Bottom of history" Ta "G" Ta "M-<"
- .It Li "Clear selection" Ta "Escape" Ta "C-g"
- .It Li "Copy selection" Ta "Enter" Ta "M-w"
- .It Li "Copy to named buffer" Ta \&" Ta ""
- .It Li "Cursor down" Ta "j" Ta "Down"
- .It Li "Cursor left" Ta "h" Ta "Left"
- .It Li "Cursor right" Ta "l" Ta "Right"
- .It Li "Cursor to bottom line" Ta "L" Ta ""
- .It Li "Cursor to middle line" Ta "M" Ta "M-r"
- .It Li "Cursor to top line" Ta "H" Ta "M-R"
- .It Li "Cursor up" Ta "k" Ta "Up"
- .It Li "Delete entire line" Ta "d" Ta "C-u"
- .It Li "Delete/Copy to end of line" Ta "D" Ta "C-k"
- .It Li "End of line" Ta "$" Ta "C-e"
- .It Li "Go to line" Ta ":" Ta "g"
- .It Li "Half page down" Ta "C-d" Ta "M-Down"
- .It Li "Half page up" Ta "C-u" Ta "M-Up"
- .It Li "Jump again" Ta ";" Ta ";"
- .It Li "Jump again in reverse" Ta "," Ta ","
- .It Li "Jump backward" Ta "F" Ta "F"
- .It Li "Jump forward" Ta "f" Ta "f"
- .It Li "Jump to backward" Ta "T" Ta ""
- .It Li "Jump to forward" Ta "t" Ta ""
- .It Li "Next page" Ta "C-f" Ta "Page down"
- .It Li "Next space" Ta "W" Ta ""
- .It Li "Next space, end of word" Ta "E" Ta ""
- .It Li "Next word" Ta "w" Ta ""
- .It Li "Next word end" Ta "e" Ta "M-f"
- .It Li "Other end of selection" Ta "o" Ta ""
- .It Li "Paste buffer" Ta "p" Ta "C-y"
- .It Li "Previous page" Ta "C-b" Ta "Page up"
- .It Li "Previous space" Ta "B" Ta ""
- .It Li "Previous word" Ta "b" Ta "M-b"
- .It Li "Quit mode" Ta "q" Ta "Escape"
- .It Li "Rectangle toggle" Ta "v" Ta "R"
- .It Li "Scroll down" Ta "C-Down or C-e" Ta "C-Down"
- .It Li "Scroll up" Ta "C-Up or C-y" Ta "C-Up"
- .It Li "Search again" Ta "n" Ta "n"
- .It Li "Search again in reverse" Ta "N" Ta "N"
- .It Li "Search backward" Ta "?" Ta "C-r"
- .It Li "Search forward" Ta "/" Ta "C-s"
- .It Li "Select line" Ta "V" Ta ""
- .It Li "Start of line" Ta "0" Ta "C-a"
- .It Li "Start selection" Ta "Space" Ta "C-Space"
- .It Li "Top of history" Ta "g" Ta "M->"
- .It Li "Transpose characters" Ta "" Ta "C-t"
- .El
- .Pp
- The next and previous word keys use space and the
- .Ql - ,
- .Ql _
- and
- .Ql @
- characters as word delimiters by default, but this can be adjusted by
- setting the
- .Em word-separators
- session option.
- Next word moves to the start of the next word, next word end to the end of the
- next word and previous word to the start of the previous word.
- The three next and previous space keys work similarly but use a space alone as
- the word separator.
- .Pp
- The jump commands enable quick movement within a line.
- For instance, typing
- .Ql f
- followed by
- .Ql /
- will move the cursor to the next
- .Ql /
- character on the current line.
- A
- .Ql \&;
- will then jump to the next occurrence.
- .Pp
- Commands in copy mode may be prefaced by an optional repeat count.
- With vi key bindings, a prefix is entered using the number keys; with
- emacs, the Alt (meta) key and a number begins prefix entry.
- For example, to move the cursor forward by ten words, use
- .Ql M-1 0 M-f
- in emacs mode, and
- .Ql 10w
- in vi.
- .Pp
- Mode key bindings are defined in a set of named tables:
- .Em vi-edit
- and
- .Em emacs-edit
- for keys used when line editing at the command prompt;
- .Em vi-choice
- and
- .Em emacs-choice
- for keys used when choosing from lists (such as produced by the
- .Ic choose-window
- command); and
- .Em vi-copy
- and
- .Em emacs-copy
- used in copy mode.
- The tables may be viewed with the
- .Ic list-keys
- command and keys modified or removed with
- .Ic bind-key
- and
- .Ic unbind-key .
- If
- .Ic append-selection ,
- .Ic copy-selection ,
- or
- .Ic start-named-buffer
- are given the
- .Fl x
- flag,
- .Nm
- will not exit copy mode after copying.
- .Ic copy-pipe
- copies the selection and pipes it to a command.
- For example the following will bind
- .Ql C-w
- not to exit after copying and
- .Ql C-q
- to copy the selection into
- .Pa /tmp
- as well as the paste buffer:
- .Bd -literal -offset indent
- bind-key -temacs-copy C-w copy-selection -x
- bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"
- .Ed
- .Pp
- The paste buffer key pastes the first line from the top paste buffer on the
- stack.
- .Pp
- The synopsis for the
- .Ic copy-mode
- command is:
- .Bl -tag -width Ds
- .It Xo Ic copy-mode
- .Op Fl Meu
- .Op Fl t Ar target-pane
- .Xc
- Enter copy mode.
- The
- .Fl u
- option scrolls one page up.
- .Fl M
- begins a mouse drag (only valid if bound to a mouse key binding, see
- .Sx MOUSE SUPPORT ) .
- .Fl e
- specifies that scrolling to the bottom of the history (to the visible screen)
- should exit copy mode.
- While in copy mode, pressing a key other than those used for scrolling will
- disable this behaviour.
- This is intended to allow fast scrolling through a pane's history, for
- example with:
- .Bd -literal -offset indent
- bind PageUp copy-mode -eu
- .Ed
- .El
- .Pp
- Each window displayed by
- .Nm
- may be split into one or more
- .Em panes ;
- each pane takes up a certain area of the display and is a separate terminal.
- A window may be split into panes using the
- .Ic split-window
- command.
- Windows may be split horizontally (with the
- .Fl h
- flag) or vertically.
- Panes may be resized with the
- .Ic resize-pane
- command (bound to
- .Ql C-up ,
- .Ql C-down
- .Ql C-left
- and
- .Ql C-right
- by default), the current pane may be changed with the
- .Ic select-pane
- command and the
- .Ic rotate-window
- and
- .Ic swap-pane
- commands may be used to swap panes without changing their position.
- Panes are numbered beginning from zero in the order they are created.
- .Pp
- A number of preset
- .Em layouts
- are available.
- These may be selected with the
- .Ic select-layout
- command or cycled with
- .Ic next-layout
- (bound to
- .Ql Space
- by default); once a layout is chosen, panes within it may be moved and resized
- as normal.
- .Pp
- The following layouts are supported:
- .Bl -tag -width Ds
- .It Ic even-horizontal
- Panes are spread out evenly from left to right across the window.
- .It Ic even-vertical
- Panes are spread evenly from top to bottom.
- .It Ic main-horizontal
- A large (main) pane is shown at the top of the window and the remaining panes
- are spread from left to right in the leftover space at the bottom.
- Use the
- .Em main-pane-height
- window option to specify the height of the top pane.
- .It Ic main-vertical
- Similar to
- .Ic main-horizontal
- but the large pane is placed on the left and the others spread from top to
- bottom along the right.
- See the
- .Em main-pane-width
- window option.
- .It Ic tiled
- Panes are spread out as evenly as possible over the window in both rows and
- columns.
- .El
- .Pp
- In addition,
- .Ic select-layout
- may be used to apply a previously used layout - the
- .Ic list-windows
- command displays the layout of each window in a form suitable for use with
- .Ic select-layout .
- For example:
- .Bd -literal -offset indent
- $ tmux list-windows
- 0: ksh [159x48]
- layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0}
- $ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0}
- .Ed
- .Pp
- .Nm
- automatically adjusts the size of the layout for the current window size.
- Note that a layout cannot be applied to a window with more panes than that
- from which the layout was originally defined.
- .Pp
- Commands related to windows and panes are as follows:
- .Bl -tag -width Ds
- .It Xo Ic break-pane
- .Op Fl dP
- .Op Fl F Ar format
- .Op Fl s Ar src-pane
- .Op Fl t Ar dst-window
- .Xc
- .D1 (alias: Ic breakp )
- Break
- .Ar src-pane
- off from its containing window to make it the only pane in
- .Ar dst-window .
- If
- .Fl d
- is given, the new window does not become the current window.
- The
- .Fl P
- option prints information about the new window after it has been created.
- By default, it uses the format
- .Ql #{session_name}:#{window_index}
- but a different format may be specified with
- .Fl F .
- .It Xo Ic capture-pane
- .Op Fl aepPq
- .Op Fl b Ar buffer-name
- .Op Fl E Ar end-line
- .Op Fl S Ar start-line
- .Op Fl t Ar target-pane
- .Xc
- .D1 (alias: Ic capturep )
- Capture the contents of a pane.
- If
- .Fl p
- is given, the output goes to stdout, otherwise to the buffer specified with
- .Fl b
- or a new buffer if omitted.
- If
- .Fl a
- is given, the alternate screen is used, and the history is not accessible.
- If no alternate screen exists, an error will be returned unless
- .Fl q
- is given.
- If
- .Fl e
- is given, the output includes escape sequences for text and background
- attributes.
- .Fl C
- also escapes non-printable characters as octal \exxx.
- .Fl J
- joins wrapped lines and preserves trailing spaces at each line's end.
- .Fl P
- captures only any output that the pane has received that is the beginning of an
- as-yet incomplete escape sequence.
- .Pp
- .Fl S
- and
- .Fl E
- specify the starting and ending line numbers, zero is the first line of the
- visible pane and negative numbers are lines in the history.
- .Ql -
- to
- .Fl S
- is the start of the history and to
- .Fl E
- the end of the visible pane.
- The default is to capture only the visible contents of the pane.
- .It Xo
- .Ic choose-client
- .Op Fl F Ar format
- .Op Fl t Ar target-window
- .Op Ar template
- .Xc
- Put a window into client choice mode, allowing a client to be selected
- interactively from a list.
- After a client is chosen,
- .Ql %%
- is replaced by the client
- .Xr pty 4
- path in
- .Ar template
- and the result executed as a command.
- If
- .Ar template
- is not given, "detach-client -t '%%'" is used.
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- This command works only if at least one client is attached.
- .It Xo
- .Ic choose-session
- .Op Fl F Ar format
- .Op Fl t Ar target-window
- .Op Ar template
- .Xc
- Put a window into session choice mode, where a session may be selected
- interactively from a list.
- When one is chosen,
- .Ql %%
- is replaced by the session name in
- .Ar template
- and the result executed as a command.
- If
- .Ar template
- is not given, "switch-client -t '%%'" is used.
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- This command works only if at least one client is attached.
- .It Xo
- .Ic choose-tree
- .Op Fl suw
- .Op Fl b Ar session-template
- .Op Fl c Ar window-template
- .Op Fl S Ar format
- .Op Fl W Ar format
- .Op Fl t Ar target-window
- .Xc
- Put a window into tree choice mode, where either sessions or windows may be
- selected interactively from a list.
- By default, windows belonging to a session are indented to show their
- relationship to a session.
- .Pp
- Note that the
- .Ic choose-window
- and
- .Ic choose-session
- commands are wrappers around
- .Ic choose-tree .
- .Pp
- If
- .Fl s
- is given, will show sessions.
- If
- .Fl w
- is given, will show windows.
- .Pp
- By default, the tree is collapsed and sessions must be expanded to windows
- with the right arrow key.
- The
- .Fl u
- option will start with all sessions expanded instead.
- .Pp
- If
- .Fl b
- is given, will override the default session command.
- Note that
- .Ql %%
- can be used and will be replaced with the session name.
- The default option if not specified is "switch-client -t '%%'".
- If
- .Fl c
- is given, will override the default window command.
- Like
- .Fl b ,
- .Ql %%
- can be used and will be replaced with the session name and window index.
- When a window is chosen from the list, the session command is run before the
- window command.
- .Pp
- If
- .Fl S
- is given will display the specified format instead of the default session
- format.
- If
- .Fl W
- is given will display the specified format instead of the default window
- format.
- For the meaning of the
- .Fl s
- and
- .Fl w
- options, see the
- .Sx FORMATS
- section.
- .Pp
- This command works only if at least one client is attached.
- .It Xo
- .Ic choose-window
- .Op Fl F Ar format
- .Op Fl t Ar target-window
- .Op Ar template
- .Xc
- Put a window into window choice mode, where a window may be chosen
- interactively from a list.
- After a window is selected,
- .Ql %%
- is replaced by the session name and window index in
- .Ar template
- and the result executed as a command.
- If
- .Ar template
- is not given, "select-window -t '%%'" is used.
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- This command works only if at least one client is attached.
- .It Ic display-panes Op Fl t Ar target-client
- .D1 (alias: Ic displayp )
- Display a visible indicator of each pane shown by
- .Ar target-client .
- See the
- .Ic display-panes-time ,
- .Ic display-panes-colour ,
- and
- .Ic display-panes-active-colour
- session options.
- While the indicator is on screen, a pane may be selected with the
- .Ql 0
- to
- .Ql 9
- keys.
- .It Xo Ic find-window
- .Op Fl CNT
- .Op Fl F Ar format
- .Op Fl t Ar target-window
- .Ar match-string
- .Xc
- .D1 (alias: Ic findw )
- Search for the
- .Xr fnmatch 3
- pattern
- .Ar match-string
- in window names, titles, and visible content (but not history).
- The flags control matching behavior:
- .Fl C
- matches only visible window contents,
- .Fl N
- matches only the window name and
- .Fl T
- matches only the window title.
- The default is
- .Fl CNT .
- If only one window is matched, it'll be automatically selected,
- otherwise a choice list is shown.
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- This command works only if at least one client is attached.
- .It Xo Ic join-pane
- .Op Fl bdhv
- .Oo Fl l
- .Ar size |
- .Fl p Ar percentage Oc
- .Op Fl s Ar src-pane
- .Op Fl t Ar dst-pane
- .Xc
- .D1 (alias: Ic joinp )
- Like
- .Ic split-window ,
- but instead of splitting
- .Ar dst-pane
- and creating a new pane, split it and move
- .Ar src-pane
- into the space.
- This can be used to reverse
- .Ic break-pane .
- The
- .Fl b
- option causes
- .Ar src-pane
- to be joined to left of or above
- .Ar dst-pane .
- .Pp
- If
- .Fl s
- is omitted and a marked pane is present (see
- .Ic select-pane
- .Fl m ) ,
- the marked pane is used rather than the current pane.
- .It Xo Ic kill-pane
- .Op Fl a
- .Op Fl t Ar target-pane
- .Xc
- .D1 (alias: Ic killp )
- Destroy the given pane.
- If no panes remain in the containing window, it is also destroyed.
- The
- .Fl a
- option kills all but the pane given with
- .Fl t .
- .It Xo Ic kill-window
- .Op Fl a
- .Op Fl t Ar target-window
- .Xc
- .D1 (alias: Ic killw )
- Kill the current window or the window at
- .Ar target-window ,
- removing it from any sessions to which it is linked.
- The
- .Fl a
- option kills all but the window given with
- .Fl t .
- .It Xo Ic last-pane
- .Op Fl de
- .Op Fl t Ar target-window
- .Xc
- .D1 (alias: Ic lastp )
- Select the last (previously selected) pane.
- .Fl e
- enables or
- .Fl d
- disables input to the pane.
- .It Ic last-window Op Fl t Ar target-session
- .D1 (alias: Ic last )
- Select the last (previously selected) window.
- If no
- .Ar target-session
- is specified, select the last window of the current session.
- .It Xo Ic link-window
- .Op Fl adk
- .Op Fl s Ar src-window
- .Op Fl t Ar dst-window
- .Xc
- .D1 (alias: Ic linkw )
- Link the window at
- .Ar src-window
- to the specified
- .Ar dst-window .
- If
- .Ar dst-window
- is specified and no such window exists, the
- .Ar src-window
- is linked there.
- With
- .Fl a ,
- the window is moved to the next index up (following windows
- are moved if necessary).
- If
- .Fl k
- is given and
- .Ar dst-window
- exists, it is killed, otherwise an error is generated.
- If
- .Fl d
- is given, the newly linked window is not selected.
- .It Xo Ic list-panes
- .Op Fl as
- .Op Fl F Ar format
- .Op Fl t Ar target
- .Xc
- .D1 (alias: Ic lsp )
- If
- .Fl a
- is given,
- .Ar target
- is ignored and all panes on the server are listed.
- If
- .Fl s
- is given,
- .Ar target
- is a session (or the current session).
- If neither is given,
- .Ar target
- is a window (or the current window).
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- .It Xo Ic list-windows
- .Op Fl a
- .Op Fl F Ar format
- .Op Fl t Ar target-session
- .Xc
- .D1 (alias: Ic lsw )
- If
- .Fl a
- is given, list all windows on the server.
- Otherwise, list windows in the current session or in
- .Ar target-session .
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- .It Xo Ic move-pane
- .Op Fl bdhv
- .Oo Fl l
- .Ar size |
- .Fl p Ar percentage Oc
- .Op Fl s Ar src-pane
- .Op Fl t Ar dst-pane
- .Xc
- .D1 (alias: Ic movep )
- Like
- .Ic join-pane ,
- but
- .Ar src-pane
- and
- .Ar dst-pane
- may belong to the same window.
- .It Xo Ic move-window
- .Op Fl ardk
- .Op Fl s Ar src-window
- .Op Fl t Ar dst-window
- .Xc
- .D1 (alias: Ic movew )
- This is similar to
- .Ic link-window ,
- except the window at
- .Ar src-window
- is moved to
- .Ar dst-window .
- With
- .Fl r ,
- all windows in the session are renumbered in sequential order, respecting
- the
- .Ic base-index
- option.
- .It Xo Ic new-window
- .Op Fl adkP
- .Op Fl c Ar start-directory
- .Op Fl F Ar format
- .Op Fl n Ar window-name
- .Op Fl t Ar target-window
- .Op Ar shell-command
- .Xc
- .D1 (alias: Ic neww )
- Create a new window.
- With
- .Fl a ,
- the new window is inserted at the next index up from the specified
- .Ar target-window ,
- moving windows up if necessary,
- otherwise
- .Ar target-window
- is the new window location.
- .Pp
- If
- .Fl d
- is given, the session does not make the new window the current window.
- .Ar target-window
- represents the window to be created; if the target already exists an error is
- shown, unless the
- .Fl k
- flag is used, in which case it is destroyed.
- .Ar shell-command
- is the command to execute.
- If
- .Ar shell-command
- is not specified, the value of the
- .Ic default-command
- option is used.
- .Fl c
- specifies the working directory in which the new window is created.
- .Pp
- When the shell command completes, the window closes.
- See the
- .Ic remain-on-exit
- option to change this behaviour.
- .Pp
- The
- .Ev TERM
- environment variable must be set to
- .Dq screen
- for all programs running
- .Em inside
- .Nm .
- New windows will automatically have
- .Dq TERM=screen
- added to their environment, but care must be taken not to reset this in shell
- start-up files.
- .Pp
- The
- .Fl P
- option prints information about the new window after it has been created.
- By default, it uses the format
- .Ql #{session_name}:#{window_index}
- but a different format may be specified with
- .Fl F .
- .It Ic next-layout Op Fl t Ar target-window
- .D1 (alias: Ic nextl )
- Move a window to the next layout and rearrange the panes to fit.
- .It Xo Ic next-window
- .Op Fl a
- .Op Fl t Ar target-session
- .Xc
- .D1 (alias: Ic next )
- Move to the next window in the session.
- If
- .Fl a
- is used, move to the next window with an alert.
- .It Xo Ic pipe-pane
- .Op Fl o
- .Op Fl t Ar target-pane
- .Op Ar shell-command
- .Xc
- .D1 (alias: Ic pipep )
- Pipe any output sent by the program in
- .Ar target-pane
- to a shell command.
- A pane may only be piped to one command at a time, any existing pipe is
- closed before
- .Ar shell-command
- is executed.
- The
- .Ar shell-command
- string may contain the special character sequences supported by the
- .Ic status-left
- option.
- If no
- .Ar shell-command
- is given, the current pipe (if any) is closed.
- .Pp
- The
- .Fl o
- option only opens a new pipe if no previous pipe exists, allowing a pipe to
- be toggled with a single key, for example:
- .Bd -literal -offset indent
- bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'
- .Ed
- .It Xo Ic previous-layout
- .Op Fl t Ar target-window
- .Xc
- .D1 (alias: Ic prevl )
- Move to the previous layout in the session.
- .It Xo Ic previous-window
- .Op Fl a
- .Op Fl t Ar target-session
- .Xc
- .D1 (alias: Ic prev )
- Move to the previous window in the session.
- With
- .Fl a ,
- move to the previous window with an alert.
- .It Xo Ic rename-window
- .Op Fl t Ar target-window
- .Ar new-name
- .Xc
- .D1 (alias: Ic renamew )
- Rename the current window, or the window at
- .Ar target-window
- if specified, to
- .Ar new-name .
- .It Xo Ic resize-pane
- .Op Fl DLMRUZ
- .Op Fl t Ar target-pane
- .Op Fl x Ar width
- .Op Fl y Ar height
- .Op Ar adjustment
- .Xc
- .D1 (alias: Ic resizep )
- Resize a pane, up, down, left or right by
- .Ar adjustment
- with
- .Fl U ,
- .Fl D ,
- .Fl L
- or
- .Fl R ,
- or
- to an absolute size
- with
- .Fl x
- or
- .Fl y .
- The
- .Ar adjustment
- is given in lines or cells (the default is 1).
- .Pp
- With
- .Fl Z ,
- the active pane is toggled between zoomed (occupying the whole of the window)
- and unzoomed (its normal position in the layout).
- .Pp
- .Fl M
- begins mouse resizing (only valid if bound to a mouse key binding, see
- .Sx MOUSE SUPPORT ) .
- .It Xo Ic respawn-pane
- .Op Fl k
- .Op Fl t Ar target-pane
- .Op Ar shell-command
- .Xc
- .D1 (alias: Ic respawnp )
- Reactivate a pane in which the command has exited (see the
- .Ic remain-on-exit
- window option).
- If
- .Ar shell-command
- is not given, the command used when the pane was created is executed.
- The pane must be already inactive, unless
- .Fl k
- is given, in which case any existing command is killed.
- .It Xo Ic respawn-window
- .Op Fl k
- .Op Fl t Ar target-window
- .Op Ar shell-command
- .Xc
- .D1 (alias: Ic respawnw )
- Reactivate a window in which the command has exited (see the
- .Ic remain-on-exit
- window option).
- If
- .Ar shell-command
- is not given, the command used when the window was created is executed.
- The window must be already inactive, unless
- .Fl k
- is given, in which case any existing command is killed.
- .It Xo Ic rotate-window
- .Op Fl DU
- .Op Fl t Ar target-window
- .Xc
- .D1 (alias: Ic rotatew )
- Rotate the positions of the panes within a window, either upward (numerically
- lower) with
- .Fl U
- or downward (numerically higher).
- .It Xo Ic select-layout
- .Op Fl nop
- .Op Fl t Ar target-window
- .Op Ar layout-name
- .Xc
- .D1 (alias: Ic selectl )
- Choose a specific layout for a window.
- If
- .Ar layout-name
- is not given, the last preset layout used (if any) is reapplied.
- .Fl n
- and
- .Fl p
- are equivalent to the
- .Ic next-layout
- and
- .Ic previous-layout
- commands.
- .Fl o
- applies the last set layout if possible (undoes the most recent layout change).
- .It Xo Ic select-pane
- .Op Fl DdegLlMmRU
- .Op Fl P Ar style
- .Op Fl t Ar target-pane
- .Xc
- .D1 (alias: Ic selectp )
- Make pane
- .Ar target-pane
- the active pane in window
- .Ar target-window ,
- or set its style (with
- .Fl P ) .
- If one of
- .Fl D ,
- .Fl L ,
- .Fl R ,
- or
- .Fl U
- is used, respectively the pane below, to the left, to the right, or above the
- target pane is used.
- .Fl l
- is the same as using the
- .Ic last-pane
- command.
- .Fl e
- enables or
- .Fl d
- disables input to the pane.
- .Pp
- .Fl m
- and
- .Fl M
- are used to set and clear the
- .Em marked pane .
- There is one marked pane at a time, setting a new marked pane clears the last.
- The marked pane is the default target for
- .Fl s
- to
- .Ic join-pane ,
- .Ic swap-pane
- and
- .Ic swap-window .
- .Pp
- Each pane has a style: by default the
- .Ic window-style
- and
- .Ic window-active-style
- options are used,
- .Ic select-pane
- .Fl P
- sets the style for a single pane.
- For example, to set the pane 1 background to red:
- .Bd -literal -offset indent
- select-pane -t:.1 -P 'bg=red'
- .Ed
- .Pp
- .Fl g
- shows the current pane style.
- .It Xo Ic select-window
- .Op Fl lnpT
- .Op Fl t Ar target-window
- .Xc
- .D1 (alias: Ic selectw )
- Select the window at
- .Ar target-window .
- .Fl l ,
- .Fl n
- and
- .Fl p
- are equivalent to the
- .Ic last-window ,
- .Ic next-window
- and
- .Ic previous-window
- commands.
- If
- .Fl T
- is given and the selected window is already the current window,
- the command behaves like
- .Ic last-window .
- .It Xo Ic split-window
- .Op Fl bdhvP
- .Op Fl c Ar start-directory
- .Oo Fl l
- .Ar size |
- .Fl p Ar percentage Oc
- .Op Fl t Ar target-pane
- .Op Ar shell-command
- .Op Fl F Ar format
- .Xc
- .D1 (alias: Ic splitw )
- Create a new pane by splitting
- .Ar target-pane :
- .Fl h
- does a horizontal split and
- .Fl v
- a vertical split; if neither is specified,
- .Fl v
- is assumed.
- The
- .Fl l
- and
- .Fl p
- options specify the size of the new pane in lines (for vertical split) or in
- cells (for horizontal split), or as a percentage, respectively.
- The
- .Fl b
- option causes the new pane to be created to the left of or above
- .Ar target-pane .
- All other options have the same meaning as for the
- .Ic new-window
- command.
- .It Xo Ic swap-pane
- .Op Fl dDU
- .Op Fl s Ar src-pane
- .Op Fl t Ar dst-pane
- .Xc
- .D1 (alias: Ic swapp )
- Swap two panes.
- If
- .Fl U
- is used and no source pane is specified with
- .Fl s ,
- .Ar dst-pane
- is swapped with the previous pane (before it numerically);
- .Fl D
- swaps with the next pane (after it numerically).
- .Fl d
- instructs
- .Nm
- not to change the active pane.
- .Pp
- If
- .Fl s
- is omitted and a marked pane is present (see
- .Ic select-pane
- .Fl m ) ,
- the marked pane is used rather than the current pane.
- .It Xo Ic swap-window
- .Op Fl d
- .Op Fl s Ar src-window
- .Op Fl t Ar dst-window
- .Xc
- .D1 (alias: Ic swapw )
- This is similar to
- .Ic link-window ,
- except the source and destination windows are swapped.
- It is an error if no window exists at
- .Ar src-window .
- .Pp
- Like
- .Ic swap-pane ,
- if
- .Fl s
- is omitted and a marked pane is present (see
- .Ic select-pane
- .Fl m ) ,
- the window containing the marked pane is used rather than the current window.
- .It Xo Ic unlink-window
- .Op Fl k
- .Op Fl t Ar target-window
- .Xc
- .D1 (alias: Ic unlinkw )
- Unlink
- .Ar target-window .
- Unless
- .Fl k
- is given, a window may be unlinked only if it is linked to multiple sessions -
- windows may not be linked to no sessions;
- if
- .Fl k
- is specified and the window is linked to only one session, it is unlinked and
- destroyed.
- .El
- .Sh KEY BINDINGS
- .Nm
- allows a command to be bound to most keys, with or without a prefix key.
- When specifying keys, most represent themselves (for example
- .Ql A
- to
- .Ql Z ) .
- Ctrl keys may be prefixed with
- .Ql C-
- or
- .Ql ^ ,
- and Alt (meta) with
- .Ql M- .
- In addition, the following special key names are accepted:
- .Em Up ,
- .Em Down ,
- .Em Left ,
- .Em Right ,
- .Em BSpace ,
- .Em BTab ,
- .Em DC
- (Delete),
- .Em End ,
- .Em Enter ,
- .Em Escape ,
- .Em F1
- to
- .Em F12 ,
- .Em Home ,
- .Em IC
- (Insert),
- .Em NPage/PageDown/PgDn ,
- .Em PPage/PageUp/PgUp ,
- .Em Space ,
- and
- .Em Tab .
- Note that to bind the
- .Ql \&"
- or
- .Ql '
- keys, quotation marks are necessary, for example:
- .Bd -literal -offset indent
- bind-key '"' split-window
- bind-key "'" new-window
- .Ed
- .Pp
- Commands related to key bindings are as follows:
- .Bl -tag -width Ds
- .It Xo Ic bind-key
- .Op Fl cnr
- .Op Fl t Ar mode-table
- .Op Fl T Ar key-table
- .Ar key Ar command Op Ar arguments
- .Xc
- .D1 (alias: Ic bind )
- Bind key
- .Ar key
- to
- .Ar command .
- Keys are bound in a key table.
- By default (without -T), the key is bound in
- the
- .Em prefix
- key table.
- This table is used for keys pressed after the prefix key (for example,
- by default
- .Ql c
- is bound to
- .Ic new-window
- in the
- .Em prefix
- table, so
- .Ql C-b c
- creates a new window).
- The
- .Em root
- table is used for keys pressed without the prefix key: binding
- .Ql c
- to
- .Ic new-window
- in the
- .Em root
- table (not recommended) means a plain
- .Ql c
- will create a new window.
- .Fl n
- is an alias
- for
- .Fl T Ar root .
- Keys may also be bound in custom key tables and the
- .Ic switch-client
- .Fl T
- command used to switch to them from a key binding.
- The
- .Fl r
- flag indicates this key may repeat, see the
- .Ic repeat-time
- option.
- .Pp
- If
- .Fl t
- is present,
- .Ar key
- is bound in
- .Ar mode-table :
- the binding for command mode with
- .Fl c
- or for normal mode without.
- See the
- .Sx WINDOWS AND PANES
- section and the
- .Ic list-keys
- command for information on mode key bindings.
- .Pp
- To view the default bindings and possible commands, see the
- .Ic list-keys
- command.
- .It Xo Ic list-keys
- .Op Fl t Ar mode-table
- .Op Fl T Ar key-table
- .Xc
- .D1 (alias: Ic lsk )
- List all key bindings.
- Without
- .Fl T
- all key tables are printed.
- With
- .Fl T
- only
- .Ar key-table .
- .Pp
- With
- .Fl t ,
- the key bindings in
- .Ar mode-table
- are listed; this may be one of:
- .Em vi-edit ,
- .Em emacs-edit ,
- .Em vi-choice ,
- .Em emacs-choice ,
- .Em vi-copy
- or
- .Em emacs-copy .
- .It Xo Ic send-keys
- .Op Fl lMR
- .Op Fl t Ar target-pane
- .Ar key Ar ...
- .Xc
- .D1 (alias: Ic send )
- Send a key or keys to a window.
- Each argument
- .Ar key
- is the name of the key (such as
- .Ql C-a
- or
- .Ql npage
- ) to send; if the string is not recognised as a key, it is sent as a series of
- characters.
- The
- .Fl l
- flag disables key name lookup and sends the keys literally.
- All arguments are sent sequentially from first to last.
- The
- .Fl R
- flag causes the terminal state to be reset.
- .Pp
- .Fl M
- passes through a mouse event (only valid if bound to a mouse key binding, see
- .Sx MOUSE SUPPORT ) .
- .It Xo Ic send-prefix
- .Op Fl 2
- .Op Fl t Ar target-pane
- .Xc
- Send the prefix key, or with
- .Fl 2
- the secondary prefix key, to a window as if it was pressed.
- .It Xo Ic unbind-key
- .Op Fl acn
- .Op Fl t Ar mode-table
- .Op Fl T Ar key-table
- .Ar key
- .Xc
- .D1 (alias: Ic unbind )
- Unbind the command bound to
- .Ar key .
- .Fl c ,
- .Fl n ,
- .Fl T
- and
- .Fl t
- are the same as for
- .Ic bind-key .
- If
- .Fl a
- is present, all key bindings are removed.
- .El
- .Sh OPTIONS
- The appearance and behaviour of
- .Nm
- may be modified by changing the value of various options.
- There are three types of option:
- .Em server options ,
- .Em session options
- and
- .Em window options .
- .Pp
- The
- .Nm
- server has a set of global options which do not apply to any particular
- window or session.
- These are altered with the
- .Ic set-option
- .Fl s
- command, or displayed with the
- .Ic show-options
- .Fl s
- command.
- .Pp
- In addition, each individual session may have a set of session options, and
- there is a separate set of global session options.
- Sessions which do not have a particular option configured inherit the value
- from the global session options.
- Session options are set or unset with the
- .Ic set-option
- command and may be listed with the
- .Ic show-options
- command.
- The available server and session options are listed under the
- .Ic set-option
- command.
- .Pp
- Similarly, a set of window options is attached to each window, and there is
- a set of global window options from which any unset options are inherited.
- Window options are altered with the
- .Ic set-window-option
- command and can be listed with the
- .Ic show-window-options
- command.
- All window options are documented with the
- .Ic set-window-option
- command.
- .Pp
- .Nm
- also supports user options which are prefixed with a
- .Ql \&@ .
- User options may have any name, so long as they are prefixed with
- .Ql \&@ ,
- and be set to any string.
- For example:
- .Bd -literal -offset indent
- $ tmux setw -q @foo "abc123"
- $ tmux showw -v @foo
- abc123
- .Ed
- .Pp
- Commands which set options are as follows:
- .Bl -tag -width Ds
- .It Xo Ic set-option
- .Op Fl agoqsuw
- .Op Fl t Ar target-session | Ar target-window
- .Ar option Ar value
- .Xc
- .D1 (alias: Ic set )
- Set a window option with
- .Fl w
- (equivalent to the
- .Ic set-window-option
- command),
- a server option with
- .Fl s ,
- otherwise a session option.
- If
- .Fl g
- is given, the global session or window option is set.
- The
- .Fl u
- flag unsets an option, so a session inherits the option from the global
- options (or with
- .Fl g ,
- restores a global option to the default).
- .Pp
- The
- .Fl o
- flag prevents setting an option that is already set and the
- .Fl q
- flag suppresses errors about unknown or ambiguous options.
- .Pp
- With
- .Fl a ,
- and if the option expects a string or a style,
- .Ar value
- is appended to the existing setting.
- For example:
- .Bd -literal -offset indent
- set -g status-left "foo"
- set -ag status-left "bar"
- .Ed
- .Pp
- Will result in
- .Ql foobar .
- And:
- .Bd -literal -offset indent
- set -g status-style "bg=red"
- set -ag status-style "fg=blue"
- .Ed
- .Pp
- Will result in a red background
- .Em and
- blue foreground.
- Without
- .Fl a ,
- the result would be the default background and a blue foreground.
- .Pp
- Available window options are listed under
- .Ic set-window-option .
- .Pp
- .Ar value
- depends on the option and may be a number, a string, or a flag (on, off, or
- omitted to toggle).
- .Pp
- Available server options are:
- .Bl -tag -width Ds
- .It Ic buffer-limit Ar number
- Set the number of buffers; as new buffers are added to the top of the stack,
- old ones are removed from the bottom if necessary to maintain this maximum
- length.
- .It Ic default-terminal Ar terminal
- Set the default terminal for new windows created in this session - the
- default value of the
- .Ev TERM
- environment variable.
- For
- .Nm
- to work correctly, this
- .Em must
- be set to
- .Ql screen ,
- .Ql tmux
- or a derivative of them.
- .It Ic escape-time Ar time
- Set the time in milliseconds for which
- .Nm
- waits after an escape is input to determine if it is part of a function or meta
- key sequences.
- The default is 500 milliseconds.
- .It Xo Ic exit-unattached
- .Op Ic on | off
- .Xc
- If enabled, the server will exit when there are no attached clients.
- .It Xo Ic focus-events
- .Op Ic on | off
- .Xc
- When enabled, focus events are requested from the terminal if supported and
- passed through to applications running in
- .Nm .
- Attached clients should be detached and attached again after changing this
- option.
- .It Ic history-file Ar path
- If not empty, a file to which
- .Nm
- will write command prompt history on exit and load it from on start.
- .It Ic message-limit Ar number
- Set the number of error or information messages to save in the message log for
- each client.
- The default is 100.
- .It Xo Ic set-clipboard
- .Op Ic on | off
- .Xc
- Attempt to set the terminal clipboard content using the
- \ee]52;...\e007
- .Xr xterm 1
- escape sequences.
- This option is on by default if there is an
- .Em \&Ms
- entry in the
- .Xr terminfo 5
- description for the client terminal.
- Note that this feature needs to be enabled in
- .Xr xterm 1
- by setting the resource:
- .Bd -literal -offset indent
- disallowedWindowOps: 20,21,SetXprop
- .Ed
- .Pp
- Or changing this property from the
- .Xr xterm 1
- interactive menu when required.
- .It Ic terminal-overrides Ar string
- Contains a list of entries which override terminal descriptions read using
- .Xr terminfo 5 .
- .Ar string
- is a comma-separated list of items each a colon-separated string made up of a
- terminal type pattern (matched using
- .Xr fnmatch 3 )
- and a set of
- .Em name=value
- entries.
- .Pp
- For example, to set the
- .Ql clear
- .Xr terminfo 5
- entry to
- .Ql \ee[H\ee[2J
- for all terminal types and the
- .Ql dch1
- entry to
- .Ql \ee[P
- for the
- .Ql rxvt
- terminal type, the option could be set to the string:
- .Bd -literal -offset indent
- "*:clear=\ee[H\ee[2J,rxvt:dch1=\ee[P"
- .Ed
- .Pp
- The terminal entry value is passed through
- .Xr strunvis 3
- before interpretation.
- The default value forcibly corrects the
- .Ql colors
- entry for terminals which support 256 colours:
- .Bd -literal -offset indent
- "*256col*:colors=256,xterm*:XT"
- .Ed
- .El
- .Pp
- Available session options are:
- .Bl -tag -width Ds
- .It Ic assume-paste-time Ar milliseconds
- If keys are entered faster than one in
- .Ar milliseconds ,
- they are assumed to have been pasted rather than typed and
- .Nm
- key bindings are not processed.
- The default is one millisecond and zero disables.
- .It Ic base-index Ar index
- Set the base index from which an unused index should be searched when a new
- window is created.
- The default is zero.
- .It Xo Ic bell-action
- .Op Ic any | none | current | other
- .Xc
- Set action on window bell.
- .Ic any
- means a bell in any window linked to a session causes a bell in the current
- window of that session,
- .Ic none
- means all bells are ignored,
- .Ic current
- means only bells in windows other than the current window are ignored and
- .Ic other
- means bells in the current window are ignored but not those in other windows.
- .It Xo Ic bell-on-alert
- .Op Ic on | off
- .Xc
- If on, ring the terminal bell when an alert
- occurs.
- .It Ic default-command Ar shell-command
- Set the command used for new windows (if not specified when the window is
- created) to
- .Ar shell-command ,
- which may be any
- .Xr sh 1
- command.
- The default is an empty string, which instructs
- .Nm
- to create a login shell using the value of the
- .Ic default-shell
- option.
- .It Ic default-shell Ar path
- Specify the default shell.
- This is used as the login shell for new windows when the
- .Ic default-command
- option is set to empty, and must be the full path of the executable.
- When started
- .Nm
- tries to set a default value from the first suitable of the
- .Ev SHELL
- environment variable, the shell returned by
- .Xr getpwuid 3 ,
- or
- .Pa /bin/sh .
- This option should be configured when
- .Nm
- is used as a login shell.
- .It Xo Ic destroy-unattached
- .Op Ic on | off
- .Xc
- If enabled and the session is no longer attached to any clients, it is
- destroyed.
- .It Xo Ic detach-on-destroy
- .Op Ic on | off
- .Xc
- If on (the default), the client is detached when the session it is attached to
- is destroyed.
- If off, the client is switched to the most recently active of the remaining
- sessions.
- .It Ic display-panes-active-colour Ar colour
- Set the colour used by the
- .Ic display-panes
- command to show the indicator for the active pane.
- .It Ic display-panes-colour Ar colour
- Set the colour used by the
- .Ic display-panes
- command to show the indicators for inactive panes.
- .It Ic display-panes-time Ar time
- Set the time in milliseconds for which the indicators shown by the
- .Ic display-panes
- command appear.
- .It Ic display-time Ar time
- Set the amount of time for which status line messages and other on-screen
- indicators are displayed.
- If set to 0, messages and indicators are displayed until a key is pressed.
- .Ar time
- is in milliseconds.
- .It Ic history-limit Ar lines
- Set the maximum number of lines held in window history.
- This setting applies only to new windows - existing window histories are not
- resized and retain the limit at the point they were created.
- .It Ic key-table Ar key-table
- Set the default key table to
- .Ar key-table
- instead of
- .Em root .
- .It Ic lock-after-time Ar number
- Lock the session (like the
- .Ic lock-session
- command) after
- .Ar number
- seconds of inactivity.
- The default is not to lock (set to 0).
- .It Ic lock-command Ar shell-command
- Command to run when locking each client.
- The default is to run
- .Xr lock 1
- with
- .Fl np .
- .It Ic message-command-style Ar style
- Set status line message command style, where
- .Ar style
- is a comma-separated list of characteristics to be specified.
- .Pp
- These may be
- .Ql bg=colour
- to set the background colour,
- .Ql fg=colour
- to set the foreground colour, and a list of attributes as specified below.
- .Pp
- The colour is one of:
- .Ic black ,
- .Ic red ,
- .Ic green ,
- .Ic yellow ,
- .Ic blue ,
- .Ic magenta ,
- .Ic cyan ,
- .Ic white ,
- aixterm bright variants (if supported:
- .Ic brightred ,
- .Ic brightgreen ,
- and so on),
- .Ic colour0
- to
- .Ic colour255
- from the 256-colour set,
- .Ic default ,
- or a hexadecimal RGB string such as
- .Ql #ffffff ,
- which chooses the closest match from the default 256-colour set.
- .Pp
- The attributes is either
- .Ic none
- or a comma-delimited list of one or more of:
- .Ic bright
- (or
- .Ic bold ) ,
- .Ic dim ,
- .Ic underscore ,
- .Ic blink ,
- .Ic reverse ,
- .Ic hidden ,
- or
- .Ic italics ,
- to turn an attribute on, or an attribute prefixed with
- .Ql no
- to turn one off.
- .Pp
- Examples are:
- .Bd -literal -offset indent
- fg=yellow,bold,underscore,blink
- bg=black,fg=default,noreverse
- .Ed
- .Pp
- With the
- .Fl a
- flag to the
- .Ic set-option
- command the new style is added otherwise the existing style is replaced.
- .It Ic message-style Ar style
- Set status line message style.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .It Xo Ic mouse
- .Op Ic on | off
- .Xc
- If on,
- .Nm
- captures the mouse and allows mouse events to be bound as key bindings.
- See the
- .Sx MOUSE SUPPORT
- section for details.
- .It Ic prefix Ar key
- Set the key accepted as a prefix key.
- In addition to the standard keys described under
- .Sx KEY BINDINGS ,
- .Ic prefix
- can be set to the special key
- .Ql None
- to set no prefix.
- .It Ic prefix2 Ar key
- Set a secondary key accepted as a prefix key.
- Like
- .Ic prefix ,
- .Ic prefix2
- can be set to
- .Ql None .
- .It Xo Ic renumber-windows
- .Op Ic on | off
- .Xc
- If on, when a window is closed in a session, automatically renumber the other
- windows in numerical order.
- This respects the
- .Ic base-index
- option if it has been set.
- If off, do not renumber the windows.
- .It Ic repeat-time Ar time
- Allow multiple commands to be entered without pressing the prefix-key again
- in the specified
- .Ar time
- milliseconds (the default is 500).
- Whether a key repeats may be set when it is bound using the
- .Fl r
- flag to
- .Ic bind-key .
- Repeat is enabled for the default keys bound to the
- .Ic resize-pane
- command.
- .It Xo Ic set-remain-on-exit
- .Op Ic on | off
- .Xc
- Set the
- .Ic remain-on-exit
- window option for any windows first created in this session.
- When this option is true, windows in which the running program has
- exited do not close, instead remaining open but inactivate.
- Use the
- .Ic respawn-window
- command to reactivate such a window, or the
- .Ic kill-window
- command to destroy it.
- .It Xo Ic set-titles
- .Op Ic on | off
- .Xc
- Attempt to set the client terminal title using the
- .Em tsl
- and
- .Em fsl
- .Xr terminfo 5
- entries if they exist.
- .Nm
- automatically sets these to the \ee]0;...\e007 sequence if
- the terminal appears to be
- .Xr xterm 1 .
- This option is off by default.
- .It Ic set-titles-string Ar string
- String used to set the window title if
- .Ic set-titles
- is on.
- Formats are expanded, see the
- .Sx FORMATS
- section.
- .It Xo Ic status
- .Op Ic on | off
- .Xc
- Show or hide the status line.
- .It Ic status-interval Ar interval
- Update the status bar every
- .Ar interval
- seconds.
- By default, updates will occur every 15 seconds.
- A setting of zero disables redrawing at interval.
- .It Xo Ic status-justify
- .Op Ic left | centre | right
- .Xc
- Set the position of the window list component of the status line: left, centre
- or right justified.
- .It Xo Ic status-keys
- .Op Ic vi | emacs
- .Xc
- Use vi or emacs-style
- key bindings in the status line, for example at the command prompt.
- The default is emacs, unless the
- .Ev VISUAL
- or
- .Ev EDITOR
- environment variables are set and contain the string
- .Ql vi .
- .It Ic status-left Ar string
- Display
- .Ar string
- (by default the session name) to the left of the status bar.
- .Ar string
- will be passed through
- .Xr strftime 3
- and formats (see
- .Sx FORMATS )
- will be expanded.
- It may also contain any of the following special character sequences:
- .Bl -column "Character pair" "Replaced with" -offset indent
- .It Sy "Character pair" Ta Sy "Replaced with"
- .It Li "#[attributes]" Ta "Colour or attribute change"
- .It Li "##" Ta "A literal" Ql #
- .El
- .Pp
- For details on how the names and titles can be set see the
- .Sx "NAMES AND TITLES"
- section.
- For a list of allowed attributes see the
- .Ic message-command-style
- option.
- .Pp
- Examples are:
- .Bd -literal -offset indent
- #(sysctl vm.loadavg)
- #[fg=yellow,bold]#(apm -l)%%#[default] [#S]
- .Ed
- .Pp
- The default is
- .Ql "[#S] " .
- .It Ic status-left-length Ar length
- Set the maximum
- .Ar length
- of the left component of the status bar.
- The default is 10.
- .It Ic status-left-style Ar style
- Set the style of the left part of the status line.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .It Xo Ic status-position
- .Op Ic top | bottom
- .Xc
- Set the position of the status line.
- .It Ic status-right Ar string
- Display
- .Ar string
- to the right of the status bar.
- By default, the current window title in double quotes, the date and the time
- are shown.
- As with
- .Ic status-left ,
- .Ar string
- will be passed to
- .Xr strftime 3
- and character pairs are replaced.
- .It Ic status-right-length Ar length
- Set the maximum
- .Ar length
- of the right component of the status bar.
- The default is 40.
- .It Ic status-right-style Ar style
- Set the style of the right part of the status line.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .It Ic status-style Ar style
- Set status line style.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .It Ic update-environment Ar variables
- Set a space-separated string containing a list of environment variables to be
- copied into the session environment when a new session is created or an
- existing session is attached.
- Any variables that do not exist in the source environment are set to be
- removed from the session environment (as if
- .Fl r
- was given to the
- .Ic set-environment
- command).
- The default is
- "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID
- XAUTHORITY".
- .It Xo Ic visual-activity
- .Op Ic on | off
- .Xc
- If on, display a status line message when activity occurs in a window
- for which the
- .Ic monitor-activity
- window option is enabled.
- .It Xo Ic visual-bell
- .Op Ic on | off
- .Xc
- If this option is on, a message is shown on a bell instead of it being passed
- through to the terminal (which normally makes a sound).
- Also see the
- .Ic bell-action
- option.
- .It Xo Ic visual-silence
- .Op Ic on | off
- .Xc
- If
- .Ic monitor-silence
- is enabled, prints a message after the interval has expired on a given window.
- .It Ic word-separators Ar string
- Sets the session's conception of what characters are considered word
- separators, for the purposes of the next and previous word commands in
- copy mode.
- The default is
- .Ql \ -_@ .
- .El
- .It Xo Ic set-window-option
- .Op Fl agoqu
- .Op Fl t Ar target-window
- .Ar option Ar value
- .Xc
- .D1 (alias: Ic setw )
- Set a window option.
- The
- .Fl a ,
- .Fl g ,
- .Fl o ,
- .Fl q
- and
- .Fl u
- flags work similarly to the
- .Ic set-option
- command.
- .Pp
- Supported window options are:
- .Pp
- .Bl -tag -width Ds -compact
- .It Xo Ic aggressive-resize
- .Op Ic on | off
- .Xc
- Aggressively resize the chosen window.
- This means that
- .Nm
- will resize the window to the size of the smallest session for which it is the
- current window, rather than the smallest session to which it is attached.
- The window may resize when the current window is changed on another sessions;
- this option is good for full-screen programs which support
- .Dv SIGWINCH
- and poor for interactive programs such as shells.
- .Pp
- .It Xo Ic allow-rename
- .Op Ic on | off
- .Xc
- Allow programs to change the window name using a terminal escape
- sequence (\eek...\ee\e\e).
- The default is on.
- .Pp
- .It Xo Ic alternate-screen
- .Op Ic on | off
- .Xc
- This option configures whether programs running inside
- .Nm
- may use the terminal alternate screen feature, which allows the
- .Em smcup
- and
- .Em rmcup
- .Xr terminfo 5
- capabilities.
- The alternate screen feature preserves the contents of the window when an
- interactive application starts and restores it on exit, so that any output
- visible before the application starts reappears unchanged after it exits.
- The default is on.
- .Pp
- .It Xo Ic automatic-rename
- .Op Ic on | off
- .Xc
- Control automatic window renaming.
- When this setting is enabled,
- .Nm
- will rename the window automatically using the format specified by
- .Ic automatic-rename-format .
- This flag is automatically disabled for an individual window when a name
- is specified at creation with
- .Ic new-window
- or
- .Ic new-session ,
- or later with
- .Ic rename-window ,
- or with a terminal escape sequence.
- It may be switched off globally with:
- .Bd -literal -offset indent
- set-window-option -g automatic-rename off
- .Ed
- .Pp
- .It Ic automatic-rename-format Ar format
- The format (see
- .Sx FORMATS )
- used when the
- .Ic automatic-rename
- option is enabled.
- .Pp
- .It Ic clock-mode-colour Ar colour
- Set clock colour.
- .Pp
- .It Xo Ic clock-mode-style
- .Op Ic 12 | 24
- .Xc
- Set clock hour format.
- .Pp
- .It Ic force-height Ar height
- .It Ic force-width Ar width
- Prevent
- .Nm
- from resizing a window to greater than
- .Ar width
- or
- .Ar height .
- A value of zero restores the default unlimited setting.
- .Pp
- .It Ic main-pane-height Ar height
- .It Ic main-pane-width Ar width
- Set the width or height of the main (left or top) pane in the
- .Ic main-horizontal
- or
- .Ic main-vertical
- layouts.
- .Pp
- .It Xo Ic mode-keys
- .Op Ic vi | emacs
- .Xc
- Use vi or emacs-style key bindings in copy and choice modes.
- As with the
- .Ic status-keys
- option, the default is emacs, unless
- .Ev VISUAL
- or
- .Ev EDITOR
- contains
- .Ql vi .
- .Pp
- .It Ic mode-style Ar style
- Set window modes style.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .Pp
- .It Xo Ic monitor-activity
- .Op Ic on | off
- .Xc
- Monitor for activity in the window.
- Windows with activity are highlighted in the status line.
- .Pp
- .It Xo Ic monitor-silence
- .Op Ic interval
- .Xc
- Monitor for silence (no activity) in the window within
- .Ic interval
- seconds.
- Windows that have been silent for the interval are highlighted in the
- status line.
- An interval of zero disables the monitoring.
- .Pp
- .It Ic other-pane-height Ar height
- Set the height of the other panes (not the main pane) in the
- .Ic main-horizontal
- layout.
- If this option is set to 0 (the default), it will have no effect.
- If both the
- .Ic main-pane-height
- and
- .Ic other-pane-height
- options are set, the main pane will grow taller to make the other panes the
- specified height, but will never shrink to do so.
- .Pp
- .It Ic other-pane-width Ar width
- Like
- .Ic other-pane-height ,
- but set the width of other panes in the
- .Ic main-vertical
- layout.
- .Pp
- .It Ic pane-active-border-style Ar style
- Set the pane border style for the currently active pane.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- Attributes are ignored.
- .Pp
- .It Ic pane-base-index Ar index
- Like
- .Ic base-index ,
- but set the starting index for pane numbers.
- .Pp
- .It Ic pane-border-style Ar style
- Set the pane border style for panes aside from the active pane.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- Attributes are ignored.
- .Pp
- .It Xo Ic remain-on-exit
- .Op Ic on | off
- .Xc
- A window with this flag set is not destroyed when the program running in it
- exits.
- The window may be reactivated with the
- .Ic respawn-window
- command.
- .Pp
- .It Xo Ic synchronize-panes
- .Op Ic on | off
- .Xc
- Duplicate input to any pane to all other panes in the same window (only
- for panes that are not in any special mode).
- .Pp
- .It Ic window-active-style Ar style
- Set the style for the window's active pane.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .Pp
- .It Ic window-status-activity-style Ar style
- Set status line style for windows with an activity alert.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .Pp
- .It Ic window-status-bell-style Ar style
- Set status line style for windows with a bell alert.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .Pp
- .It Ic window-status-current-format Ar string
- Like
- .Ar window-status-format ,
- but is the format used when the window is the current window.
- .Pp
- .It Ic window-status-current-style Ar style
- Set status line style for the currently active window.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .Pp
- .It Ic window-status-format Ar string
- Set the format in which the window is displayed in the status line window list.
- See the
- .Ar status-left
- option for details of special character sequences available.
- The default is
- .Ql #I:#W#F .
- .Pp
- .It Ic window-status-last-style Ar style
- Set status line style for the last active window.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .Pp
- .It Ic window-status-separator Ar string
- Sets the separator drawn between windows in the status line.
- The default is a single space character.
- .Pp
- .It Ic window-status-style Ar style
- Set status line style for a single window.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .Pp
- .It Ic window-style Ar style
- Set the default window style.
- For how to specify
- .Ar style ,
- see the
- .Ic message-command-style
- option.
- .Pp
- .It Xo Ic xterm-keys
- .Op Ic on | off
- .Xc
- If this option is set,
- .Nm
- will generate
- .Xr xterm 1 -style
- function key sequences; these have a number included to indicate modifiers such
- as Shift, Alt or Ctrl.
- The default is off.
- .Pp
- .It Xo Ic wrap-search
- .Op Ic on | off
- .Xc
- If this option is set, searches will wrap around the end of the pane contents.
- The default is on.
- .El
- .It Xo Ic show-options
- .Op Fl gqsvw
- .Op Fl t Ar target-session | Ar target-window
- .Op Ar option
- .Xc
- .D1 (alias: Ic show )
- Show the window options (or a single window option if given) with
- .Fl w
- (equivalent to
- .Ic show-window-options ) ,
- the server options with
- .Fl s ,
- otherwise the session options for
- .Ar target session .
- Global session or window options are listed if
- .Fl g
- is used.
- .Fl v
- shows only the option value, not the name.
- If
- .Fl q
- is set, no error will be returned if
- .Ar option
- is unset.
- .It Xo Ic show-window-options
- .Op Fl gv
- .Op Fl t Ar target-window
- .Op Ar option
- .Xc
- .D1 (alias: Ic showw )
- List the window options or a single option for
- .Ar target-window ,
- or the global window options if
- .Fl g
- is used.
- .Fl v
- shows only the option value, not the name.
- .El
- .Sh HOOKS
- .Nm
- allows commands to run on various triggers, called
- .Em hooks .
- Each hook has a
- .Em name .
- The following hooks are available:
- .Bl -tag -width "XXXXXXXXXXXXXXXX"
- .It alert-activity
- Run when a window has activity.
- See
- .Ic monitor-activity .
- .It alert-bell
- Run when a window has received a bell.
- .It alert-silence
- Run when a window has been silent.
- See
- .Ic monitor-silence .
- .It client-attached
- Run when a client is attached.
- .It client-detached
- Run when a client is detached
- .It client-resized
- Run when a client is resized.
- .It pane-died
- Run when the program running in a pane exits, but
- .Ic remain-on-exit
- is on so the pane has not closed.
- .It pane-exited
- Run when the program running in a pane exits.
- .El
- .Pp
- Hooks are managed with these commands:
- .Bl -tag -width Ds
- .It Xo Ic set-hook
- .Op Fl g
- .Op Fl t Ar target-session
- .Ar hook-name
- .Ar command
- .Xc
- Sets hook
- .Ar hook-name
- to
- .Ar command .
- If
- .Fl g
- is given,
- .Em hook-name
- is added to the global list of hooks, otherwise it is added to the session
- hooks (for
- .Ar target-session
- with
- .Fl t ) .
- Like options, session hooks inherit from the global ones.
- .It Xo Ic show-hooks
- .Op Fl g
- .Op Fl t Ar target-session
- .Xc
- Shows the global list of hooks with
- .Fl g ,
- otherwise the session hooks.
- .El
- .Sh MOUSE SUPPORT
- If the
- .Ic mouse
- option is on (the default is off),
- .Nm
- allows mouse events to be bound as keys.
- The name of each key is made up of a mouse event (such as
- .Ql MouseUp1 )
- and a location suffix (one of
- .Ql Pane
- for the contents of a pane,
- .Ql Border
- for a pane border or
- .Ql Status
- for the status line).
- The following mouse events are available:
- .Bl -column "MouseDown1" "MouseDrag1" "WheelDown" -offset indent
- .It Li "MouseDown1" Ta "MouseUp1" Ta "MouseDrag1" Ta "MouseDragEnd1"
- .It Li "MouseDown2" Ta "MouseUp2" Ta "MouseDrag2" Ta "MouseDragEnd2"
- .It Li "MouseDown3" Ta "MouseUp3" Ta "MouseDrag3" Ta "MouseDragEnd3"
- .It Li "WheelUp" Ta "WheelDown" Ta "" Ta ""
- .El
- .Pp
- Each should be suffixed with a location, for example
- .Ql MouseDown1Status .
- .Pp
- The special token
- .Ql {mouse}
- or
- .Ql =
- may be used as
- .Ar target-window
- or
- .Ar target-pane
- in commands bound to mouse key bindings.
- It resolves to the window or pane over which the mouse event took place
- (for example, the window in the status line over which button 1 was released for a
- .Ql MouseUp1Status
- binding, or the pane over which the wheel was scrolled for a
- .Ql WheelDownPane
- binding).
- .Pp
- The
- .Ic send-keys
- .Fl M
- flag may be used to forward a mouse event to a pane.
- .Pp
- The default key bindings allow the mouse to be used to select and resize panes,
- to copy text and to change window using the status line.
- These take effect if the
- .Ic mouse
- option is turned on.
- .Sh FORMATS
- Certain commands accept the
- .Fl F
- flag with a
- .Ar format
- argument.
- This is a string which controls the output format of the command.
- Replacement variables are enclosed in
- .Ql #{
- and
- .Ql } ,
- for example
- .Ql #{session_name} .
- The possible variables are listed in the table below, or the name of a
- .Nm
- option may be used for an option's value.
- Some variables have a shorter alias such as
- .Ql #S ,
- and
- .Ql ##
- is replaced by a single
- .Ql # .
- .Pp
- Conditionals are available by prefixing with
- .Ql \&?
- and separating two alternatives with a comma;
- if the specified variable exists and is not zero, the first alternative
- is chosen, otherwise the second is used.
- For example
- .Ql #{?session_attached,attached,not attached}
- will include the string
- .Ql attached
- if the session is attached and the string
- .Ql not attached
- if it is unattached, or
- .Ql #{?automatic-rename,yes,no}
- will include
- .Ql yes
- if
- .Ic automatic-rename
- is enabled, or
- .Ql no
- if not.
- .Pp
- A limit may be placed on the length of the resultant string by prefixing it
- by an
- .Ql = ,
- a number and a colon.
- Positive numbers count from the start of the string and negative from the end,
- so
- .Ql #{=5:pane_title}
- will include at most the first 5 characters of the pane title, or
- .Ql #{=-5:pane_title}
- the last 5 characters.
- Prefixing a time variable with
- .Ql t:
- will convert it to a string, so if
- .Ql #{window_activity}
- gives
- .Ql 1445765102 ,
- .Ql #{t:window_activity}
- gives
- .Ql Sun Oct 25 09:25:02 2015 .
- The
- .Ql b:
- and
- .Ql d:
- prefixes are
- .Xr basename 3
- and
- .Xr dirname 3
- of the variable respectively.
- A prefix of the form
- .Ql s/foo/bar/:
- will substitute
- .Ql foo
- with
- .Ql bar
- throughout.
- .Pp
- In addition, the first line of a shell command's output may be inserted using
- .Ql #() .
- For example,
- .Ql #(uptime)
- will insert the system's uptime.
- When constructing formats,
- .Nm
- does not wait for
- .Ql #()
- commands to finish; instead, the previous result from running the same command is used,
- or a placeholder if the command has not been run before.
- Commands are executed with the
- .Nm
- global environment set (see the
- .Sx ENVIRONMENT
- section).
- .Pp
- The following variables are available, where appropriate:
- .Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX"
- .It Sy "Variable name" Ta Sy "Alias" Ta Sy "Replaced with"
- .It Li "alternate_on" Ta "" Ta "If pane is in alternate screen"
- .It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen"
- .It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen"
- .It Li "buffer_sample" Ta "" Ta "Sample of start of buffer"
- .It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes"
- .It Li "client_activity" Ta "" Ta "Integer time client last had activity"
- .It Li "client_created" Ta "" Ta "Integer time client created"
- .It Li "client_control_mode" Ta "" Ta "1 if client is in control mode"
- .It Li "client_height" Ta "" Ta "Height of client"
- .It Li "client_key_table" Ta "" Ta "Current key table"
- .It Li "client_last_session" Ta "" Ta "Name of the client's last session"
- .It Li "client_pid" Ta "" Ta "PID of client process"
- .It Li "client_prefix" Ta "" Ta "1 if prefix key has been pressed"
- .It Li "client_readonly" Ta "" Ta "1 if client is readonly"
- .It Li "client_session" Ta "" Ta "Name of the client's session"
- .It Li "client_termname" Ta "" Ta "Terminal name of client"
- .It Li "client_tty" Ta "" Ta "Pseudo terminal of client"
- .It Li "client_utf8" Ta "" Ta "1 if client supports utf8"
- .It Li "client_width" Ta "" Ta "Width of client"
- .It Li "command_name" Ta "" Ta "Name of command in use, if any"
- .It Li "cursor_flag" Ta "" Ta "Pane cursor flag"
- .It Li "cursor_x" Ta "" Ta "Cursor X position in pane"
- .It Li "cursor_y" Ta "" Ta "Cursor Y position in pane"
- .It Li "history_bytes" Ta "" Ta "Number of bytes in window history"
- .It Li "history_limit" Ta "" Ta "Maximum window history lines"
- .It Li "history_size" Ta "" Ta "Size of history in bytes"
- .It Li "host" Ta "#H" Ta "Hostname of local host"
- .It Li "host_short" Ta "#h" Ta "Hostname of local host (no domain name)"
- .It Li "insert_flag" Ta "" Ta "Pane insert flag"
- .It Li "keypad_cursor_flag" Ta "" Ta "Pane keypad cursor flag"
- .It Li "keypad_flag" Ta "" Ta "Pane keypad flag"
- .It Li "line" Ta "" Ta "Line number in the list"
- .It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag"
- .It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag"
- .It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag"
- .It Li "pane_active" Ta "" Ta "1 if active pane"
- .It Li "pane_bottom" Ta "" Ta "Bottom of pane"
- .It Li "pane_current_command" Ta "" Ta "Current command if available"
- .It Li "pane_current_path" Ta "" Ta "Current path if available"
- .It Li "pane_dead" Ta "" Ta "1 if pane is dead"
- .It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane"
- .It Li "pane_height" Ta "" Ta "Height of pane"
- .It Li "pane_id" Ta "#D" Ta "Unique pane ID"
- .It Li "pane_in_mode" Ta "" Ta "If pane is in a mode"
- .It Li "pane_input_off" Ta "" Ta "If input to pane is disabled"
- .It Li "pane_index" Ta "#P" Ta "Index of pane"
- .It Li "pane_left" Ta "" Ta "Left of pane"
- .It Li "pane_pid" Ta "" Ta "PID of first process in pane"
- .It Li "pane_right" Ta "" Ta "Right of pane"
- .It Li "pane_start_command" Ta "" Ta "Command pane started with"
- .It Li "pane_synchronized" Ta "" Ta "If pane is synchronized"
- .It Li "pane_tabs" Ta "" Ta "Pane tab positions"
- .It Li "pane_title" Ta "#T" Ta "Title of pane"
- .It Li "pane_top" Ta "" Ta "Top of pane"
- .It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane"
- .It Li "pane_width" Ta "" Ta "Width of pane"
- .It Li "pid" Ta "" Ta "Server PID"
- .It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane"
- .It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane"
- .It Li "scroll_position" Ta "" Ta "Scroll position in copy mode"
- .It Li "session_alerts" Ta "" Ta "List of window indexes with alerts"
- .It Li "session_attached" Ta "" Ta "Number of clients session is attached to"
- .It Li "session_activity" Ta "" Ta "Integer time of session last activity"
- .It Li "session_created" Ta "" Ta "Integer time session created"
- .It Li "session_last_attached" Ta "" Ta "Integer time session last attached"
- .It Li "session_group" Ta "" Ta "Number of session group"
- .It Li "session_grouped" Ta "" Ta "1 if session in a group"
- .It Li "session_height" Ta "" Ta "Height of session"
- .It Li "session_id" Ta "" Ta "Unique session ID"
- .It Li "session_many_attached" Ta "" Ta "1 if multiple clients attached"
- .It Li "session_name" Ta "#S" Ta "Name of session"
- .It Li "session_width" Ta "" Ta "Width of session"
- .It Li "session_windows" Ta "" Ta "Number of windows in session"
- .It Li "socket_path" Ta "" "Server socket path"
- .It Li "start_time" Ta "" Ta "Server start time"
- .It Li "window_activity" Ta "" Ta "Integer time of window last activity"
- .It Li "window_active" Ta "" Ta "1 if window active"
- .It Li "window_bell_flag" Ta "" Ta "1 if window has bell"
- .It Li "window_find_matches" Ta "" Ta "Matched data from the find-window"
- .It Li "window_flags" Ta "#F" Ta "Window flags"
- .It Li "window_height" Ta "" Ta "Height of window"
- .It Li "window_id" Ta "" Ta "Unique window ID"
- .It Li "window_index" Ta "#I" Ta "Index of window"
- .It Li "window_last_flag" Ta "" Ta "1 if window is the last used"
- .It Li "window_layout" Ta "" Ta "Window layout description, ignoring zoomed window panes"
- .It Li "window_linked" Ta "" Ta "1 if window is linked across sessions"
- .It Li "window_name" Ta "#W" Ta "Name of window"
- .It Li "window_panes" Ta "" Ta "Number of panes in window"
- .It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert"
- .It Li "window_visible_layout" Ta "" Ta "Window layout description, respecting zoomed window panes"
- .It Li "window_width" Ta "" Ta "Width of window"
- .It Li "window_zoomed_flag" Ta "" Ta "1 if window is zoomed"
- .It Li "wrap_flag" Ta "" Ta "Pane wrap flag"
- .El
- .Sh NAMES AND TITLES
- .Nm
- distinguishes between names and titles.
- Windows and sessions have names, which may be used to specify them in targets
- and are displayed in the status line and various lists: the name is the
- .Nm
- identifier for a window or session.
- Only panes have titles.
- A pane's title is typically set by the program running inside the pane and
- is not modified by
- .Nm .
- It is the same mechanism used to set for example the
- .Xr xterm 1
- window title in an
- .Xr X 7
- window manager.
- Windows themselves do not have titles - a window's title is the title of its
- active pane.
- .Nm
- itself may set the title of the terminal in which the client is running, see
- the
- .Ic set-titles
- option.
- .Pp
- A session's name is set with the
- .Ic new-session
- and
- .Ic rename-session
- commands.
- A window's name is set with one of:
- .Bl -enum -width Ds
- .It
- A command argument (such as
- .Fl n
- for
- .Ic new-window
- or
- .Ic new-session ) .
- .It
- An escape sequence:
- .Bd -literal -offset indent
- $ printf '\e033kWINDOW_NAME\e033\e\e'
- .Ed
- .It
- Automatic renaming, which sets the name to the active command in the window's
- active pane.
- See the
- .Ic automatic-rename
- option.
- .El
- .Pp
- When a pane is first created, its title is the hostname.
- A pane's title can be set via the OSC title setting sequence, for example:
- .Bd -literal -offset indent
- $ printf '\e033]2;My Title\e033\e\e'
- .Ed
- .Sh ENVIRONMENT
- When the server is started,
- .Nm
- copies the environment into the
- .Em global environment ;
- in addition, each session has a
- .Em session environment .
- When a window is created, the session and global environments are merged.
- If a variable exists in both, the value from the session environment is used.
- The result is the initial environment passed to the new process.
- .Pp
- The
- .Ic update-environment
- session option may be used to update the session environment from the client
- when a new session is created or an old reattached.
- .Nm
- also initialises the
- .Ev TMUX
- variable with some internal information to allow commands to be executed
- from inside, and the
- .Ev TERM
- variable with the correct terminal setting of
- .Ql screen .
- .Pp
- Commands to alter and view the environment are:
- .Bl -tag -width Ds
- .It Xo Ic set-environment
- .Op Fl gru
- .Op Fl t Ar target-session
- .Ar name Op Ar value
- .Xc
- .D1 (alias: Ic setenv )
- Set or unset an environment variable.
- If
- .Fl g
- is used, the change is made in the global environment; otherwise, it is applied
- to the session environment for
- .Ar target-session .
- The
- .Fl u
- flag unsets a variable.
- .Fl r
- indicates the variable is to be removed from the environment before starting a
- new process.
- .It Xo Ic show-environment
- .Op Fl gs
- .Op Fl t Ar target-session
- .Op Ar variable
- .Xc
- .D1 (alias: Ic showenv )
- Display the environment for
- .Ar target-session
- or the global environment with
- .Fl g .
- If
- .Ar variable
- is omitted, all variables are shown.
- Variables removed from the environment are prefixed with
- .Ql - .
- If
- .Fl s
- is used, the output is formatted as a set of Bourne shell commands.
- .El
- .Sh STATUS LINE
- .Nm
- includes an optional status line which is displayed in the bottom line of each
- terminal.
- By default, the status line is enabled (it may be disabled with the
- .Ic status
- session option) and contains, from left-to-right: the name of the current
- session in square brackets; the window list; the title of the active pane
- in double quotes; and the time and date.
- .Pp
- The status line is made of three parts: configurable left and right sections
- (which may contain dynamic content such as the time or output from a shell
- command, see the
- .Ic status-left ,
- .Ic status-left-length ,
- .Ic status-right ,
- and
- .Ic status-right-length
- options below), and a central window list.
- By default, the window list shows the index, name and (if any) flag of the
- windows present in the current session in ascending numerical order.
- It may be customised with the
- .Ar window-status-format
- and
- .Ar window-status-current-format
- options.
- The flag is one of the following symbols appended to the window name:
- .Bl -column "Symbol" "Meaning" -offset indent
- .It Sy "Symbol" Ta Sy "Meaning"
- .It Li "*" Ta "Denotes the current window."
- .It Li "-" Ta "Marks the last window (previously selected)."
- .It Li "#" Ta "Window is monitored and activity has been detected."
- .It Li "!" Ta "A bell has occurred in the window."
- .It Li "~" Ta "The window has been silent for the monitor-silence interval."
- .It Li "M" Ta "The window contains the marked pane."
- .It Li "Z" Ta "The window's active pane is zoomed."
- .El
- .Pp
- The # symbol relates to the
- .Ic monitor-activity
- window option.
- The window name is printed in inverted colours if an alert (bell, activity or
- silence) is present.
- .Pp
- The colour and attributes of the status line may be configured, the entire
- status line using the
- .Ic status-style
- session option and individual windows using the
- .Ic window-status-style
- window option.
- .Pp
- The status line is automatically refreshed at interval if it has changed, the
- interval may be controlled with the
- .Ic status-interval
- session option.
- .Pp
- Commands related to the status line are as follows:
- .Bl -tag -width Ds
- .It Xo Ic command-prompt
- .Op Fl I Ar inputs
- .Op Fl p Ar prompts
- .Op Fl t Ar target-client
- .Op Ar template
- .Xc
- Open the command prompt in a client.
- This may be used from inside
- .Nm
- to execute commands interactively.
- .Pp
- If
- .Ar template
- is specified, it is used as the command.
- If present,
- .Fl I
- is a comma-separated list of the initial text for each prompt.
- If
- .Fl p
- is given,
- .Ar prompts
- is a comma-separated list of prompts which are displayed in order; otherwise
- a single prompt is displayed, constructed from
- .Ar template
- if it is present, or
- .Ql \&:
- if not.
- .Pp
- Both
- .Ar inputs
- and
- .Ar prompts
- may contain the special character sequences supported by the
- .Ic status-left
- option.
- .Pp
- Before the command is executed, the first occurrence of the string
- .Ql %%
- and all occurrences of
- .Ql %1
- are replaced by the response to the first prompt, the second
- .Ql %%
- and all
- .Ql %2
- are replaced with the response to the second prompt, and so on for further
- prompts.
- Up to nine prompt responses may be replaced
- .Po
- .Ql %1
- to
- .Ql %9
- .Pc .
- .It Xo Ic confirm-before
- .Op Fl p Ar prompt
- .Op Fl t Ar target-client
- .Ar command
- .Xc
- .D1 (alias: Ic confirm )
- Ask for confirmation before executing
- .Ar command .
- If
- .Fl p
- is given,
- .Ar prompt
- is the prompt to display; otherwise a prompt is constructed from
- .Ar command .
- It may contain the special character sequences supported by the
- .Ic status-left
- option.
- .Pp
- This command works only from inside
- .Nm .
- .It Xo Ic display-message
- .Op Fl p
- .Op Fl c Ar target-client
- .Op Fl t Ar target-pane
- .Op Ar message
- .Xc
- .D1 (alias: Ic display )
- Display a message.
- If
- .Fl p
- is given, the output is printed to stdout, otherwise it is displayed in the
- .Ar target-client
- status line.
- The format of
- .Ar message
- is described in the
- .Sx FORMATS
- section; information is taken from
- .Ar target-pane
- if
- .Fl t
- is given, otherwise the active pane for the session attached to
- .Ar target-client .
- .El
- .Sh BUFFERS
- .Nm
- maintains a set of named
- .Em paste buffers .
- Each buffer may be either explicitly or automatically named.
- Explicitly named buffers are named when created with the
- .Ic set-buffer
- or
- .Ic load-buffer
- commands, or by renaming an automatically named buffer with
- .Ic set-buffer
- .Fl n .
- Automatically named buffers are given a name such as
- .Ql buffer0001 ,
- .Ql buffer0002
- and so on.
- When the
- .Ic buffer-limit
- option is reached, the oldest automatically named buffer is deleted.
- Explicitly named are not subject to
- .Ic buffer-limit
- and may be deleted with
- .Ic delete-buffer
- command.
- .Pp
- Buffers may be added using
- .Ic copy-mode
- or the
- .Ic set-buffer
- and
- .Ic load-buffer
- commands, and pasted into a window using the
- .Ic paste-buffer
- command.
- If a buffer command is used and no buffer is specified, the most
- recently added automatically named buffer is assumed.
- .Pp
- A configurable history buffer is also maintained for each window.
- By default, up to 2000 lines are kept; this can be altered with the
- .Ic history-limit
- option (see the
- .Ic set-option
- command above).
- .Pp
- The buffer commands are as follows:
- .Bl -tag -width Ds
- .It Xo
- .Ic choose-buffer
- .Op Fl F Ar format
- .Op Fl t Ar target-window
- .Op Ar template
- .Xc
- Put a window into buffer choice mode, where a buffer may be chosen
- interactively from a list.
- After a buffer is selected,
- .Ql %%
- is replaced by the buffer name in
- .Ar template
- and the result executed as a command.
- If
- .Ar template
- is not given, "paste-buffer -b '%%'" is used.
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- This command works only if at least one client is attached.
- .It Ic clear-history Op Fl t Ar target-pane
- .D1 (alias: Ic clearhist )
- Remove and free the history for the specified pane.
- .It Ic delete-buffer Op Fl b Ar buffer-name
- .D1 (alias: Ic deleteb )
- Delete the buffer named
- .Ar buffer-name ,
- or the most recently added automatically named buffer if not specified.
- .It Xo Ic list-buffers
- .Op Fl F Ar format
- .Xc
- .D1 (alias: Ic lsb )
- List the global buffers.
- For the meaning of the
- .Fl F
- flag, see the
- .Sx FORMATS
- section.
- .It Xo Ic load-buffer
- .Op Fl b Ar buffer-name
- .Ar path
- .Xc
- .D1 (alias: Ic loadb )
- Load the contents of the specified paste buffer from
- .Ar path .
- .It Xo Ic paste-buffer
- .Op Fl dpr
- .Op Fl b Ar buffer-name
- .Op Fl s Ar separator
- .Op Fl t Ar target-pane
- .Xc
- .D1 (alias: Ic pasteb )
- Insert the contents of a paste buffer into the specified pane.
- If not specified, paste into the current one.
- With
- .Fl d ,
- also delete the paste buffer.
- When output, any linefeed (LF) characters in the paste buffer are replaced with
- a separator, by default carriage return (CR).
- A custom separator may be specified using the
- .Fl s
- flag.
- The
- .Fl r
- flag means to do no replacement (equivalent to a separator of LF).
- If
- .Fl p
- is specified, paste bracket control codes are inserted around the
- buffer if the application has requested bracketed paste mode.
- .It Xo Ic save-buffer
- .Op Fl a
- .Op Fl b Ar buffer-name
- .Ar path
- .Xc
- .D1 (alias: Ic saveb )
- Save the contents of the specified paste buffer to
- .Ar path .
- The
- .Fl a
- option appends to rather than overwriting the file.
- .It Xo Ic set-buffer
- .Op Fl a
- .Op Fl b Ar buffer-name
- .Op Fl n Ar new-buffer-name
- .Ar data
- .Xc
- .D1 (alias: Ic setb )
- Set the contents of the specified buffer to
- .Ar data .
- The
- .Fl a
- option appends to rather than overwriting the buffer.
- The
- .Fl n
- option renames the buffer to
- .Ar new-buffer-name .
- .It Xo Ic show-buffer
- .Op Fl b Ar buffer-name
- .Xc
- .D1 (alias: Ic showb )
- Display the contents of the specified buffer.
- .El
- .Sh MISCELLANEOUS
- Miscellaneous commands are as follows:
- .Bl -tag -width Ds
- .It Ic clock-mode Op Fl t Ar target-pane
- Display a large clock.
- .It Xo Ic if-shell
- .Op Fl bF
- .Op Fl t Ar target-pane
- .Ar shell-command command
- .Op Ar command
- .Xc
- .D1 (alias: Ic if )
- Execute the first
- .Ar command
- if
- .Ar shell-command
- returns success or the second
- .Ar command
- otherwise.
- Before being executed,
- .Ar shell-command
- is expanded using the rules specified in the
- .Sx FORMATS
- section, including those relevant to
- .Ar target-pane .
- With
- .Fl b ,
- .Ar shell-command
- is run in the background.
- .Pp
- If
- .Fl F
- is given,
- .Ar shell-command
- is not executed but considered success if neither empty nor zero (after formats
- are expanded).
- .It Ic lock-server
- .D1 (alias: Ic lock )
- Lock each client individually by running the command specified by the
- .Ic lock-command
- option.
- .It Xo Ic run-shell
- .Op Fl b
- .Op Fl t Ar target-pane
- .Ar shell-command
- .Xc
- .D1 (alias: Ic run )
- Execute
- .Ar shell-command
- in the background without creating a window.
- Before being executed, shell-command is expanded using the rules specified in
- the
- .Sx FORMATS
- section.
- With
- .Fl b ,
- the command is run in the background.
- After it finishes, any output to stdout is displayed in copy mode (in the pane
- specified by
- .Fl t
- or the current pane if omitted).
- If the command doesn't return success, the exit status is also displayed.
- .It Xo Ic wait-for
- .Op Fl L | S | U
- .Ar channel
- .Xc
- .D1 (alias: Ic wait )
- When used without options, prevents the client from exiting until woken using
- .Ic wait-for
- .Fl S
- with the same channel.
- When
- .Fl L
- is used, the channel is locked and any clients that try to lock the same
- channel are made to wait until the channel is unlocked with
- .Ic wait-for
- .Fl U .
- This command only works from outside
- .Nm .
- .El
- .Sh TERMINFO EXTENSIONS
- .Nm
- understands some unofficial extensions to
- .Xr terminfo 5 :
- .Bl -tag -width Ds
- .It Em Cs , Cr
- Set the cursor colour.
- The first takes a single string argument and is used to set the colour;
- the second takes no arguments and restores the default cursor colour.
- If set, a sequence such as this may be used
- to change the cursor colour from inside
- .Nm :
- .Bd -literal -offset indent
- $ printf '\e033]12;red\e033\e\e'
- .Ed
- .It Em \&Ss , Se
- Set or reset the cursor style.
- If set, a sequence such as this may be used
- to change the cursor to an underline:
- .Bd -literal -offset indent
- $ printf '\e033[4 q'
- .Ed
- .Pp
- If
- .Em Se
- is not set, \&Ss with argument 0 will be used to reset the cursor style instead.
- .It Em \&Tc
- Indicate that the terminal supports the
- .Ql direct colour
- RGB escape sequence (for example, \ee[38;2;255;255;255m).
- .It Em \&Ms
- Store the current buffer in the host terminal's selection (clipboard).
- See the
- .Em set-clipboard
- option above and the
- .Xr xterm 1
- man page.
- .El
- .Sh CONTROL MODE
- .Nm
- offers a textual interface called
- .Em control mode .
- This allows applications to communicate with
- .Nm
- using a simple text-only protocol.
- .Pp
- In control mode, a client sends
- .Nm
- commands or command sequences terminated by newlines on standard input.
- Each command will produce one block of output on standard output.
- An output block consists of a
- .Em %begin
- line followed by the output (which may be empty).
- The output block ends with a
- .Em %end
- or
- .Em %error .
- .Em %begin
- and matching
- .Em %end
- or
- .Em %error
- have two arguments: an integer time (as seconds from epoch) and command number.
- For example:
- .Bd -literal -offset indent
- %begin 1363006971 2
- 0: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active)
- %end 1363006971 2
- .Ed
- .Pp
- In control mode,
- .Nm
- outputs notifications.
- A notification will never occur inside an output block.
- .Pp
- The following notifications are defined:
- .Bl -tag -width Ds
- .It Ic %exit Op Ar reason
- The
- .Nm
- client is exiting immediately, either because it is not attached to any session
- or an error occurred.
- If present,
- .Ar reason
- describes why the client exited.
- .It Ic %layout-change Ar window-id Ar window-layout Ar window-visible-layout Ar window-flags
- The layout of a window with ID
- .Ar window-id
- changed.
- The new layout is
- .Ar window-layout .
- The window's visible layout is
- .Ar window-visible-layout
- and the window flags are
- .Ar window-flags .
- .It Ic %output Ar pane-id Ar value
- A window pane produced output.
- .Ar value
- escapes non-printable characters and backslash as octal \\xxx.
- .It Ic %session-changed Ar session-id Ar name
- The client is now attached to the session with ID
- .Ar session-id ,
- which is named
- .Ar name .
- .It Ic %session-renamed Ar name
- The current session was renamed to
- .Ar name .
- .It Ic %sessions-changed
- A session was created or destroyed.
- .It Ic %unlinked-window-add Ar window-id
- The window with ID
- .Ar window-id
- was created but is not linked to the current session.
- .It Ic %window-add Ar window-id
- The window with ID
- .Ar window-id
- was linked to the current session.
- .It Ic %window-close Ar window-id
- The window with ID
- .Ar window-id
- closed.
- .It Ic %window-renamed Ar window-id Ar name
- The window with ID
- .Ar window-id
- was renamed to
- .Ar name .
- .El
- .Sh FILES
- .Bl -tag -width "@SYSCONFDIR@/tmux.confXXX" -compact
- .It Pa ~/.tmux.conf
- Default
- .Nm
- configuration file.
- .It Pa @SYSCONFDIR@/tmux.conf
- System-wide configuration file.
- .El
- .Sh EXAMPLES
- To create a new
- .Nm
- session running
- .Xr vi 1 :
- .Pp
- .Dl $ tmux new-session vi
- .Pp
- Most commands have a shorter form, known as an alias.
- For new-session, this is
- .Ic new :
- .Pp
- .Dl $ tmux new vi
- .Pp
- Alternatively, the shortest unambiguous form of a command is accepted.
- If there are several options, they are listed:
- .Bd -literal -offset indent
- $ tmux n
- ambiguous command: n, could be: new-session, new-window, next-window
- .Ed
- .Pp
- Within an active session, a new window may be created by typing
- .Ql C-b c
- (Ctrl
- followed by the
- .Ql b
- key
- followed by the
- .Ql c
- key).
- .Pp
- Windows may be navigated with:
- .Ql C-b 0
- (to select window 0),
- .Ql C-b 1
- (to select window 1), and so on;
- .Ql C-b n
- to select the next window; and
- .Ql C-b p
- to select the previous window.
- .Pp
- A session may be detached using
- .Ql C-b d
- (or by an external event such as
- .Xr ssh 1
- disconnection) and reattached with:
- .Pp
- .Dl $ tmux attach-session
- .Pp
- Typing
- .Ql C-b \&?
- lists the current key bindings in the current window; up and down may be used
- to navigate the list or
- .Ql q
- to exit from it.
- .Pp
- Commands to be run when the
- .Nm
- server is started may be placed in the
- .Pa ~/.tmux.conf
- configuration file.
- Common examples include:
- .Pp
- Changing the default prefix key:
- .Bd -literal -offset indent
- set-option -g prefix C-a
- unbind-key C-b
- bind-key C-a send-prefix
- .Ed
- .Pp
- Turning the status line off, or changing its colour:
- .Bd -literal -offset indent
- set-option -g status off
- set-option -g status-style bg=blue
- .Ed
- .Pp
- Setting other options, such as the default command,
- or locking after 30 minutes of inactivity:
- .Bd -literal -offset indent
- set-option -g default-command "exec /bin/ksh"
- set-option -g lock-after-time 1800
- .Ed
- .Pp
- Creating new key bindings:
- .Bd -literal -offset indent
- bind-key b set-option status
- bind-key / command-prompt "split-window 'exec man %%'"
- bind-key S command-prompt "new-window -n %1 'ssh %1'"
- .Ed
- .Sh SEE ALSO
- .Xr pty 4
- .Sh AUTHORS
- .An Nicholas Marriott Aq Mt nicholas.marriott@gmail.com
|