summaryrefslogtreecommitdiffstats
path: root/cmd-split-window.c
AgeCommit message (Collapse)Author
2024-03-07Merge branch 'obsd-master'Thomas Adam
2024-03-06Check for the right flag to fix split-window -p, from Bryan Childs.nicm
2022-06-07Merge branch 'obsd-master'Thomas Adam
2022-06-07Expand arguments to some commands where it makes sense, GitHub issuenicm
3204 from Anindya Mukherjee.
2022-03-09Merge branch 'obsd-master' into masterThomas Adam
2022-03-08With -f use percentages of window size not pane size, GitHub issue 2866.nicm
2021-10-07Merge branch 'obsd-master' into masterThomas Adam
2021-10-07Handle splitw -I correctly when used from an attached client, GitHubnicm
issue 2917.
2021-08-27Merge branch 'obsd-master' into masterThomas Adam
2021-08-27Replace %% in command lists (by copying them) for template arguments ,nicm
this means they can be used with {} as well. Also make argument processing from an existing vector preserve commands. GitHub issue 2858.
2021-08-21Merge branch 'obsd-master' into masterThomas Adam
2021-08-21Rename a member to match what it will be in future.nicm
2021-08-21Add args parsing callback for some future work, currently unused.nicm
2021-08-20Merge branch 'obsd-master' into masterThomas Adam
2021-08-20Hide struct args behind a couple of accessor functions.nicm
2021-08-20Expose args_value struct (will be needed soon) and add some missing frees.nicm
2021-03-11Merge branch 'obsd-master' into masterThomas Adam
2021-03-11Add split-window -Z to start the pane zoomed, GitHub issue 2591.nicm
2020-05-16Add a client flag 'active-pane' which stores the active pane in thenicm
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-14Add a client flag 'active-pane' which stores the active pane in the client andNicholas Marriott
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-04-14Merge branch 'obsd-master'Thomas Adam
2020-04-13Make client -c and -t handling common in cmd-queue.c and try to benicm
clearer about whether the client is the target client (must have a session) or not.
2020-04-13Merge branch 'obsd-master'Thomas Adam
2020-04-13Merge branch 'obsd-master'Thomas Adam
2020-04-13Move cmdq_state into cmd-queue.c.nicm
2020-04-13Rename cmdq_shared to cmdq_state which will better reflect what it isnicm
(going to be) used for.
2020-04-13Merge branch 'obsd-master'Thomas Adam
2020-04-13Also move cmdq_item and cmdq_list into cmd-queue.c (this is to make itsnicm
use more clearly defined and preparation for some future work).
2020-04-13Merge branch 'obsd-master'Thomas Adam
2020-04-13Make struct cmd local to cmd.c and move it out of tmux.h.nicm
2020-03-31Merge branch 'obsd-master'Thomas Adam
2020-03-31Add a way to mark environment variables as "hidden" so they can be usednicm
by tmux but are not passed into the environment of new panes.
2020-03-16Merge branch 'obsd-master'Thomas Adam
2020-03-16Do not attempt to close a NULL pane when failing to create a new one.nicm
2019-10-15Merge branch 'obsd-master'Thomas Adam
2019-10-15Add support for percentage sizes for resize-pane ("-x 10%"). Also changenicm
split-window and join-pane -l to accept similar percentages and deprecate -p. From Anindya Mukherjee.
2019-05-03Merge branch 'obsd-master'Thomas Adam
2019-05-03Allow panes to be empty (no command), output can be piped to them withnicm
split-window or display-message -I.
2019-04-28Merge branch 'obsd-master'Thomas Adam
2019-04-28Support multiple occurances of the same argument. Use this for a newnicm
flag -e to new-window, split-window, respawn-window, respawn-pane to pass environment variables into the newly created process. From Steffen Christgau in GitHub issue 1697.
2019-04-27Merge branch 'obsd-master'Thomas Adam
2019-04-26Merge hooks into options and make each one an array option. This allowsnicm
multiple commands to be easily bound to one hook. set-hook and show-hooks remain but they are now variants of set-option and show-options. show-options now has a -H flag to show hooks (by default they are not shown).
2019-04-17Break new window and pane creation common code from various commands andnicm
window.c into a separate file spawn.c.
2019-04-07Break new window and pane creation common code from various commands andNicholas Marriott
window.c into a separate file spawn.c.
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-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-05-24Merge branch 'obsd-master'Thomas Adam
2018-05-24Make server_client_get_cwd used (almost) everywhere we need to work outnicm
the cwd, and do not fall back to "." as it is pretty useless. GitHub issue 1331.
2018-03-16Merge branch 'obsd-master'Thomas Adam
2018-03-16Insert full size panes at the right position, from KOIE Hidetaka innicm
GitHub issue 1284.