1
0
Fork 0
mirror of https://github.com/tmux/tmux.git synced 2026-05-14 06:30:41 -04:00
tmux source code
  • C 87.2%
  • Roff 7.3%
  • Shell 2.8%
  • Yacc 1.3%
  • M4 0.8%
  • Other 0.5%
Find a file
2026-05-12 16:01:08 +01:00
.github Update tmux bash completion file link in README, from Hyun Seungmin. 2026-02-20 08:43:35 +00:00
compat Work around systemd killing panes early during system shutdown by creating 2026-03-18 08:46:16 +00: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 Update test output. 2026-05-12 10:38:29 +01:00
tools Merge SIXEL branch. 2023-08-22 08:43:35 +01:00
.gitignore Add .swp, from Nikola Tadic. 2025-02-20 13:31:07 +00: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' 2024-05-13 14:01:10 +01:00
attributes.c Change noattr to be an explicit attribute in the style so that it works 2025-12-02 14:25:05 +00:00
autogen.sh Bump automake and autoconf versions. 2017-03-22 08:45:53 +00:00
cfg.c Merge branch 'obsd-master' 2025-09-08 10:01:08 +01:00
CHANGES Update CHANGES. 2025-12-05 05:39:46 +00:00
client.c Merge branch 'obsd-master' 2025-04-25 16:01:08 +01:00
cmd-attach-session.c Show config errors on attach if they were not shown when the session 2022-07-06 08:40:52 +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 Ensure break-pane -P prints when only one pane is left. From Chaoyi Yin 2025-09-01 07:53:49 +00:00
cmd-capture-pane.c A couple of memory leaks from someone in GitHub issue 4590. 2025-08-22 07:48:23 +00:00
cmd-choose-tree.c Validate -O flags, from Dane Jensen in GitHub issue 4889. 2026-02-27 08:25:12 +00:00
cmd-command-prompt.c Add -C flag to command-prompt to match display-message -C (do not freeze 2026-04-13 09:33:09 +00:00
cmd-confirm-before.c Another memory leak, from Huihui Huang. 2026-03-04 08:15:24 +00:00
cmd-copy-mode.c Add support for line numbers in copy mode. A new copy-mode-line-numbers 2026-05-01 09:44:42 +00:00
cmd-detach-client.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +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 Make pane offsets signed, needed for floating panes. 2026-05-12 12:05:41 +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' 2025-12-22 10:01:08 +00: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-04-28 12:01:08 +01:00
cmd-kill-pane.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +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 args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +00:00
cmd-kill-window.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +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 Do not leak command in list-keys, reported by tb@. Also tidy up some 2026-04-02 09:58:14 +00:00
cmd-list-panes.c Validate -O flags, from Dane Jensen in GitHub issue 4889. 2026-02-27 08:25:12 +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 Sanitize pane titles and window and session names more consistently and 2026-04-22 07:10:16 +00:00
cmd-new-window.c Fix documentation around optional arguments. This includes: 2025-04-09 07:03:04 +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 a get-clipboard option which when enabled (the default is off) uses 2025-12-02 08:20:32 +00:00
cmd-rename-session.c Sanitize pane titles and window and session names more consistently and 2026-04-22 07:10:16 +00:00
cmd-rename-window.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +00:00
cmd-resize-pane.c Do not notify window-layout-changed if the window is about to be 2024-03-21 11:30:42 +00: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 Fix documentation around optional arguments. This includes: 2025-04-09 07:03:04 +00:00
cmd-respawn-window.c Fix documentation around optional arguments. This includes: 2025-04-09 07:03:04 +00:00
cmd-rotate-window.c Add args parsing callback for some future work, currently unused. 2021-08-21 10:22:38 +00:00
cmd-run-shell.c Do not hang run-shell when job_run fails, from Barrett Ruth in GitHub 2026-04-28 08:34:15 +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 Add mode 2031 support to automatically report dark or light theme. tmux 2025-03-04 08:45:04 +00: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 tmux: tc can be NULL, so check before deref to avoid crashing the server 2026-03-04 07:17:01 +00:00
cmd-server-access.c Another memory leak from Huihui Huang. 2026-02-23 08:54:56 +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 Validate command argument types (string or command list) and give more 2021-08-25 08:51:55 +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' 2025-04-09 10:01:12 +01:00
cmd-show-prompt-history.c Free history entries properly, from Huihui Huang in GitHub issue 4870. 2026-02-23 09:12:57 +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' 2025-04-09 10:01:12 +01:00
cmd-swap-pane.c Add calls to layout_fix_panes after a pane swap to fix case if one of 2025-04-22 12:36:03 +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 Validate -O flags, from Dane Jensen in GitHub issue 4889. 2026-02-27 08:25:12 +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-05-12 16:01:08 +01:00
colour.c Improve code readability in colour_palette_get and colour_palette_set. 2025-12-03 07:41:38 +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 Add a configure flag for ASAN. 2026-05-06 08:23:45 +01:00
control-notify.c Do not notify clients if not fully initialized, from Ben Maurer in 2026-04-13 09:35:20 +00:00
control.c Merge branch 'obsd-master' 2026-05-12 12:01:11 +01:00
COPYING Make COPYING the same. 2026-03-25 10:38:03 +00:00
environ.c Merge branch 'obsd-master' 2026-02-23 10:01:08 +00: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-04-26 21:12:23 +01:00
format-draw.c Add some new mouse ranges called "control0" to "control9", will be used 2026-04-03 10:13:20 +00:00
format.c Merge branch 'obsd-master' 2026-05-06 16:01:09 +01:00
grid-reader.c Fix word navigation on lines with tabs, from Alexander Arch. 2024-11-20 20:54:02 +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 When a cell is cleared after having been moved, we cannot reuse its 2026-04-05 15:43:17 +00:00
hyperlinks.c Merge branch 'obsd-master' 2024-08-28 10:27:21 +01:00
image-sixel.c Avoid overshooting Sixel height in sixel_parse_write, GitHub issue 5071 from 2026-05-11 12:00:06 +01:00
image.c Track which list (images or saved_images) each image is on so they can be 2026-04-27 13:09:07 +01:00
input-keys.c Merge branch 'obsd-master' 2026-03-31 16:01:08 +01:00
input.c Merge branch 'obsd-master' 2026-04-23 11:58:17 +01:00
job.c Merge branch 'obsd-master' 2025-09-08 14:01:08 +01:00
key-bindings.c Add Emacs-style recentre-top-bottom, GitHub issue 5053 from sinyax75 at 2026-05-07 09:15:44 +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 Require layout prefix to be 5 characters, GitHub issue 5067 from 2026-05-07 09:21:05 +00:00
layout-set.c Introduce a new window option: tiled-layout-max-columns. It configures 2025-09-07 14:03:18 +00:00
layout.c Fix the size caluation for left-right windows used to spread out cells 2025-12-03 07:35:32 +00:00
log.c Spacing/style nits. 2022-05-30 12:55:25 +00:00
Makefile.am Add a configure flag for ASAN. 2026-05-06 08:23:45 +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 Make C-[ have the same bindings as Escape for terminals with extended 2026-04-28 10:01:07 +00:00
mode-tree.c Add some checks on line size to avoid underflow, from san65384 at gmail 2026-05-01 11:56:41 +00:00
names.c Sanitize pane titles and window and session names more consistently and 2026-04-22 07:10:16 +00:00
notify.c Merge branch 'obsd-master' 2026-04-14 12:01:08 +01:00
options-table.c Merge branch 'obsd-master' 2026-05-03 20:01:09 +01:00
options.c When history-limit is changed, apply to existing panes, not just new 2026-01-22 08:55:01 +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-05-10 07:42:35 +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 Merge branch 'obsd-master' 2026-04-28 12:01:08 +01:00
popup.c Merge branch 'obsd-master' 2026-04-14 12:01:08 +01:00
proc.c Update imsg and remove workaround. 2024-11-27 10:30:52 +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 Do not read off end of buffer if it ends in \ when expanding \c, found 2026-04-04 11:32:05 +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-05-12 16:01:08 +01:00
screen-write.c Merge branch 'obsd-master' 2026-02-23 08:11:38 +00:00
screen.c Merge branch 'obsd-master' 2026-05-05 16:01:08 +01:00
server-acl.c Spacing/style nits. 2022-05-30 12:55:25 +00:00
server-client.c Merge branch 'obsd-master' 2026-05-12 16:01:08 +01:00
server-fn.c Merge branch 'obsd-master' 2026-04-04 20:01:11 +01:00
server.c Merge branch 'obsd-master' 2025-08-22 08:37:26 +01:00
session.c Merge branch 'obsd-master' 2026-04-23 11:58:17 +01:00
sort.c Fix NULL dereference in sort.c, from Dane Jensen. 2026-04-02 08:01:47 +00:00
spawn.c Merge branch 'obsd-master' 2026-04-23 11:58:17 +01:00
status.c Do not cache format for status line because it stores various pointers 2026-05-08 06:57:38 +00:00
style.c Add some new mouse ranges called "control0" to "control9", will be used 2026-04-03 10:13:20 +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-05-07 12:01:08 +01:00
tmux.c Merge branch 'obsd-master' 2026-04-23 11:58:17 +01:00
tmux.h Merge branch 'obsd-master' 2026-05-12 16:01:08 +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 Set up default and last cell before clearing padding, reported by 2026-04-04 11:39:49 +00:00
tty-features.c Merge branch 'obsd-master' 2026-04-23 11:58:17 +01:00
tty-keys.c Add a default set of features for WezTerm. 2026-04-22 06:57:08 +00:00
tty-term.c Merge branch 'obsd-master' 2026-04-23 11:58:17 +01:00
tty.c Merge branch 'obsd-master' 2026-04-23 11:58:17 +01:00
utf8-combined.c Check FIONREAD for all panes not just piped panes, fixes issues with 2026-05-12 09:37:25 +00:00
utf8.c Merge branch 'obsd-master' 2026-05-12 12:01:11 +01:00
window-buffer.c Merge branch 'obsd-master' 2026-03-12 16:01:08 +00:00
window-client.c Add a short builtin help text for each mode accessible with C-h, 2026-03-12 12:40:40 +00:00
window-clock.c Merge branch 'obsd-master' 2026-04-23 11:58:17 +01:00
window-copy.c Require layout prefix to be 5 characters, GitHub issue 5067 from 2026-05-07 09:21:05 +00:00
window-customize.c Add a short builtin help text for each mode accessible with C-h, 2026-03-12 12:40:40 +00:00
window-tree.c Merge branch 'obsd-master' 2026-05-03 20:01:09 +01:00
window.c Merge branch 'obsd-master' 2026-05-12 12:01:11 +01:00
xmalloc.c Add xrecallocarray. 2019-11-28 09:51:58 +00:00
xmalloc.h Merge branch 'obsd-master' into master 2021-08-25 10:01:10 +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.