summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/server-client.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Ignore default-shell (and use /bin/sh) if it invalid not just if it isnicm2020-03-171-2/+4
| | | | | 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-161-4/+8
| | | | | to finish which would now mean it was out of order. Reported by Mark Kelly.
* Change how double and triple clicks works so that one or the other isnicm2020-03-121-11/+26
| | | | | fired - a double click is no longer triggered on the way to a triple click.
* A few fixes to make modifier keys and dragging work - need to remove thenicm2020-02-191-4/+6
| | | | | | modifiers before checking for the dragging marker key, and apply them before looking up the end key. Also fix key-to-string with modifiers for special keys.
* Remove unused variables from Ben Boeckel, and a Pp from jmc.nicm2020-02-111-3/+1
|
* Add a define for flags meaning a client is not attached, and fixnicm2020-01-281-3/+3
| | | | unattached counter, reported by Thomas Sattler.
* If /dev/fd/X is a symlink and realpath() expands symlinks, /dev/fd/Xnicm2019-12-161-17/+1
| | | | | | | ends up pointing to the wrong place before it is passed to the client. The path is only used internally so there is no real need for realpath(), remove it and move the get_path function to file.c where all the callers are.
* Instead of using large buffers in imsgs, add the data or path onto the end.nicm2019-12-161-4/+4
|
* Rewrite the code for reading and writing files. Now, if the client isnicm2019-12-121-128/+87
| | | | | | | | | not attached, the server process asks it to open the file, similar to how works for stdin, stdout, stderr. This makes special files like /dev/fd/X work (used by some shells). stdin, stdout and stderr and control mode are now just special cases of the same mechanism. This will also make it easier to use for other commands that read files such as source-file.
* Style nits in function arguments.nicm2019-12-031-2/+2
|
* Long lines and spacing fixes.nicm2019-11-281-2/+3
|
* Make a best effort to set xpixel and ypixel for each pane and addnicm2019-11-281-14/+3
| | | | formats for them.
* Limit lazy resize to panes in attached sessions only - those innicm2019-11-011-4/+18
| | | | | | unattached are likely to have been resized by something like split-window where the user probably wants the resize to happen immediately. GitHub issue 1963.
* Add a "latest" window-size option which tries to size windows based onnicm2019-09-191-1/+22
| | | | | the most recently used client. From Tommie Gannert in GitHub issue 1869 based on earlier changes from me.
* The resize event was never deciding to actually resize the pane if therenicm2019-08-281-32/+45
| | | | | | | was output in the pane faster than the timer would fire, so change how it works to only defer the timer again if the pane was actually resized within the last timer period. Reported by James Tai in GitHub issue 1880.
* Clear overlay on normal key press.nicm2019-07-171-1/+2
|
* Correctly adjust mouse position if the status line is at the top andnicm2019-07-061-4/+5
| | | | more than one line. GitHub issue 1822.
* Command prompt key presses need to avoid the command queue, GitHub issuenicm2019-07-021-20/+18
| | | | 1817. Also a tmux.1 fix from jmc.
* Pass keys that aren't 0-9 on to normal key processing when display-panesnicm2019-06-261-3/+7
| | | | is active (restores previous behaviour).
* Need to always check focus even if not current window.nicm2019-06-201-3/+4
|
* Expand command formats in %if and move the config file loading later (tonicm2019-06-201-19/+22
| | | | | when the first client has identified) so all the client formats are available, fixes problems reported by Thomas Sattler.
* Do not resize panes unless they are in an attached, active window. Fromnicm2019-06-111-2/+9
| | | | Morten M Neergaard in GitHub issue 1782.
* Do not load the config file if the server is exiting because it failednicm2019-06-071-3/+5
| | | | | | to start, otherwise commands like lsk which start the server again can end up looping infinitely. Also make the first client exit correctly. Problem reported by Wael M Nasreddine.
* Merge cmd_list_parse into cmd-parse.y so it can use the new aliasnicm2019-05-251-9/+16
| | | | processing code.
* Replace the various identical error callbacks with a single one in cmd-queue.c.nicm2019-05-201-14/+3
|
* Fix some indentation and dead assignments.nicm2019-05-121-8/+10
|
* Add a flag to redraw only the overlay, and remove the overlay on resize.nicm2019-05-081-3/+10
|
* Move around the display-panes identify code to make it a bit morenicm2019-05-071-49/+34
| | | | | generic and hide the display-panes specific bits into cmd-display-panes.c.
* Treat keys in identify mode (display-panes) specially and handle themnicm2019-05-071-2/+40
| | | | | | immediately rather than queuing them (the command can block the queue which means they were not being seen until it finished which was too late). Reported by denis@ and solene@, ok solene@.
* Allow panes to be empty (no command), output can be piped to them withnicm2019-05-031-3/+2
| | | | split-window or display-message -I.
* Do not store the mouse position we calculate as the start of a drag backnicm2019-05-031-3/+3
| | | | | into the mouse event that later code uses, it has been adjusted and they should use the original position. GitHub issue 1710.
* Fix mouse positioning when the pane is not entirely visible.nicm2019-05-031-2/+2
|
* Instead of processing keys all together, put them up on the clientnicm2019-05-031-25/+40
| | | | | command queue so they are ordered correctly with the commands that they execute.
* Update session activity on focus event, from tafryn at gmail dot com.nicm2019-04-181-1/+2
|
* Add StatusDefault binding for the mouse on any otherwise unassignednicm2019-03-251-19/+71
| | | | parts of the status line, from Avi Halachmi.
* Ignore mouse on status line which are not part of a range, GitHub issue 1649.nicm2019-03-251-10/+10
|
* Extend the #[] style syntax and use that together with previous formatnicm2019-03-181-11/+24
| | | | | | | | | | | | | | | | | | | | changes to allow the status line to be entirely configured with a single option. Now that it is possible to configure their content, enable the existing code that lets the status line be multiple lines in height. The status option can now take a value of 2, 3, 4 or 5 (as well as the previous on or off) to configure more than one line. The new status-format array option configures the format of each line, the default just references the existing status-* options, although some of the more obscure status options may be eliminated in time. Additions to the #[] syntax are: "align" to specify alignment (left, centre, right), "list" for the window list and "range" to configure ranges of text for the mouse bindings. The "align" keyword can also be used to specify alignment of entries in tree mode and the pane status lines.
* Tidy and rename some bits of status line code.nicm2019-03-161-2/+2
|
* Move status line free into its own function.nicm2019-03-151-8/+2
|
* Store the time in the format tree rather than passing it around.nicm2019-03-141-2/+2
|
* Accept 0 time as a shorthand for now to format_expand_time.nicm2019-03-141-2/+2
|
* Allow multiple modes to be open in a pane. A stack of open modes is keptnicm2019-03-121-18/+16
| | | | | | and the previous restored when the top is exited. If a mode that is already on the stack is entered, the existing instance is moved to the top as the active mode rather than being opened new.
* Add a separate mode struct for the active window mode if any.nicm2019-03-071-3/+6
|
* Use starting client cwd in config file, GitHub issue 1606.nicm2019-02-161-1/+3
|
* Pass window into mode functions.nicm2018-12-181-3/+5
|
* evbuffer_new and bufferevent_new can both fail (when malloc fails) andnicm2018-11-191-1/+7
| | | | return NULL. GitHub issue 1547.
* If a non-repeating key is used when repeating, it should be treated asnicm2018-11-071-4/+9
| | | | | an entirely new key press, not checked in root table and ignored if not found. GitHub issue 1513.
* Support for windows larger than visible on the attached client. This hasnicm2018-10-181-26/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | been a limitation for a long time. There are two new options, window-size and default-size, and a new command, resize-window. The force-width and force-height options and the session_width and session_height formats have been removed. The new window-size option tells tmux how to work out the size of windows: largest means it picks the size of the largest session, smallest the smallest session (similar to the old behaviour) and manual means that it does not automatically resize windows. The default is currently largest but this may change. aggressive-resize modifies the choice of session for largest and smallest as it did before. If a window is in a session attached to a client that is too small, only part of the window is shown. tmux attempts to keep the cursor visible, so the part of the window displayed is changed as the cursor moves (with a small delay, to try and avoid excess redrawing when applications redraw status lines or similar that are not currently visible). The offset of the visible portion of the window is shown in status-right. Drawing windows which are larger than the client is not as efficient as those which fit, particularly when the cursor moves, so it is recommended to avoid using this on slow machines or networks (set window-size to smallest or manual). The resize-window command can be used to resize a window manually. If it is used, the window-size option is automatically set to manual for the window (undo this with "setw -u window-size"). resize-window works in a similar way to resize-pane (-U -D -L -R -x -y flags) but also has -a and -A flags. -a sets the window to the size of the smallest client (what it would be if window-size was smallest) and -A the largest. For the same behaviour as force-width or force-height, use resize-window -x or -y, and "setw -u window-size" to revert to automatic sizing.. If the global window-size option is set to manual, the default-size option is used for new windows. If -x or -y is used with new-session, that sets the default-size option for the new session. The maximum size of a window is 10000x10000. But expect applications to complain and much higher memory use if making a window excessively big. The minimum size is the size required for the current layout including borders. The refresh-client command can be used to pan around a window, -U -D -L -R moves up, down, left or right and -c returns to automatic cursor tracking. The position is reset when the current window is changed.
* Do not check for mouse events on pane borders when zoomed, based on anicm2018-09-111-16/+23
| | | | fix from Avi Halachmi.
* Keep any text killed in the command prompt with C-w and yank it withnicm2018-08-291-1/+2
| | | | | C-y, only use the top buffer if no text has previously been killed. This and previous change promped by discussion with kn@.