summaryrefslogtreecommitdiffstats
path: root/server-client.c
AgeCommit message (Collapse)Author
2019-03-25Merge branch 'obsd-master'Thomas Adam
2019-03-25Add StatusDefault binding for the mouse on any otherwise unassignednicm
parts of the status line, from Avi Halachmi.
2019-03-25Merge branch 'obsd-master'Thomas Adam
2019-03-25Ignore mouse on status line which are not part of a range, GitHub issue 1649.nicm
2019-03-18Merge branch 'obsd-master'Thomas Adam
2019-03-18Extend the #[] style syntax and use that together with previous formatnicm
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.
2019-03-18Merge branch 'obsd-master'Thomas Adam
2019-03-16Tidy and rename some bits of status line code.nicm
2019-03-15Move status line free into its own function.nicm
2019-03-14Store the time in the format tree rather than passing it around.nicm
2019-03-14Merge branch 'obsd-master'Thomas Adam
2019-03-14Accept 0 time as a shorthand for now to format_expand_time.nicm
2019-03-12Merge branch 'obsd-master'Thomas Adam
2019-03-12Allow multiple modes to be open in a pane. A stack of open modes is keptnicm
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.
2019-03-07Merge branch 'obsd-master'Thomas Adam
2019-03-07Add a separate mode struct for the active window mode if any.nicm
2019-02-16Merge branch 'obsd-master'Thomas Adam
2019-02-16Use starting client cwd in config file, GitHub issue 1606.nicm
2018-12-18Merge branch 'obsd-master'Thomas Adam
2018-12-18Pass window into mode functions.nicm
2018-11-19Merge branch 'obsd-master'Thomas Adam
2018-11-19evbuffer_new and bufferevent_new can both fail (when malloc fails) andnicm
return NULL. GitHub issue 1547.
2018-11-07Merge branch 'obsd-master'Thomas Adam
2018-11-07If a non-repeating key is used when repeating, it should be treated asnicm
an entirely new key press, not checked in root table and ignored if not found. GitHub issue 1513.
2018-10-18Support for windows larger than visible on the attached client. This hasnicm
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.
2018-09-11x,y -> px,py.Nicholas Marriott
2018-09-11Merge branch 'obsd-master'Thomas Adam
2018-09-11Do not check for mouse events on pane borders when zoomed, based on anicm
fix from Avi Halachmi.
2018-08-29Merge branch 'obsd-master'Thomas Adam
2018-08-29Keep any text killed in the command prompt with C-w and yank it withnicm
C-y, only use the top buffer if no text has previously been killed. This and previous change promped by discussion with kn@.
2018-08-22Merge branch 'obsd-master'Thomas Adam
2018-08-22Add StatusLeft and StatusRight mouse key modifiers for the left andnicm
right parts of the status line.
2018-08-21The stored mouse position should not include the status line offset if any.Nicholas Marriott
2018-08-20Only screen-redraw.c needs to adjust for message or prompt when theNicholas Marriott
status line is off, get rid of tty_status_lines and just pass the client into status_line_size so it can check the CLIENT_STATUSOFF flag as well.
2018-08-20Support for windows larger than the client.Nicholas Marriott
This adds 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. 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). 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-width -x or -y. 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 higher memory use if you make a window that big. The minimum size is the size required for the current layout including borders. This change allows some code improvements, most notably that since windows can now never be cropped, that code can be removed from the layout code, and since panes can now never be outside the size of the window, window_pane_visible can be removed.
2018-08-19Merge branch 'obsd-master'Thomas Adam
2018-08-19Add a flag to force redrawing of the status line even if the contentnicm
hasn't changed, needed for resizing.
2018-08-19Merge branch 'obsd-master'Thomas Adam
2018-08-19Add a client redraw-window flag instead of the redraw-all flag and fornicm
all just use the three flags together (window, borders, status).
2018-08-18Merge branch 'obsd-master'Thomas Adam
2018-08-18SESSION_UNATTACHED flag is no longer necessary now we have an attachednicm
count instead.
2018-08-02Merge branch 'obsd-master'Thomas Adam
2018-08-02Make key trees and some other bits static.nicm
2018-07-17Merge branch 'obsd-master'Thomas Adam
2018-07-17When a key isn't in the first table, we need to try the same key againnicm
not the any key. Also rename some labels. Fixes GitHub issue 1406 reeported by Mark Kelly.
2018-07-16Merge branch 'obsd-master'Thomas Adam
2018-07-16Add an "Any" key to run a command if a key is pressed that is not boundnicm
in the current key table. GitHub issue 1404.
2018-07-04Merge branch 'obsd-master'Thomas Adam
2018-07-04Add pane focus hooks.nicm
2018-05-24Merge branch 'obsd-master'Thomas Adam