Commit Graph

7113 Commits

Author SHA1 Message Date
641191ab20 Support for windows larger than the client.
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-20 15:22:14 +01:00
bf03197e18 Merge branch 'obsd-master' 2018-08-19 21:40:26 +01:00
cac4eadca0 Add a flag to force redrawing of the status line even if the content
hasn't changed, needed for resizing.
2018-08-19 20:13:07 +00:00
3310972d75 Merge branch 'obsd-master' 2018-08-19 21:02:37 +01:00
d95fad3d5f Expand \u and \U escape sequences in command strings, from Christopher
Hunt in GitHub issue 1443.
2018-08-19 19:03:46 +00:00
9ecf657703 Merge branch 'obsd-master' 2018-08-19 19:02:40 +01:00
88327c7698 Add a client redraw-window flag instead of the redraw-all flag and for
all just use the three flags together (window, borders, status).
2018-08-19 16:45:03 +00:00
e811132b05 Merge branch 'obsd-master' 2018-08-18 23:02:40 +01:00
bd2896b65e SESSION_UNATTACHED flag is no longer necessary now we have an attached
count instead.
2018-08-18 20:08:52 +00:00
522d751eee Merge branch 'obsd-master' 2018-08-18 19:02:39 +01:00
3bc08b0dc0 Some tidying and helper functions. 2018-08-18 16:14:03 +00:00
af679326b2 Now master again. 2018-08-17 11:46:08 +01:00
aa6e6fa0f2 2.8. 2018-08-17 11:45:40 +01:00
9bdbe171b7 2.8-rc. 2018-08-17 11:31:16 +01:00
98a3c98c28 Merge branch 'obsd-master' 2018-08-17 11:20:20 +01:00
de2ddddd60 Add a full stop. 2018-08-17 10:30:04 +01:00
a9ffb56b65 Add the KEYC_XTERM flag to all function keys that imply a modifier so
that they are correctly translated into xterm(1)-style keys. GitHub
issue 1437.
2018-08-16 14:04:03 +00:00
14b97fc889 Add size to arguments struct too. 2018-08-14 11:38:05 +00:00
d0a600ccaa Some tidying, use a struct for arguments (there will be more later) and
add a helper function.
2018-08-14 11:31:34 +00:00
a368548645 Merge branch 'obsd-master' 2018-08-10 11:41:07 +01:00
13fe06a459 Update CHANGES. 2018-08-10 10:21:40 +01:00
87e87030fe Whoops, didn't mean to commit this. 2018-08-09 09:54:22 +00:00
a5ef1f2ed6 Bump the UTF-8 character array up to 18 to allow for more combining
characters (some languages use up to five). This size doesn't make as
much difference now that UTF-8 goes into an extended cell. GitHub issue
1430.
2018-08-09 09:53:44 +00:00
f5d7a80272 calloc the mode data instead of malloc and initialize everything. 2018-08-05 08:59:30 +00:00
33f9b316a3 Merge branch 'obsd-master' 2018-08-02 21:02:25 +01:00
d6ff630498 Log command arguments. 2018-08-02 18:35:21 +00:00
eceaa9a493 Merge branch 'obsd-master' 2018-08-02 15:02:25 +01:00
2e19a5ecb9 Merge branch 'obsd-master' 2018-08-02 13:02:26 +01:00
fb1f0fee5a session_groups can be static also. 2018-08-02 11:56:12 +00:00
6048b0f483 Make key trees and some other bits static. 2018-08-02 11:44:07 +00:00
f12b857415 Minor tidying. 2018-08-02 11:18:34 +00:00
79bdca4638 Merge branch 'obsd-master' 2018-08-02 11:02:25 +01:00
21f8ac2766 Make display-panes block the client until a pane is chosen or it times out. 2018-08-02 07:55:16 +00:00
89b56c3451 Merge branch 'obsd-master' 2018-08-01 17:02:25 +01:00
fe7486d43b Initialize new lineflag member. 2018-08-01 15:22:40 +00:00
400b807d75 Merge branch 'obsd-master' 2018-07-31 17:02:31 +01:00
5f07da6227 Do not leak path or use it after free. 2018-07-31 13:06:44 +00:00
7eb3ef66e5 Merge branch 'obsd-master' 2018-07-31 13:02:25 +01:00
82776c456e Move struct screen_sel into screen.c and tidy up members that are only
used by copy mode.
2018-07-31 11:49:26 +00:00
80bdd89856 Clear history on RIS like most other terminals do. 2018-07-31 10:32:19 +00:00
ed6327c87b Merge branch 'obsd-master' 2018-07-30 13:02:25 +01:00
b21a710de7 Remove a leftover unused struct. 2018-07-30 11:24:55 +00:00
aa32457772 Merge branch 'obsd-master' 2018-07-23 21:02:25 +01:00
kn
5c78b48cdf Point to glob in section 7 for the actual list of special characters instead
the C API in section 3.

OK millert jmc nicm, "the right idea" deraadt
2018-07-23 19:02:49 +00:00
5fc2d4a4fc Merge branch 'obsd-master' 2018-07-17 21:02:24 +01:00
969af935f3 When a key isn't in the first table, we need to try the same key again
not the any key. Also rename some labels. Fixes GitHub issue 1406
reeported by Mark Kelly.
2018-07-17 18:02:40 +00:00
4f04b2094c Merge branch 'obsd-master' 2018-07-16 11:02:25 +01:00
0d88f8a78b Add an "Any" key to run a command if a key is pressed that is not bound
in the current key table. GitHub issue 1404.
2018-07-16 08:48:22 +00:00
6de991d855 Merge branch 'obsd-master' 2018-07-15 11:02:25 +01:00
ff67ef945d Fix new-window -k, GitHub issue 1403. 2018-07-15 06:57:13 +00:00