summaryrefslogtreecommitdiff
path: root/usr.bin/tmux/server-fn.c
AgeCommit message (Collapse)Author
10 daysAdd no-detach-on-destroy client option (useful for control modeNicholas Marriott
clients). From laur dot aliste at gmail dot com, GitHub issue 4242.
2024-04-04Pick newest session as documented, not oldest, from Magnus Gross.Nicholas Marriott
2024-03-21Do not notify window-layout-changed if the window is about to beNicholas Marriott
destroyed (since it may have been freed by the time the notify happens), from Romain Francoise in GitHub issue 3860.
2024-02-13Add two new values for the destroy-unattached option to destroy sessionsNicholas Marriott
only if they are not members of sessions groups, from Mark Huang, GitHub issue 3806.
2023-09-01Add detach-on-destroy previous and next, mostly from Alexis Hildebrandt.Nicholas Marriott
2022-03-08Add remain-on-exit-format to set text shown when pane is dead.Nicholas Marriott
2021-08-17Set the right session if detach-on-destroy is off.Nicholas Marriott
2021-08-13Change focus to be driven by events rather than walking all panes at endNicholas Marriott
of event loop, this way the ordering of in and out can be enforced. GitHub issue 2808.
2021-02-01Add a no-detached choice to detach-on-destroy which detaches only ifNicholas Marriott
there are no other detached sessions to switch to, from Sencer Selcuk in GitHub issue 2553.
2021-01-04Add a variant of remain-on-exit that only keeps the pane if the programNicholas Marriott
failed, GitHub issue 2513.
2020-07-30Trim newline from ctime, from Thomas Adam.Nicholas Marriott
2020-07-04kill-window -a cannot just walk the list of windows because ifNicholas Marriott
renumber-windows is on, the window it wants to keep could be moved. Change to renumber afterwards and also behave better if the window is linked into the session twice. GitHub issue 2287.
2020-05-16Add a client flag 'active-pane' which stores the active pane in theNicholas Marriott
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.
2020-05-16Do not hoke into struct window_pane from the tty code and instead setNicholas Marriott
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.
2020-04-16Show signal name when process exits rather than number.Nicholas Marriott
2019-12-12Rewrite the code for reading and writing files. Now, if the client isNicholas Marriott
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.
2019-06-20Add a per-pane option set. Pane options inherit from window options (soNicholas Marriott
there should be no change to existing behaviour) and are set and shown with set-option -p and show-options -p. Change remain-on-exit and window-style/window-active-style to be pane options (some others will be changed later). This makes select-pane -P and -g unnecessary so no longer document them (they still work) and no longer document set-window-option and show-window-options in favour of set-option -w and show-options -w.
2019-05-03Allow panes to be empty (no command), output can be piped to them withNicholas Marriott
split-window or display-message -I.
2019-04-17Break new window and pane creation common code from various commands andNicholas Marriott
window.c into a separate file spawn.c.
2019-03-12DECRC and DECSC apparently need to preserve origin mode as well, basedNicholas Marriott
on a fix from Marc Reisner.
2018-11-30Clear PANE_EXITED flag when starting new child process in case the paneNicholas Marriott
has been respawned.
2018-10-18Support for windows larger than visible on the attached client. This hasNicholas Marriott
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-08-19Add a client redraw-window flag instead of the redraw-all flag and forNicholas Marriott
all just use the three flags together (window, borders, status).
2018-08-18SESSION_UNATTACHED flag is no longer necessary now we have an attachedNicholas Marriott
count instead.
2018-04-10Add x and X to choose-tree (with a confirmation prompt) to kill anNicholas Marriott
item. Suggested by Matt Zagrabelny.
2018-02-28Add -Z flag to choose-tree, choose-client, choose-buffer toNicholas Marriott
automatically zoom the pane when the mode is entered and unzoom when it exits, assuming the pane is not already zoomed. Add -Z to the default key bindings.
2017-10-12Show exit status and time in the remain-on-exit pane text, mostly fromNicholas Marriott
Timo Boettcher in GitHub issue 1103.
2017-08-29Check for complete keys before escape prefix, allows keys to be definedNicholas Marriott
with a leading escape. GitHub issue 1048.
2017-07-12proc_send_s now seems unnecessary.Nicholas Marriott
2017-07-09Some extra logging to show why tmux might exit.Nicholas Marriott
2017-05-12Scrolling needs to use background colour.Nicholas Marriott
2017-04-17Remove a couple of redraw flags that no longer have any effect.Nicholas Marriott
2017-03-09Move the client identify (display-panes) code into server-client.c.Nicholas Marriott
2017-03-09Move server_fill_environ into environ.c and move some other common codeNicholas Marriott
into it.
2017-02-09Instead of numbering session groups, give them a name which may be givenNicholas Marriott
to -t instead of a target session. Also allow them to contain only one session.
2017-01-13Make options_get_string return const string.Nicholas Marriott
2016-10-16Use the notify name string instead of going via an enum and changeNicholas Marriott
existing hooks to use notifys instead.
2016-10-11Add static in window-*.c and move some internal functions out of tmux.h.Nicholas Marriott
2016-10-10Loads more static, except for cmd-*.c and window-*.c.Nicholas Marriott
2016-06-16Allow a command to be specified to display-panes, similar toNicholas Marriott
command-prompt, rather than always just selecting the pane.
2016-01-19I no longer use my SourceForge address so replace it.Nicholas Marriott
2015-12-16Add infrastructure to work out the best target given a pane or windowNicholas Marriott
alone and use it to add pane_died and pane_exited hooks.
2015-12-12Add key-table option to set the default key table for a session, allowsNicholas Marriott
different key bindings for different sessions and a few other things.
2015-12-11Check alerts when session changes, from Patrick Palka.Nicholas Marriott
2015-11-24Make environ_set va_args and use it to tidy up some calls. Also add aNicholas Marriott
missing word in manpage (from jmc).
2015-11-18Use __unused rather than rolling our own.Nicholas Marriott
2015-11-14Push stdout and stderr to clients more aggressively, and add an event toNicholas Marriott
continue if the send fails.
2015-10-27Move struct options into options.c.Nicholas Marriott
2015-10-27Break the common process set up, event loop and imsg dispatch codeNicholas Marriott
between server and client out into a separate internal API. This will make it easier to add another process.
2015-10-20Use client pointer not file descriptor in logging.Nicholas Marriott