mirror of
https://github.com/tmux/tmux.git
synced 2026-09-21 12:28:14 +00:00
efbd09e101c2fd47694d9318c3dd91f383db95c1
There is no way to query a terminal for whether it moves SIXEL image content along with the rest of a scrolling region, so tmux always redrew the image after every scroll rather than assuming the terminal did it for free the way Kitty placements already are (IMAGE_BACKEND_ SCROLLS). Add a server option, default on, that lets sixel opt into the same trust; image_backend_flags() now ORs SCROLLS in for the sixel backend when it's set. Splitting SCROLLS out surfaced a second, unrelated property the two image_backend_flags() checks had been conflating: whether a backend also respects its own cell boundaries rather than bleeding pixels onto neighbouring rows, which is what the "redraw a pane's border-status after a GRAPHICAL-only redraw" guard in screen-redraw.c was actually testing for. Give that its own IMAGE_BACKEND_CLIPPED flag (kitty only) so turning sixel-region-scrolling on doesn't also disable that unrelated border-status protection. Includes a regress test proving the scroll-skip decision is wired correctly with the option on and off, and a manual visual test (tools/sixel-scroll-region-test.sh + tools/sixel-ruler.six, a numbered colour-band SIXEL image) for checking real terminals by eye, since nothing here can verify what a given terminal actually renders. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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
73.2%
Shell
19.1%
Roff
5.6%
Yacc
0.9%
M4
0.7%
Other
0.4%