Go to file
Nicholas Marriott 641191ab20 Support for windows larger than the client.
This adds two new options, window-size and default-size, and a new
command, resize-window.

The force-width and force-height options, and the session_width and
session_height formats have been removed.

The new window-size option tells tmux how to work out the size of
windows: largest means it picks the size of the largest session,
smallest the smallest session (similar to the old behaviour) and
manual means that it does not automatically resize
windows. aggressive-resize modifies the choice of session for largest
and smallest as it did before.

If a window is in a session attached to a client that is too small,
only part of the window is shown. tmux attempts to keep the cursor
visible, so the part of the window displayed is changed as the cursor
moves (with a small delay, to try and avoid excess redrawing when
applications redraw status lines or similar that are not currently
visible).

Drawing windows which are larger than the client is not as efficient
as those which fit, particularly when the cursor moves, so it is
recommended to avoid using this on slow machines or networks (set
window-size to smallest or manual).

The resize-window command can be used to resize a window manually. If
it is used, the window-size option is automatically set to manual for
the window (undo this with "setw -u window-size"). resize-window works
in a similar way to resize-pane (-U -D -L -R -x -y flags) but also has
-a and -A flags. -a sets the window to the size of the smallest client
(what it would be if window-size was smallest) and -A the largest.

For the same behaviour as force-width or force-height, use
resize-width -x or -y.

If the global window-size option is set to manual, the default-size
option is used for new windows. If -x or -y is used with new-session,
that sets the default-size option for the new session.

The maximum size of a window is 10000x10000. But expect applications
to complain and higher memory use if you make a window that big. The
minimum size is the size required for the current layout including
borders.

This change allows some code improvements, most notably that since
windows can now never be cropped, that code can be removed from the
layout code, and since panes can now never be outside the size of the
window, window_pane_visible can be removed.
2018-08-20 15:22:14 +01:00
compat Sync imsg from OpenBSD. 2018-04-23 15:40:15 +01:00
logo Add tmux logo, createed by Jason Long. 2015-04-28 13:46:47 +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 Add format string test, from "sadie-parayno" in GitHub issue 1358. 2018-05-28 12:48:15 +01:00
tools Update CHANGES. 2018-02-19 21:24:17 +00:00
.gitignore Add *.dSYM for OS X. 2016-06-15 09:51:08 +01:00
.mailmap Add to .mailmap. 2016-07-19 10:42:44 +01:00
.travis.yml TRAVIS-CI: correct path to configure 2015-05-17 14:39:04 +01:00
alerts.c Redrawing status is needed after changing window flags or title does not 2017-12-28 12:10:50 +00:00
arguments.c Merge branch 'obsd-master' 2017-08-23 12:01:13 +01:00
attributes.c Add support for the strikethrough attribute (SGR 9), using the new smxx 2017-03-22 07:16:54 +00:00
autogen.sh Bump automake and autoconf versions. 2017-03-22 08:45:53 +00:00
cfg.c Merge branch 'obsd-master' 2018-01-17 11:26:10 +00:00
CHANGES Now master again. 2018-08-17 11:46:08 +01:00
client.c Linux: include sys/file.h for flock() 2018-06-07 09:17:05 +01:00
cmd-attach-session.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-bind-key.c Bad merge. 2017-01-25 16:38:13 +00:00
cmd-break-pane.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-capture-pane.c Get rid of the extra layer of flags and cmd_prepare() and just store the 2017-04-22 10:22:39 +00:00
cmd-choose-tree.c Add -Z flag to choose-tree, choose-client, choose-buffer to 2018-02-28 08:55:44 +00:00
cmd-command-prompt.c Tidy command prompt callbacks and pass in the client. 2017-05-17 15:20:23 +00:00
cmd-confirm-before.c Tidy command prompt callbacks and pass in the client. 2017-05-17 15:20:23 +00:00
cmd-copy-mode.c Rewrite of choose mode, both to simplify and tidy the code and to add 2017-05-30 21:44:59 +00:00
cmd-detach-client.c Get rid of the extra layer of flags and cmd_prepare() and just store the 2017-04-22 10:22:39 +00:00
cmd-display-message.c Remove unnecessary brackets. 2018-04-23 13:43:08 +00:00
cmd-display-panes.c Make display-panes block the client until a pane is chosen or it times out. 2018-08-02 07:55:16 +00:00
cmd-find-window.c Shut up a warning. 2017-05-31 16:44:33 +00:00
cmd-find.c Merge branch 'obsd-master' 2018-08-18 23:02:40 +01:00
cmd-if-shell.c Make server_client_get_cwd used (almost) everywhere we need to work out 2018-05-24 09:42:49 +00:00
cmd-join-pane.c Merge branch 'obsd-master' 2017-08-30 12:01:10 +01:00
cmd-kill-pane.c Add x and X to choose-tree (with a confirmation prompt) to kill an 2018-04-10 10:48:44 +00:00
cmd-kill-server.c Mass rename struct cmd_q to struct cmdq_item and related. 2016-10-16 19:04:05 +00:00
cmd-kill-session.c Some extra logging to show why tmux might exit. 2017-07-09 22:33:09 +00:00
cmd-kill-window.c Get rid of the extra layer of flags and cmd_prepare() and just store the 2017-04-22 10:22:39 +00:00
cmd-list-buffers.c In order that people can use formats like #D in #() in the status line 2017-05-01 12:20:55 +00:00
cmd-list-clients.c In order that people can use formats like #D in #() in the status line 2017-05-01 12:20:55 +00:00
cmd-list-keys.c Make key trees and some other bits static. 2018-08-02 11:44:07 +00:00
cmd-list-panes.c In order that people can use formats like #D in #() in the status line 2017-05-01 12:20:55 +00:00
cmd-list-sessions.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-list-windows.c In order that people can use formats like #D in #() in the status line 2017-05-01 12:20:55 +00:00
cmd-list.c I no longer use my SourceForge address so replace it. 2016-01-19 15:59:12 +00:00
cmd-load-buffer.c Do not leak path or use it after free. 2018-07-31 13:06:44 +00:00
cmd-lock-server.c Get rid of the extra layer of flags and cmd_prepare() and just store the 2017-04-22 10:22:39 +00:00
cmd-move-window.c Get rid of the extra layer of flags and cmd_prepare() and just store the 2017-04-22 10:22:39 +00:00
cmd-new-session.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-new-window.c Fix new-window -k, GitHub issue 1403. 2018-07-15 06:57:13 +00:00
cmd-paste-buffer.c Merge branch 'obsd-master' 2017-04-22 12:01:19 +01:00
cmd-pipe-pane.c Merge branch 'obsd-master' 2018-01-17 11:26:10 +00:00
cmd-queue.c Pass flags into cmd_find_from_* to fix prefer-unattached, reported by 2017-08-30 10:33:57 +00:00
cmd-refresh-client.c Also recalculate session sizes when refreh-client -C is used. GitHub 2017-05-28 19:00:52 +00:00
cmd-rename-session.c Allow no client for rename-session, from Ryan Freeman. 2018-04-11 09:54:45 +00:00
cmd-rename-window.c Fix a regression: do not warn about no client in rename-window. 2018-03-26 07:39:12 +01:00
cmd-resize-pane.c Some tidying and helper functions. 2018-08-18 16:14:03 +00:00
cmd-resize-window.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-respawn-pane.c Add -c for respawn-pane and respawn-window, from J Raynor. 2017-07-21 09:17:19 +00:00
cmd-respawn-window.c Add -c for respawn-pane and respawn-window, from J Raynor. 2017-07-21 09:17:19 +00:00
cmd-rotate-window.c Pass flags into cmd_find_from_* to fix prefer-unattached, reported by 2017-08-30 10:33:57 +00:00
cmd-run-shell.c Make server_client_get_cwd used (almost) everywhere we need to work out 2018-05-24 09:42:49 +00:00
cmd-save-buffer.c Merge branch 'obsd-master' 2018-07-31 17:02:31 +01:00
cmd-select-layout.c Fire notify for select-layout, from George Nachman. 2018-07-02 12:39:14 +00:00
cmd-select-pane.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-select-window.c Pass flags into cmd_find_from_* to fix prefer-unattached, reported by 2017-08-30 10:33:57 +00:00
cmd-send-keys.c Make key trees and some other bits static. 2018-08-02 11:44:07 +00:00
cmd-set-buffer.c Mass rename struct cmd_q to struct cmdq_item and related. 2016-10-16 19:04:05 +00:00
cmd-set-environment.c Get rid of the extra layer of flags and cmd_prepare() and just store the 2017-04-22 10:22:39 +00:00
cmd-set-hook.c Add set-hook -R to run a hook immediately (useful to set multiple hooks 2018-07-04 12:30:52 +00:00
cmd-set-option.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-show-environment.c Get rid of the extra layer of flags and cmd_prepare() and just store the 2017-04-22 10:22:39 +00:00
cmd-show-messages.c Merge branch 'obsd-master' 2017-04-22 12:01:19 +01:00
cmd-show-options.c Merge branch 'obsd-master' 2017-05-10 16:01:10 +01:00
cmd-source-file.c Merge branch 'obsd-master' 2018-05-24 13:02:29 +01:00
cmd-split-window.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-string.c Expand \u and \U escape sequences in command strings, from Christopher 2018-08-19 19:03:46 +00:00
cmd-swap-pane.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-swap-window.c Get rid of the extra layer of flags and cmd_prepare() and just store the 2017-04-22 10:22:39 +00:00
cmd-switch-client.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
cmd-unbind-key.c Bad merge. 2017-01-25 16:38:13 +00:00
cmd-wait-for.c Mass rename struct cmd_q to struct cmdq_item and related. 2016-10-16 19:04:05 +00:00
cmd.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
colour.c Show count of search results in copy mode. 2017-03-24 07:14:27 +00:00
compat.h Include headers if found regardless of forkpty. 2017-10-11 08:03:31 +01:00
configure.ac Now master again. 2018-08-17 11:46:08 +01:00
CONTRIBUTING Update CHANGES. 2017-06-05 12:01:58 +01:00
control-notify.c Some new notifications, mainly for active pane and current window and 2017-05-04 07:16:43 +00:00
control.c It is silly for cmd_list_parse to return an integer error when it could 2017-01-15 22:00:56 +00:00
COPYING Add a COPYING file, suggested by Dagobert Michelsen. 2013-05-31 12:59:17 +01:00
environ.c Make environ_log prefix take a format. 2017-05-11 07:34:54 +00:00
example_tmux.conf 15 minutes is not 1800 seconds, but just remove lock-after-time because it won't work for Linux folks without additional configuration 2017-01-10 19:33:22 +00:00
format.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
grid-view.c Add accessors for grid linedata member, for some future work. From Dan 2018-07-04 09:44:07 +00:00
grid.c Helper function to shorten history. 2018-07-11 06:51:39 +00:00
hooks.c Remove unused hooks_run function, from Thomas Adam. 2018-01-18 07:10:53 +00:00
input-keys.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
input.c Add the KEYC_XTERM flag to all function keys that imply a modifier so 2018-08-16 14:04:03 +00:00
ISSUE_TEMPLATE This link is better. 2017-01-26 19:57:16 +00:00
job.c Merge branch 'obsd-master' 2018-03-08 10:02:26 +00:00
key-bindings.c Make key trees and some other bits static. 2018-08-02 11:44:07 +00:00
key-string.c Add an "Any" key to run a command if a key is pressed that is not bound 2018-07-16 08:48:22 +00:00
layout-custom.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
layout-set.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
layout.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
log.c Merge branch 'obsd-master' 2017-06-05 11:59:38 +01:00
Makefile.am Support for windows larger than the client. 2018-08-20 15:22:14 +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
mode-tree.c Make key trees and some other bits static. 2018-08-02 11:44:07 +00:00
names.c Allow ispunct() as well as isalnum() when parsing initial window names. 2017-07-21 12:58:02 +00:00
notify.c Merge branch 'obsd-master' 2018-07-04 15:02:25 +01:00
options-table.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
options.c Fix filtering so it works after the change to only show windows if they 2017-08-09 13:44:36 +00:00
osdep-aix.c Update my email address. 2016-01-19 18:07:25 +00:00
osdep-cygwin.c Update my email address. 2016-01-19 18:07:25 +00:00
osdep-darwin.c Remove EVENT_* variables from environment after initializing libevent so they 2018-03-21 08:15:15 +00:00
osdep-dragonfly.c Update my email address. 2016-01-19 18:07:25 +00:00
osdep-freebsd.c Remove EVENT_* variables from environment after initializing libevent so they 2018-03-21 08:15:15 +00:00
osdep-hpux.c Update my email address. 2016-01-19 18:07:25 +00:00
osdep-linux.c Remove EVENT_* variables from environment after initializing libevent so they 2018-03-21 08:15:15 +00:00
osdep-netbsd.c Improve NetBSD KERN_PROC2 bit, mostly from Kamil Rytarowski. 2017-02-19 08:31:05 +00:00
osdep-openbsd.c Merge branch 'obsd-master' 2016-10-12 09:45:49 +01:00
osdep-sunos.c Some __unused. 2017-03-21 19:27:18 +00:00
osdep-unknown.c Update my email address. 2016-01-19 18:07:25 +00:00
paste.c Merge branch 'obsd-master' 2017-01-24 14:01:15 +00:00
proc.c Merge branch 'obsd-master' 2017-07-14 22:01:10 +01:00
README Sync tmux description with manual. 2018-05-22 08:02:43 +01:00
README.ja Japanese README from Kohei Takada. 2018-07-04 10:47:14 +01:00
resize.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
screen-redraw.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
screen-write.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
screen.c Merge branch 'obsd-master' 2018-07-31 17:02:31 +01:00
server-client.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
server-fn.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
server.c Merge branch 'obsd-master' 2018-08-18 23:02:40 +01:00
session.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
status.c Add a client redraw-window flag instead of the redraw-all flag and for 2018-08-19 16:45:03 +00:00
style.c Add support for the strikethrough attribute (SGR 9), using the new smxx 2017-03-22 07:16:54 +00:00
SYNCING Update release text. 2017-05-29 08:40:33 +01:00
tmux.1 Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
tmux.c Merge branch 'obsd-master' 2018-01-17 11:26:10 +00:00
tmux.h Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
TODO Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
tty-acs.c Check the terminfo(5) U8 capability and disable using UTF-8 for ACS if 2017-05-15 16:44:04 +00:00
tty-keys.c Add the KEYC_XTERM flag to all function keys that imply a modifier so 2018-08-16 14:04:03 +00:00
tty-term.c Merge branch 'obsd-master' 2018-05-07 17:02:31 +01:00
tty.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
utf8.c Merge branch 'obsd-master' 2017-06-05 11:59:38 +01:00
window-buffer.c Merge branch 'obsd-master' 2018-02-28 10:02:29 +00:00
window-client.c Add -Z flag to choose-tree, choose-client, choose-buffer to 2018-02-28 08:55:44 +00:00
window-clock.c Rewrite of choose mode, both to simplify and tidy the code and to add 2017-05-30 21:44:59 +00:00
window-copy.c calloc the mode data instead of malloc and initialize everything. 2018-08-05 08:59:30 +00:00
window-tree.c Merge branch 'obsd-master' 2018-08-19 21:02:37 +01:00
window.c Support for windows larger than the client. 2018-08-20 15:22:14 +01:00
xmalloc.c Key running commands for #() by the unexpanded command, and run them 2016-11-17 10:06:08 +00:00
xmalloc.h Merge branch 'obsd-master' 2016-11-17 12:01:10 +00:00
xterm-keys.c Up to now, tmux sees \033\033[OA as M-Up and since we turned on 2017-05-07 21:25:59 +00: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, OS X and Solaris.

tmux depends on libevent 2.x. Download it from:

	http://libevent.org

It also depends on ncurses, available from:

	http://invisible-island.net/ncurses/

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:

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

(Note that this requires at least a working C compiler, make, autoconf,
automake, pkg-config as well as libevent and ncurses libraries and headers.)

For more information see http://git-scm.com. Patches should be sent by email to
the mailing list at tmux-users@googlegroups.com or submitted through GitHub at
https://github.com/tmux/tmux/issues.

For documentation on using tmux, see the tmux.1 manpage. It can be viewed from
the source tree with:

	$ nroff -mdoc tmux.1|less

A small example configuration in example_tmux.conf.

And a bash(1) completion file at:

	https://github.com/imomaliev/tmux-bash-completion

For debugging, running tmux with -v or -vv will generate server and client log
files in the current directory.

tmux mailing lists are available. For general discussion and bug reports:

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

And for Git commit emails:

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

Subscribe by sending an email to <tmux-users+subscribe@googlegroups.com>.

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

	tmux-users@googlegroups.com

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

-- Nicholas Marriott <nicholas.marriott@gmail.com>