aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
Commit message (Collapse)AuthorAge
* Change searching to behave more like emacs and so that regex searchingnicm2020-08-05
| | | | doesn't overlap when searching forwards.
* Add a way for control mode clients to subscribe to a format and benicm2020-07-06
| | | | notified of changes rather than having to poll. GitHub issue 2242.
* Add a flag to make a client wait for an empty line before exiting innicm2020-06-18
| | | | control mode to avoid stray commands ending up in the shell.
* Instead of a buffer size limit on each pane, set a limit of 300 secondsnicm2020-06-10
| | | | of data for each client in control mode.
* Change how panes are resized so that the code is clearer and if the panenicm2020-06-05
| | | | | | is resized multiple times during one event loop, it is forced to resize at the end. Also don't zoom/unzoom in switch-client if the pane hasn't changed. GitHub issue 2260.
* Add support for pausing a pane when the output buffered for a controlnicm2020-06-05
| | | | | | mode client gets too far behind. The pause-after flag with a time is set on the pane with refresh-client -f and a paused pane may be resumed with refresh-client -A. GitHub issue 2217.
* Use CLOCK_MONOTONIC for timer measurement and add a timestamp to controlnicm2020-06-02
| | | | mode %output blocks.
* Check the right thing for maximum client buffer size.nicm2020-06-01
|
* Instead of sending all data to control mode clients as fast as possible,nicm2020-06-01
| | | | | | add a limit of how much data will be sent to the client and try to use it for panes with some degree of fairness. GitHub issue 2217, with George Nachman.
* Pass the stdout file descriptor from the client as well as stdin and usenicm2020-05-26
| | | | | them for control clients directly instead of passing everything via the client.
* Remove leftover call to control_free_offsets and do not use fornicm2020-05-24
| | | | non-control clients.
* Give control code its own state struct.nicm2020-05-24
|
* Now the tty has a pointer back to the client there is no point (and anicm2020-05-24
| | | | bit confusing) in it keeping a copy of the fd as well. Remove it.
* FocusIn keys can also update the latest client, like normal keys.nicm2020-05-22
|
* Move client offset stuff into control.c since only control clients willnicm2020-05-22
| | | | need it.
* Support code for control mode flow control: allow clients to havenicm2020-05-21
| | | | | | separate offsets (used and acknowleged) into the pane buffers; turn off reading from panes when no clients can accept the data; and add a -A flag to refresh-client to let clients turn receiving a pane on and off.
* Move lazy resize from the pane to the window, there is no point innicm2020-05-16
| | | | | | resizing the window unless it is the current window, and if we do and don't resize the pane until later there are problems if the size changes from A to B then back to A.
* Add a client flag 'active-pane' which stores the active pane in thenicm2020-05-16
| | | | | | | | | client and allows it to be changed independently from the real active pane stored in the window. This is can be used with session groups which allow an independent current window (although it would be nice to have a flag for this too and remove session groups). The client active pane is only really useful interactively, many things (hooks, window-style, zooming) still use the window active pane.
* Expand target from client and use it to expand the prompt.nicm2020-05-16
|
* Add a -D flag to ask tmux not to daemonize, useful both for running anicm2020-05-16
| | | | | debugger (lldb does not have follow-fork-mode) and for running with a managed supervisor init system. GitHub issue 2190.
* Change message log to be per server rather than per client and includenicm2020-05-16
| | | | every command that is run.
* Change the existing client flags for control mode to apply for anynicm2020-05-16
| | | | | | | | | | | | | | | | client, use the same mechanism for the read-only flag and add an ignore-size flag. refresh-client -F has become -f (-F stays for backwards compatibility) and attach-session and switch-client now have -f flags also. A new format "client_flags" lists the flags and is shown by list-clients by default. This separates the read-only flag from "ignore size" behaviour (new ignore-size) flag - both behaviours are useful in different circumstances. attach -r and switchc -r remain and set or toggle both flags together.
* Do not hoke into struct window_pane from the tty code and instead setnicm2020-05-16
| | | | | | | everything up in tty_ctx. Provide a way to initialize the tty_ctx from a callback and use it to let popups draw directly through input_parse in the same way as panes do, rather than forcing a full redraw on every change.
* Improve command prompt completion:nicm2020-05-16
| | | | | | | | | | | - Show a menu with completions if there are multiple. - Don't complete argument stuff (options, layouts) at start of text. - For -t and -s, if there is no : then complete sessions but if there is a :, show a menu of all windows in the session rather than trying to complete the window name which is a bit useless if there are duplicates.
* Do not redraw or update mode if nothing has changed.nicm2020-05-16
|
* Turn off the block flag to reset the state or the cursor will not benicm2020-04-21
| | | | moved back to the right place.
* Change how sync works to always send the end sequence after all outputnicm2020-04-20
| | | | | is done when we are returning to the event loop (since we always move the cursor at that point). Also a man fix from jmc.
* Tidy up the terminal detection and feature code and add named sets ofnicm2020-04-20
| | | | | | | | | | | | | | | | | | | | | terminal features, each of which are defined in one place and map to a builtin set of terminfo(5) capabilities. Features can be specified based on TERM with a new terminal-features option or with the -T flag when running tmux. tmux will also detect a few common terminals from the DA and DSR responses. This is intended to make it easier to configure tmux's use of terminfo(5) even in the presence of outdated ncurses(3) or terminfo(5) databases or for features which do not yet have a terminfo(5) entry. Instead of having to grok terminfo(5) capability names and what they should be set to in the terminal-overrides option, the user can hopefully just give tmux a feature name and let it do the right thing. The terminal-overrides option remains both for backwards compatibility and to allow tweaks of individual capabilities. tmux already did much of this already, this makes it tidier and simpler to configure.
* Also redraw panes which aren't pane 0. Problem reported by tb@.nicm2020-04-20
|
* Need to check for pane redrawing even if just the window flag is setnicm2020-04-20
| | | | | (the pane flag may not have been previously set to avoid looping the windows).
* The PANE_REDRAW flag bit might be needed by other panes so we can'tnicm2020-04-18
| | | | | | | clear it on the first redraw, and it can't be set when we are finished or they would be redrawn again, so if the redraw is deferred for a client, copy the redraw flag into a separate set of bits just for that client.
* Bring back previons fix to only redraw panes that need it after a redrawnicm2020-04-18
| | | | | is deferred, but clear the pane flags when they are actually redrawn rather than every time.
* Only update mode when actually going to redraw something.nicm2020-04-18
|
* Add a flag to protect against nested syncs and add some extra logging tonicm2020-04-18
| | | | redrawing.
* Revert previous, there is still a problem.nicm2020-04-18
|
* When a redraw is deferred because the terminal hasn't finished readingnicm2020-04-18
| | | | | | | | | the data from the last one, other panes could update while waiting, so we set the flag to redraw them all when the new redraw actually happened. But this means a lot of redrawing panes unnecessarily if they haven't changed - so instead set a flag to say "at least one pane needs to be redrawed" then look at the invidual pane flags to see which ones need it.
* Set mode properly before and after redrawing, and don't bothernicm2020-04-17
| | | | calculating cursor position if it won't be used.
* Move the UTF-8 flag to terminal flags.nicm2020-04-16
|
* When adding a list of commands to the queue, instead of automaticallynicm2020-04-13
| | | | | | | creating a new state for each group of commands, require the caller to create one and use it for all the commands in the list. This means the current target works even with list with multiple groups (which can happen if they are defined with newlines).
* Move cmdq_state into cmd-queue.c.nicm2020-04-13
|
* Also move cmdq_item and cmdq_list into cmd-queue.c (this is to make itsnicm2020-04-13
| | | | use more clearly defined and preparation for some future work).
* Some unnecessary assignments and unused variables.nicm2020-04-09
|
* Wait until the initial command sequence is done before sending a devicenicm2020-04-09
| | | | | | | attributes request and other bits that prompt a reply from the terminal. This means that stray relies are not left on the terminal if the command has attached and then immediately detached and tmux will not be around to receive them. Prompted by a problem report from espie@.
* Do not ignore triple-click and send to pane.nicm2020-04-01
|
* Add a way to mark environment variables as "hidden" so they can be usednicm2020-03-31
| | | | by tmux but are not passed into the environment of new panes.
* Add a "second click" key type which is fired for the second click of anicm2020-03-31
| | | | | | | double click, even if the timer hasn't expired to confirm it isn't actually a triple click. Provides a way for people who don't care about triple clicks or can make their commands have no side effects to avoid the double click timer delay.
* Move alternate screen into the screen rather than the pane.nicm2020-03-31
|
* Add support for overlay popup boxes to show text or output temporarilynicm2020-03-24
| | | | | above the normal layout. These work similarly to menus and are created with the display-popup command.
* Ignore default-shell (and use /bin/sh) if it invalid not just if it isnicm2020-03-17
| | | | | tmux itself, also refuse to set the option to something invalid in the first place. GitHub issue 2120.
* Send mouse down event immediately rather than waiting for double clicknicm2020-03-16
| | | | | to finish which would now mean it was out of order. Reported by Mark Kelly.