mirror of
https://github.com/tmux/tmux.git
synced 2026-08-28 01:21:33 +00:00
48cdd85886b30fed94f176857585c9a674f5413d
redraw_client_damage() (added previously, unused until now) is called from server_client_check_redraw()'s normal redraw pass, and server_client_any_pane_redraw() now also checks for pending window damage so a client with only damage (no PANE_REDRAW/PANE_REDRAWSCROLLBAR flags) still gets its redraw pass run. server_client_check_redraw() now returns whether the redraw was deferred (waiting for outstanding tty output to drain) rather than performed. A deferred redraw no longer escalates to a full CLIENT_REDRAWWINDOW to avoid losing what was pending - server_client_loop() now only clears PANE_REDRAW, PANE_REDRAWSCROLLBAR and window damage once every client viewing a window actually drew this pass (tracked via a new per-window redraw_deferred flag), otherwise they're left in place and retried in their normal, narrowly-scoped form. server_client_set_session() now redraws only if the client's session or current window actually changed, not on every call (e.g. switch-client -t= from clicking a pane name in the status line resolves here even when nothing besides the active pane changed). A drag callback's mouse_drag_update() now opens a sync region itself (tty_sync_start()) before its first write, so a fast-path write it makes directly and a later correction arriving via redraw_client_damage() end up in the same atomic terminal update instead of two visible frames.
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.
Description
Languages
C
75.8%
Shell
16.1%
Roff
5.9%
Yacc
1%
M4
0.7%
Other
0.4%