tmux source code
  • C 79.2%
  • Shell 12.1%
  • Roff 6.4%
  • Yacc 1.1%
  • M4 0.7%
  • Other 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-05 15:50:54 +01:00
.github Linux arm64 fails. 2026-07-04 19:40:28 +01:00
compat Another const from Jere Viikari. 2026-06-14 09:50:50 +01:00
fuzz Add new fuzzers for command parsing, formats and styles, from David Korczynski 2026-03-30 10:20:16 +01:00
logo Icons, from someone on GitHub in issue 2870. 2021-09-10 15:00:58 +01:00
presentations Add a couple of presentations I wrote a few years ago. One for the ill-fated 2015-06-04 08:23:40 +01:00
regress Change a couple of regress configs that are incorret and only work because of 2026-07-05 14:36:47 +01:00
tools Add X11 colours script. 2026-06-26 11:28:15 +01:00
.gitignore Add to .gitignore. 2026-06-23 08:36:07 +01:00
.mailmap mailcap: update entry for Thomas Adam 2026-03-01 17:01:08 +00:00
.travis.yml Add FreeBSD CI, from Jan Beich. 2020-05-19 12:34:34 +01:00
alerts.c Merge branch 'obsd-master' 2025-02-10 10:01:11 +00:00
arguments.c Merge branch 'obsd-master' 2026-06-26 11:15:06 +01:00
attributes.c Add a raw grid output to capture-pane for debugging and regression 2026-07-02 08:51:05 +00:00
autogen.sh Bump automake and autoconf versions. 2017-03-22 08:45:53 +00:00
cfg.c Merge branch 'obsd-master' 2026-06-25 13:29:53 +01:00
CHANGES Fix so that the end of a synchronized update again triggers a redraw. 2026-07-01 17:49:40 +01:00
client.c Merge branch 'obsd-master' 2025-04-25 16:01:08 +01:00
cmd-attach-session.c Tighten up read-only checks on attach-session, detach-client and 2026-05-22 15:22:43 +00:00
cmd-bind-key.c Fix documentation around optional arguments. This includes: 2025-04-09 07:03:04 +00:00
cmd-break-pane.c Allow :. in names again, forbidding them is overly pernickety. Only 2026-06-29 19:53:42 +01:00
cmd-capture-pane.c Merge branch 'obsd-master' 2026-07-02 12:00:06 +01:00
cmd-choose-tree.c Add switch-mode a fast switcher with fuzzy searching, bound to Tab (for 2026-06-26 14:40:30 +00:00
cmd-command-prompt.c Major rework of prompts. The basic prompt mechanics (draw, editing, etc) 2026-06-25 11:39:11 +00:00
cmd-confirm-before.c Add some enums for prompt return values to make them a bit less confusing. 2026-06-24 10:55:39 +00:00
cmd-copy-mode.c Fix scrollbar drag position when window is taller than tty, from Michael 2026-06-04 09:24:03 +00:00
cmd-detach-client.c Tighten up read-only checks on attach-session, detach-client and 2026-05-22 15:22:43 +00:00
cmd-display-menu.c Merge branch 'obsd-master' 2026-03-06 12:01:08 +00:00
cmd-display-message.c Free format on -a, reported by Huihui Huang. 2026-02-23 08:46:57 +00:00
cmd-display-panes.c Expand colours as formats like styles. 2026-06-25 16:32:42 +00:00
cmd-find-window.c Only wrap pattern in *s if using a regular expression. 2023-12-27 20:42:01 +00:00
cmd-find.c Merge branch 'obsd-master' 2026-07-02 10:00:06 +01:00
cmd-if-shell.c Do not leak on failure, GitHub 4565. 2025-08-01 09:05:51 +00:00
cmd-join-pane.c Merge branch 'obsd-master' 2026-07-03 12:15:06 +01:00
cmd-kill-pane.c Add a context for cell/palette/hyperlinks when drawing to tty to avoid 2026-06-09 21:22:22 +00:00
cmd-kill-server.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +00:00
cmd-kill-session.c Add missing headers. 2026-06-09 12:57:40 +00:00
cmd-kill-window.c Add missing headers. 2026-06-09 12:57:40 +00:00
cmd-list-buffers.c Validate -O flags, from Dane Jensen in GitHub issue 4889. 2026-02-27 08:25:12 +00:00
cmd-list-clients.c Validate -O flags, from Dane Jensen in GitHub issue 4889. 2026-02-27 08:25:12 +00:00
cmd-list-commands.c Add sorting (-O flag) and a custom format (-F) to list-keys, from Dane 2026-02-24 08:20:52 +00:00
cmd-list-keys.c Add a couple of format c/f and c/b to emit colours. 2026-07-01 13:12:17 +00:00
cmd-list-panes.c Add pane_x, y, z format variables and show in list-panes. 2026-06-01 14:01:09 +00:00
cmd-list-sessions.c Validate -O flags, from Dane Jensen in GitHub issue 4889. 2026-02-27 08:25:12 +00:00
cmd-list-windows.c Validate -O flags, from Dane Jensen in GitHub issue 4889. 2026-02-27 08:25:12 +00:00
cmd-load-buffer.c Tweak error messages so that file name isn't modified when we capitalize 2025-10-28 07:32:26 +00:00
cmd-lock-server.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +00:00
cmd-move-window.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +00:00
cmd-new-session.c Allow :. in names again, forbidding them is overly pernickety. Only 2026-06-29 19:53:42 +01:00
cmd-new-window.c Add -E to new-window and respawn-pane and respawn-window to create empty 2026-07-03 16:09:49 +00:00
cmd-parse.y Add a limit on maximum length of environment variable assignment in 2026-04-27 12:31:11 +00:00
cmd-paste-buffer.c Merge branch 'obsd-master' 2026-03-04 12:01:09 +00:00
cmd-pipe-pane.c Merge branch 'obsd-master' 2026-04-28 12:01:08 +01:00
cmd-queue.c Merge branch 'obsd-master' 2025-02-10 10:01:11 +00:00
cmd-refresh-client.c Add set-hook -B install a subscription like in control mode. 2026-07-05 08:24:00 +00:00
cmd-rename-session.c Allow :. in names again, forbidding them is overly pernickety. Only 2026-06-29 19:53:42 +01:00
cmd-rename-window.c Allow :. in names again, forbidding them is overly pernickety. Only 2026-06-29 19:53:42 +01:00
cmd-resize-pane.c Add caching of scrollbar options to 3.7a branch. 2026-06-30 07:41:02 +01:00
cmd-resize-window.c Get rid of some warnings with GCC 10, from Thomas Klausner. 2023-06-30 13:19:32 +00:00
cmd-respawn-pane.c Add -E to new-window and respawn-pane and respawn-window to create empty 2026-07-03 16:09:49 +00:00
cmd-respawn-window.c Add -E to new-window and respawn-pane and respawn-window to create empty 2026-07-03 16:09:49 +00:00
cmd-rotate-window.c Rewrite screen-redraw.c to make it tidier and more maintainable. A scene 2026-06-22 08:47:45 +00:00
cmd-run-shell.c Allow run-shell arguments after a shell command to be expanded as #1, #2 2026-06-01 08:27:37 +00:00
cmd-save-buffer.c Merge branch 'obsd-master' 2025-10-28 10:01:07 +00:00
cmd-select-layout.c Bring some new formats from the floating panes work: pane_zoomed_flag, 2026-04-04 16:40:27 +00:00
cmd-select-pane.c Be more strict about what names and titles we allow and reject them 2026-06-17 09:10:55 +01:00
cmd-select-window.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +00:00
cmd-send-keys.c Change send-keys -K to insert keys in the right place in the queue, like 2026-06-11 19:13:34 +00:00
cmd-server-access.c Use name as marker for failure not type (which must be set to be in the error). 2026-06-09 12:58:40 +00:00
cmd-set-buffer.c Initialize bufname, reported by Mark Kelly. 2026-02-15 17:43:26 +00:00
cmd-set-environment.c Make some usages more consistent and add -h to show usage, GitHub issue 2025-04-09 06:27:43 +00:00
cmd-set-option.c Add set-hook -B install a subscription like in control mode. 2026-07-05 08:24:00 +00:00
cmd-show-environment.c Make some usages more consistent and add -h to show usage, GitHub issue 2025-04-09 06:27:43 +00:00
cmd-show-messages.c Merge branch 'obsd-master' 2025-11-18 10:01:07 +00:00
cmd-show-options.c Merge branch 'obsd-master' 2026-07-05 09:30:06 +01:00
cmd-show-prompt-history.c Major rework of prompts. The basic prompt mechanics (draw, editing, etc) 2026-06-25 11:39:11 +00:00
cmd-source-file.c Merge branch 'obsd-master' 2025-11-18 10:01:07 +00:00
cmd-split-window.c Merge branch 'obsd-master' 2026-07-02 23:00:06 +01:00
cmd-swap-pane.c Enable swap-pane on floating panes again but not -U/-D. From Dane 2026-07-02 22:31:25 +00:00
cmd-swap-window.c Preserve marked pane with swap-window and move-window, GitHub issue 3443. 2025-10-30 13:52:08 +00:00
cmd-switch-client.c Tighten up read-only checks on attach-session, detach-client and 2026-05-22 15:22:43 +00:00
cmd-unbind-key.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +00:00
cmd-wait-for.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +00:00
cmd.c Merge branch 'obsd-master' 2026-06-26 15:56:03 +01:00
colour.c Add a couple of format c/f and c/b to emit colours. 2026-07-01 13:12:17 +00:00
compat.h Turn off regular expressions when fuzzing because there are cases that take too 2026-04-26 21:19:16 +01:00
configure.ac Bump version. 2026-07-03 11:50:24 +01:00
control-notify.c Do not dereference the current window if it is NULL (can be if the 2026-06-19 08:21:55 +00:00
control.c Merge branch 'obsd-master' 2026-07-05 09:30:06 +01:00
COPYING Make COPYING the same. 2026-03-25 10:38:03 +00:00
environ.c Merge branch 'obsd-master' 2026-06-13 21:15:06 +01:00
example_tmux.conf Use terminal-features instead of terminal-overrides to enable truecolor support 2024-08-04 09:59:18 +01:00
file.c Merge branch 'obsd-master' 2026-05-18 09:38:02 +01:00
format-draw.c Add link=/nolink to styles to specific a hyperlink. GitHub issue 4280 2026-06-29 17:08:52 +00:00
format.c Merge branch 'obsd-master' 2026-07-03 20:00:06 +01:00
fuzzy.c Add switch-mode a fast switcher with fuzzy searching, bound to Tab (for 2026-06-26 14:40:30 +00:00
grid-reader.c When mode-keys is set to vi, do not allow the cursor to go into the 2026-05-17 13:12:21 +00:00
grid-view.c When history-limit is changed, apply to existing panes, not just new 2026-01-22 08:55:01 +00:00
grid.c Do not invoke clear check on respawn. 2026-07-04 17:00:28 +01:00
hyperlinks.c Merge branch 'obsd-master' 2026-06-29 18:00:06 +01:00
image-sixel.c Always set SIXEL aspect ratio to 1:1, GitHub issue 5291 from James Holderness. 2026-06-28 17:01:52 +01:00
image.c Track which list (images or saved_images) each image is on so they can be 2026-05-20 12:15:34 +01:00
input-keys.c Merge branch 'obsd-master' 2026-06-15 23:00:06 +01:00
input.c Fix so that the end of a synchronized update again triggers a redraw. 2026-07-01 17:49:40 +01:00
job.c Merge branch 'obsd-master' 2025-09-08 14:01:08 +01:00
key-bindings.c Add floating panes key bindings and menu options, from Dane Jensen. 2026-07-03 18:14:45 +00:00
key-string.c Reorganize structure of key_code so that it can be built directly by 2026-03-31 11:46:43 +00:00
layout-custom.c Change layout sets to build the layout using the new mechanics, from 2026-07-01 16:43:14 +00:00
layout-set.c Change layout sets to build the layout using the new mechanics, from 2026-07-01 16:43:14 +00:00
layout.c Add some missing checks which make new pane positions off, from Dane 2026-07-04 18:54:18 +00:00
log.c Remove some leftover debug code. 2026-05-17 16:02:33 +00:00
Makefile.am Mouse on by default. 2026-07-05 15:50:54 +01:00
mdoc2man.awk Generate tmux.1 using mdoc2man.awk on Solaris, issue brought up and changes 2013-04-16 11:33:53 +01:00
menu.c Set check callback for menus so they aren't overwritten by sync. 2026-06-23 08:35:09 +01:00
mode-tree.c Apply tree mode selection style to the entire line. 2026-07-05 10:28:02 +00:00
monitor.c Add set-hook -B install a subscription like in control mode. 2026-07-05 08:24:00 +00:00
names.c Allow :. in names again, forbidding them is overly pernickety. Only 2026-06-29 19:53:42 +01:00
notify.c Merge branch 'obsd-master' 2026-07-05 09:30:06 +01:00
options-table.c Merge branch 'obsd-master' 2026-07-05 15:01:36 +01:00
options.c Add set-hook -B install a subscription like in control mode. 2026-07-05 08:24:00 +00:00
osdep-aix.c The AIX functions hang on 7300-01-01-2246 according to GitHub issue 4400. 2025-07-22 09:09:56 +01:00
osdep-cygwin.c Look for libevent2 differently from libevent for platforms with both. 2021-01-17 17:21:51 +00:00
osdep-darwin.c Use MAC_OS_X_VERSION_MIN_REQUIRED. From Sevan Janiyan, GitHub issue 4550. 2025-07-13 07:26:35 +01:00
osdep-dragonfly.c Look for libevent2 differently from libevent for platforms with both. 2021-01-17 17:21:51 +00:00
osdep-freebsd.c Look for libevent2 differently from libevent for platforms with both. 2021-01-17 17:21:51 +00:00
osdep-haiku.c The AIX functions hang on 7300-01-01-2246 according to GitHub issue 4400. 2025-07-22 09:09:56 +01:00
osdep-hpux.c Look for libevent2 differently from libevent for platforms with both. 2021-01-17 17:21:51 +00:00
osdep-linux.c Look for libevent2 differently from libevent for platforms with both. 2021-01-17 17:21:51 +00:00
osdep-netbsd.c Remove unnecessary declarations. 2022-04-06 14:19:50 +01:00
osdep-openbsd.c Use PATH_MAX instead of MAXPATHLEN. 2022-04-06 14:19:50 +01:00
osdep-sunos.c Looks like evports on SunOS are broken also, disable them. GitHub issue 2702. 2021-06-10 09:23:03 +01:00
osdep-unknown.c Look for libevent2 differently from libevent for platforms with both. 2021-01-17 17:21:51 +00:00
paste.c Allow :. in names again, forbidding them is overly pernickety. Only 2026-06-29 19:53:42 +01:00
popup.c Merge branch 'obsd-master' 2026-06-23 07:35:51 +01:00
proc.c Merge branch 'obsd-master' 2026-06-08 23:00:06 +01:00
prompt-history.c Major rework of prompts. The basic prompt mechanics (draw, editing, etc) 2026-06-25 11:39:11 +00:00
prompt.c Add switch-mode a fast switcher with fuzzy searching, bound to Tab (for 2026-06-26 14:40:30 +00:00
README New bash completion URL, from David Mandelberg. 2025-05-22 08:52:10 +01:00
README.ja New bash completion URL, from David Mandelberg. 2025-05-22 08:52:10 +01:00
regsub.c Make pane scrollbars able to auto-hide after a short timeout. This 2026-06-29 07:45:09 +00:00
resize.c Fix clients_calculate_size for manual type when window is NULL. From 2026-02-10 10:02:11 +00:00
screen-redraw.c Merge branch 'obsd-master' 2026-07-01 17:52:07 +01:00
screen-write.c Merge branch 'obsd-master' 2026-07-04 17:06:56 +01:00
screen.c Do not invoke clear check on respawn. 2026-07-04 17:00:28 +01:00
server-acl.c Allow ACLs to use groups as well as users, GitHub issue 4917. 2026-06-08 21:38:19 +00:00
server-client.c Merge branch 'obsd-master' 2026-07-04 23:15:06 +01:00
server-fn.c Merge branch 'obsd-master' 2026-05-18 09:38:02 +01:00
server.c Merge branch 'obsd-master' 2026-06-25 13:29:53 +01:00
session.c Be more strict about what names and titles we allow and reject them 2026-06-17 09:10:55 +01:00
sort.c Make pane scrollbars able to auto-hide after a short timeout. This 2026-06-29 07:45:09 +00:00
spawn.c Do not invoke clear check on respawn. 2026-07-04 17:00:28 +01:00
status.c Use message-style as default for message-format again. GitHub issue 5315. 2026-07-02 21:45:36 +00:00
style.c Add link=/nolink to styles to specific a hyperlink. GitHub issue 4280 2026-06-29 17:08:52 +00:00
SYNCING portable: SYNCING: correct tmux-openbsd 2025-03-21 12:46:06 +00:00
tmux-protocol.h If a pane is killed, cancel reading from the file. GitHub issue 3422. 2023-01-06 07:09:27 +00:00
tmux.1 Merge branch 'obsd-master' 2026-07-05 09:30:06 +01:00
tmux.c Allow :. in names again, forbidding them is overly pernickety. Only 2026-06-29 19:53:42 +01:00
tmux.h Merge branch 'obsd-master' 2026-07-05 15:01:36 +01:00
tty-acs.c Fix a couple of rounded border characters, from Alexis Hildebrandt. 2023-08-08 07:19:48 +00:00
tty-draw.c Use a helper and skip some setup for empty cells. 2026-06-19 10:38:29 +00:00
tty-features.c Merge branch 'obsd-master' 2026-07-01 07:30:06 +01:00
tty-keys.c Infer the terminal theme from the background colour correctly, if theme 2026-07-04 22:06:45 +00:00
tty-term.c Merge branch 'obsd-master' 2026-06-13 10:30:06 +01:00
tty.c Merge branch 'obsd-master' 2026-06-26 13:00:09 +01:00
utf8-combined.c Two fixes for RI codepoints. Firstly, do not combine more than two of 2026-06-09 13:20:14 +01:00
utf8.c Merge branch 'obsd-master' 2026-05-12 12:01:11 +01:00
window-border.c Rewrite screen-redraw.c to make it tidier and more maintainable. A scene 2026-06-22 08:47:45 +00:00
window-buffer.c Merge branch 'obsd-master' 2026-06-26 09:30:07 +01:00
window-client.c Do not use stale pointers in modes. 2026-07-04 22:09:06 +00:00
window-clock.c Merge branch 'obsd-master' 2026-06-25 18:00:06 +01:00
window-copy.c Make pane scrollbars able to auto-hide after a short timeout. This 2026-06-29 07:45:09 +00:00
window-customize.c Apply better colours to various builtin bits in modes. 2026-06-26 08:10:48 +00:00
window-switch.c Add switch-mode a fast switcher with fuzzy searching, bound to Tab (for 2026-06-26 14:40:30 +00:00
window-tree.c Merge branch 'obsd-master' 2026-07-04 23:30:06 +01:00
window-visible.c Cache scrollbar options in window to avoid a slow lookup when working 2026-06-29 19:03:34 +00:00
window.c Merge branch 'obsd-master' 2026-07-01 17:52:07 +01:00
xmalloc.c Use evbuffer for building S, W, L lists, also add an xmemdup helper 2026-06-18 10:56:22 +00:00
xmalloc.h Merge branch 'obsd-master' 2026-06-18 12:15:05 +01:00

Welcome to tmux!

tmux is a terminal multiplexer: it enables a number of terminals to be created,
accessed, and controlled from a single screen. tmux may be detached from a
screen and continue running in the background, then later reattached.

This release runs on OpenBSD, FreeBSD, NetBSD, Linux, macOS and Solaris.

* Dependencies

tmux depends on libevent 2.x, available from:

	https://github.com/libevent/libevent/releases/latest

It also depends on ncurses, available from:

	https://invisible-mirror.net/archives/ncurses/

To build tmux, a C compiler (for example gcc or clang), make, pkg-config and a
suitable yacc (yacc or bison) are needed.

* Installation

To build and install tmux from a release tarball, use:

	$ ./configure && make
	$ sudo make install

tmux can use the utempter library to update utmp(5), if it is installed - run
configure with --enable-utempter to enable this.

To get and build the latest from version control - note that this requires
autoconf, automake and pkg-config:

	$ git clone https://github.com/tmux/tmux.git
	$ cd tmux
	$ sh autogen.sh
	$ ./configure && make
	$ sudo make install

* Contributing

Bug reports, feature suggestions and especially code contributions are most
welcome. Please send by email to:

	tmux-users@googlegroups.com

Or open a GitHub issue or pull request.

* Documentation

For documentation on using tmux, see the tmux.1 manpage. View it from the
source tree with:

	$ nroff -mdoc tmux.1|less

A small example configuration is in example_tmux.conf.

Other documentation is available in the wiki:

	https://github.com/tmux/tmux/wiki

Also see the tmux FAQ at:

	https://github.com/tmux/tmux/wiki/FAQ

A bash(1) completion file is at:

	https://github.com/scop/bash-completion/blob/main/completions/tmux

For debugging, run tmux with -v and -vv to generate server and client log files
in the current directory.

* Support

The tmux mailing list for general discussion and bug reports is:

	https://groups.google.com/forum/#!forum/tmux-users

Subscribe by sending an email to:

	tmux-users+subscribe@googlegroups.com

* License

This file and the CHANGES files are licensed under the ISC license. All other
files have a license and copyright notice at their start.