aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
Commit message (Collapse)AuthorAge
* Merge branch 'obsd-master'Thomas Adam2017-05-31
|\ | | | | | | | | | | | | Conflicts: Makefile.am cfg.c server-client.c
| * Some applications like vi(1) and tmux until 10 minutes or so ago, do notnicm2017-05-31
| | | | | | | | | | | | | | redraw on SIGWINCH if the size returns to the original size between the original SIGWINCH and when they get around to calling TIOCGWINSZ. So use the existing resize timer to introduce a small delay between the two resizes.
| * It is not OK to ignore SIGWINCH if SIOCGWINSZ reports the size hasnicm2017-05-31
| | | | | | | | | | | | unchanged, because it may have changed and changed back in the time between us getting the signal and calling ioctl(). Always redraw when we see SIGWINCH.
| * Because we defer actually resizing applications (calling TIOCSWINSZ)nicm2017-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | until the end of the server loop, tmux may have gone through several internal resizes in between. This can be a problem if the final size is the same as the initial size (what the application things it currently is), because the application may choose not to redraw, assuming the screen state is unchanged, when in fact tmux has thrown away parts of the screen, assuming the application will redraw them. To avoid this, do an extra resize if the new size is the same size as the initial size. This should force the application to redraw when tmux needs it to, while retaining the benefits of deferring (so we now resize at most two times instead of at most one - and only two very rarely). Fixes a problem with break-pane and zoomed panes reported by Michal Mazurek.
| * Look for setrgbf and setrgbb terminfo extensions for RGB colour. This isnicm2017-05-31
| | | | | | | | | | the most reasonable of the various (some bizarre) suggestions for capabilities.
| * Rewrite of choose mode, both to simplify and tidy the code and to addnicm2017-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | some modern features. Now the common code is in mode-tree.c, which provides an API used by the three modes now separated into window-{buffer,client,tree}.c. Buffer mode shows buffers, client mode clients and tree mode a tree of sessions, windows and panes. Each mode has a common set of key bindings plus a few that are specific to the mode. Other changes are: - each mode has a preview pane: for buffers this is the buffer content (very useful), for others it is a preview of the pane; - items may be sorted in different ways ('O' key); - multiple items may be tagged and an operation applied to all of them (for example, to delete multiple buffers at once); - in tree mode a command may be run on the selected item (session, window, pane) or on tagged items (key ':'); - displayed items may be filtered in tree mode by using a format (this is used to implement find-window) (key 'f'); - the custom format (-F) for the display is no longer available; - shortcut keys change from 0-9, a-z, A-Z which was always a bit weird with keys used for other uses to 0-9, M-a to M-z. Now that the code is simpler, other improvements will come later. Primary key bindings for each mode are documented under the commands in the man page (choose-buffer, choose-client, choose-tree). Parts written by Thomas Adam.
* | Merge branch 'obsd-master'Thomas Adam2017-05-30
|\|
| * Add a flag to stop the prompt input being expanded.nicm2017-05-29
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-29
|\|
| * Function to count clients.nicm2017-05-29
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-29
|\|
| * Add ||, && format operators and C: to search pane content.nicm2017-05-29
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-17
|\|
| * Tidy command prompt callbacks and pass in the client.nicm2017-05-17
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-15
|\|
| * Check the terminfo(5) U8 capability and disable using UTF-8 for ACS ifnicm2017-05-15
| | | | | | | | | | | | it is present and zero. This is useful for users with terminals or fonts that do not correctly support UTF-8 line drawing characters. GitHub issue 927, reported by Hiroaki Yamazoe and Akinori Hattori.
* | Merge branch 'obsd-master'Thomas Adam2017-05-12
|\|
| * Scrolling needs to use background colour.nicm2017-05-12
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-12
|\|
| * ECH needs to use background colour.nicm2017-05-12
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-11
|\|
| * Make environ_log prefix take a format.nicm2017-05-11
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-10
|\|
| * Prevent control clients from affecting the session size until they havenicm2017-05-10
| | | | | | | | | | specified a size with refresh-client -C. Prompted by a different change with the same purpose from George Nachman.
* | Merge branch 'obsd-master'Thomas Adam2017-05-10
|\|
| * Insert copy mode bindings at the right place in the command queue.nicm2017-05-10
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-09
|\|
| * If the current screen was complex enough, it was possible to make redrawnicm2017-05-09
| | | | | | | | | | | | itself hit the "terminal can't keep up" check. To avoid this, record how much data we send during redraw (we know we will be starting with 0) and skip the check until it has been flushed. GitHub issue 912.
* | Merge branch 'obsd-master'Thomas Adam2017-05-09
|\| | | | | | | | | Conflicts: format.c
| * Add a format for the name of the pane's mode, lets it be used as anicm2017-05-07
| | | | | | | | conditional for key bindings.
| * Up to now, tmux sees \033\033[OA as M-Up and since we turned onnicm2017-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xterm-keys by default, generates \033[1;3A instead of \033\033[OA. Unfortunately this confuses vi, which doesn't understand xterm keys and now sees Escape+Up pressed within escape-time as Escape followed by A. The issue doesn't happen in xterm itself because it gets the keys from X and can distinguish between a genuine M-Up and Escape+Up. Because xterm can, tmux can too: xterm will give us \033[1;3A (that is, kUP3) for a real M-Up and \033\033OA for Escape+Up - in fact, we can be sure any \033 preceding an xterm key is a real Escape key press because Meta would be part of the xterm key instead of a separate \033. So change tmux to recognise both sequences as M-Up for its own purposes, but generate the xterm version of M-Up only if it originally received the xterm version from the terminal. This means we will return to sending \033\033OA instead of the xterm key for terminals that do not support xterm keys themselves, but there is no practical way around this because they do not allow us to distinguish between Escape+Up and M-Up. xterm style escape sequences are now the de facto standard for these keys in any case. Problem reported by jsing@ and subsequently by Cecile Tonglet in GitHub issue 907.
* | Merge branch 'obsd-master'Thomas Adam2017-05-04
|\|
| * Some new notifications, mainly for active pane and current window andnicm2017-05-04
| | | | | | | | | | | | | | | | | | | | | | session: pane-mode-changed window-pane-changed client-session-changed session-window-changed From Joshua Brot.
* | Merge branch 'obsd-master'Thomas Adam2017-05-03
|\|
| * Add a format for the last search string in copy mode and fix the promptnicm2017-05-03
| | | | | | | | so it can work when in -I, suggested by Suraj N Kurapati.
* | Merge branch 'obsd-master'Thomas Adam2017-05-01
|\|
| * In order that people can use formats like #D in #() in the status linenicm2017-05-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | and not have to wait for an update when they change pane, we allow commands to run more than once a second if the expanded form changes. Unfortunately this can mean them being run far too often (pretty much continually) when multiple clients exist, because some formats (including #D) will always differ between clients. To avoid this, give each client its own tree of jobs which means that the same command will be different instances for each client - similar to how we have the tag to separate commands for different panes. GitHub issue 889; test case reported by Paul Johnson.
* | Merge branch 'obsd-master'Thomas Adam2017-04-28
|\|
| * Log what is happening with window and session reference counts much morenicm2017-04-28
| | | | | | | | obviously.
* | Merge branch 'obsd-master'Thomas Adam2017-04-25
|\|
| * Make full width panes try to play more nicely with terminal copy andnicm2017-04-25
| | | | | | | | | | paste by avoiding explicit line wraps if we think the terminal will wrap anyway.
| * When we write out the grid including escape sequences, an SGR 0 needs tonicm2017-04-25
| | | | | | | | | | cause the colours to be written again. Also treat colours separately from attributes so that RGB colours will work.
* | Merge branch 'obsd-master'Thomas Adam2017-04-25
|\|
| * Do not update TERM into config file parsing has finished.nicm2017-04-25
| |
* | Merge branch 'obsd-master'Thomas Adam2017-04-22
|\|
| * Get rid of the extra layer of flags and cmd_prepare() and just store thenicm2017-04-22
| | | | | | | | | | | | CMD_FIND_* flags in the cmd_entry and call it for the command. Commands with special requirements call it themselves and update the target for hooks to use.
* | Merge branch 'obsd-master'Thomas Adam2017-04-21
|\|
| * Make the cmd_find_* functions more obvious when looking for a client,nicm2017-04-21
| | | | | | | | | | rather than having it inside other functions. Should be no change to the way targets are resolved just yet.
* | Merge branch 'obsd-master'Thomas Adam2017-04-21
|\|
| * Style nits and an unused struct.nicm2017-04-21
| |