Commit Graph

551 Commits

Author SHA1 Message Date
299b7289ea Add formats to show if pane is the marked pane and if any marked pane is set. 2019-05-09 08:38:13 +00:00
d4177e954c Merge branch 'obsd-master' 2019-05-03 23:02:28 +01:00
9f75635596 Allow panes to be empty (no command), output can be piped to them with
split-window or display-message -I.
2019-05-03 20:44:24 +00:00
7c4a2253e8 Merge branch 'obsd-master' 2019-04-25 21:02:43 +01:00
32a81e197b Make options_tostring allocate its result instead of using a stack
buffer (needed for something in the future).
2019-04-25 18:18:55 +00:00
ecc5cea09b Merge branch 'obsd-master' 2019-03-29 10:02:36 +00:00
d68a17a1df Free old strings after they have been expanded in format_choose. 2019-03-29 09:33:24 +00:00
2c4f2393ec Merge branch 'obsd-master' 2019-03-28 22:02:37 +00:00
08bc226527 Expand session and window formats for buffer filters. 2019-03-28 21:05:15 +00:00
320237fdb8 Merge branch 'obsd-master' 2019-03-19 20:02:37 +00:00
161b57869e Add a cursor_character format. 2019-03-19 19:01:50 +00:00
962f255ee8 Merge branch 'obsd-master' 2019-03-18 21:24:49 +00:00
979313832c Extend the #[] style syntax and use that together with previous format
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-18 20:53:33 +00:00
4cbf596dc5 Merge branch 'obsd-master' 2019-03-18 15:30:55 +00:00
acb2413852 Merge branch 'obsd-master' 2019-03-18 15:07:51 +00:00
2628af573d Add format variables for the default formats for the various modes
(tree_mode_format and so on) and add a -a flag to display-message to
list variables with values.
2019-03-18 14:10:25 +00:00
d2d43987d0 With force, kill previous job before starting new. Fixes problem
reported by Scott Mcdermott in GitHub issue 1627.
2019-03-18 09:46:42 +00:00
33595a255f Copy recursion counter into new formats when looping. 2019-03-15 15:02:25 +00:00
f6d34f066c Only print format logging when the flag is set, even if also sending to log_debug. 2019-03-15 10:22:57 +00:00
672c49d512 The pane and window loops need to pass the window and pane tags when
they build their format.
2019-03-15 10:07:24 +00:00
27578815da Add a -v flag to display-message to show verbose messages as the format
is parsed, this gives the user a way to debug problems with formats
rather than just being confronted with (for example) a blank status
line.
2019-03-15 10:04:13 +00:00
25e2e22791 Add a limit on how far format_expand can recurse. 2019-03-14 23:34:41 +00:00
10d60faba5 Store the time in the format tree rather than passing it around. 2019-03-14 23:14:27 +00:00
2c755e3c55 Merge branch 'obsd-master' 2019-03-14 22:02:39 +00:00
4206bcc10e Add format flags for start and end window. 2019-03-14 21:41:30 +00:00
38064e7593 Add T format modifier like E but also do strftime(3). 2019-03-14 21:31:43 +00:00
1416ceb575 Accept 0 time as a shorthand for now to format_expand_time. 2019-03-14 21:27:26 +00:00
786f5e505e Merge branch 'obsd-master' 2019-03-13 20:02:36 +00:00
6dffbc4849 Tweak format_replace logging. 2019-03-13 18:09:12 +00:00
e6fd429d58 Merge branch 'obsd-master' 2019-03-13 16:02:41 +00:00
95ab1aaaec Add formats to list sessions, windows or panes. 2019-03-13 15:37:28 +00:00
49f04a997a Apply length limits and substitution even to literal formats. 2019-03-13 14:27:17 +00:00
9032ac2a05 Add E: format to expand a format twice (useful to expand the value of an
option).
2019-03-13 14:19:54 +00:00
71e00c718c Make format parsing build the modifiers into a list, standardize how
arguments are given and allow multiple modifiers on a format (separated
by ;).
2019-03-13 14:10:34 +00:00
3ec05e9405 Merge branch 'obsd-master' 2019-03-12 12:02:42 +00:00
3f6bfbaf2b Allow multiple modes to be open in a pane. A stack of open modes is kept
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-12 11:16:49 +00:00
349aeb806a Merge branch 'obsd-master' 2019-03-07 22:02:42 +00:00
f98c66ece8 Add a separate mode struct for the active window mode if any. 2019-03-07 20:24:21 +00:00
a1009e7bd3 Merge branch 'obsd-master' 2019-03-07 20:02:41 +00:00
7f093fcddc Make adding mode formats a function pointer as well. 2019-03-07 19:01:21 +00:00
efd01f3bfd Merge branch 'obsd-master' 2018-11-19 14:02:41 +00:00
749f67b7d8 evbuffer_new and bufferevent_new can both fail (when malloc fails) and
return NULL. GitHub issue 1547.
2018-11-19 13:35:40 +00:00
646995384d Support for windows larger than visible on the attached client. This has
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-10-18 08:38:01 +00:00
a00cdcdfcb Merge branch 'obsd-master' 2018-09-27 11:02:37 +01:00
228e1a3951 Use same working directory rules for jobs as new windows rather than
always starting in home, GitHub issue 1488.
2018-09-27 07:43:18 +00:00
ebaf54251a Add formats for when window is larger than client, and show offset in
status-right by default when larger.
2018-09-26 18:41:18 +01:00
b74b047730 More of revert. 2018-09-26 16:49:03 +01:00
83b2d5c513 window_printable_flags needs an additional argument. 2018-09-25 09:55:49 +01:00
18b611bc8d Merge branch 'obsd-master' 2018-08-27 13:02:38 +01:00
79d2351ce8 Memory leaks, from Gang Fan in GitHub issue 1453. 2018-08-27 11:03:34 +00:00