summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/server-client.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Move the call to setupterm() into the client and have it pass thenicm2021-02-171-6/+16
| | | | | | results to the server over imsg, means the server does not need to enter ncurses or read terminfo db. Old clients will not work with a new server.
* Move file handling protocol stuff all into file.c so it can be reusednicm2021-02-111-75/+4
| | | | more easily.
* Include "focused" in client flags, from Dan Aloni in GitHub issue 2558.nicm2021-02-081-1/+3
|
* Hide some warnings on newer GCC versions, GitHUb issue 2525.nicm2021-01-181-5/+5
|
* Redraw any visible modes when status line changes so that formats likenicm2020-12-031-1/+25
| | | | | the pane title are updated. GitHub issue 2487. Also a man page fix from jmc.
* With csh, a tmux client gets SIGTERM before SIGCONT when killed withnicm2020-10-301-2/+2
| | | | | | | "kill %%", so when the client tells the server it got SIGCONT, don't use bits that may already have been freed when it got SIGTERM. Also don't print anything on exit if we get SIGTERM while suspended. Reported by Theo.
* There is no reason not to fire focus events when a pane is in a mode,nicm2020-10-301-5/+1
| | | | GitHub issue 2372.
* Add a -O flag to display-menu to change the mouse behaviour and notnicm2020-10-301-2/+2
| | | | | close the menu when the mouse is released, from teo_paul1 at yahoo dot com.
* Do not require that there be no other clients before loading the config,nicm2020-10-281-7/+7
| | | | being the first client is enough. GitHub issue 2438.
* Fix warnings on some platforms with %llx and add a new message to handlenicm2020-09-221-1/+11
| | | | 64-bit client flags.
* Change searching to behave more like emacs and so that regex searchingnicm2020-08-051-3/+1
| | | | doesn't overlap when searching forwards.
* Add a way for control mode clients to subscribe to a format and benicm2020-07-061-3/+5
| | | | 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-181-1/+6
| | | | 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-101-9/+15
| | | | of data for each client in control mode.
* Change how panes are resized so that the code is clearer and if the panenicm2020-06-051-69/+57
| | | | | | 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-051-10/+32
| | | | | | 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-021-2/+4
| | | | mode %output blocks.
* Check the right thing for maximum client buffer size.nicm2020-06-011-5/+9
|
* Instead of sending all data to control mode clients as fast as possible,nicm2020-06-011-33/+51
| | | | | | 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-261-11/+20
| | | | | 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-241-6/+8
| | | | non-control clients.
* Give control code its own state struct.nicm2020-05-241-1/+3
|
* Now the tty has a pointer back to the client there is no point (and anicm2020-05-241-10/+7
| | | | 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-221-2/+2
|
* Move client offset stuff into control.c since only control clients willnicm2020-05-221-59/+27
| | | | need it.
* Support code for control mode flow control: allow clients to havenicm2020-05-211-4/+129
| | | | | | 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-161-30/+34
| | | | | | 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.
* Separate key flags and modifiers, log key flags, make the "xterm" flagnicm2020-05-161-3/+3
| | | | more explicit and fix M- keys with a leading escape.
* Rename KEYC_ESCAPE to KEYC_META.nicm2020-05-161-2/+2
|
* Add a client flag 'active-pane' which stores the active pane in thenicm2020-05-161-3/+90
| | | | | | | | | 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-161-5/+4
|
* Add a -D flag to ask tmux not to daemonize, useful both for running anicm2020-05-161-3/+14
| | | | | 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-161-49/+2
| | | | every command that is run.
* Change the existing client flags for control mode to apply for anynicm2020-05-161-1/+59
| | | | | | | | | | | | | | | | 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-161-12/+9
| | | | | | | 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-161-5/+7
| | | | | | | | | | | - 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-161-3/+1
|
* Move terminal features into a single file.nicm2020-05-161-1/+3
|
* Turn off the block flag to reset the state or the cursor will not benicm2020-04-211-16/+16
| | | | moved back to the right place.
* Do not clear client pane redraw flags until the redraw actually happens.nicm2020-04-211-2/+2
|
* Change how sync works to always send the end sequence after all outputnicm2020-04-201-2/+12
| | | | | 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-201-9/+17
| | | | | | | | | | | | | | | | | | | | | 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-201-1/+2
|
* Need to check for pane redrawing even if just the window flag is setnicm2020-04-201-3/+9
| | | | | (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-181-11/+36
| | | | | | | 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-181-11/+9
| | | | | 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-181-3/+3
|
* Add a flag to protect against nested syncs and add some extra logging tonicm2020-04-181-1/+2
| | | | redrawing.
* Revert previous, there is still a problem.nicm2020-04-181-10/+10
|
* When a redraw is deferred because the terminal hasn't finished readingnicm2020-04-181-10/+10
| | | | | | | | | 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.