Thomas Adam
5e9757b30b
Merge branch 'obsd-master'
2019-06-14 15:51:09 +01:00
nicm
3e72e98e3b
Add regular expression support for the format search, match and
...
substitute modifiers.
2019-06-13 19:46:00 +00:00
Thomas Adam
e13c1e5320
Merge branch 'obsd-master'
2019-06-07 23:02:26 +01:00
nicm
e37f34facc
Do not load the config file if the server is exiting because it failed
...
to start, otherwise commands like lsk which start the server again can
end up looping infinitely. Also make the first client exit
correctly. Problem reported by Wael M Nasreddine.
2019-06-07 20:09:17 +00:00
Thomas Adam
c91680822d
Merge branch 'obsd-master'
2019-06-05 23:02:26 +01:00
nicm
8f40796f05
Add a -v flag to source-file to show the commands and line numbers.
2019-06-05 20:00:53 +00:00
Thomas Adam
d3f0c72e20
Merge branch 'obsd-master'
2019-06-03 21:02:26 +01:00
nicm
4ca1de1b8b
Add new-session -X and attach-session -x to send SIGHUP to parent when
...
detaching (like detach-client -P). From Colin Watson in GitHub issue
1773.
2019-06-03 18:28:37 +00:00
Thomas Adam
c0116b2c5b
Merge branch 'obsd-master'
2019-05-28 09:02:26 +01:00
nicm
799a154b91
Change display-menu from taking a single string to a set of arguments,
...
which is much easier to work with. Based on a diff from Avi Halachmi.
2019-05-28 07:18:42 +00:00
Thomas Adam
103e44d936
Merge branch 'obsd-master'
2019-05-26 21:02:26 +01:00
nicm
e90d4a6021
Add formats for word and line under the mouse and use them to add some
...
items to the pane menu.
2019-05-26 17:34:45 +00:00
Thomas Adam
463bd8abb9
Merge branch 'obsd-master'
2019-05-25 18:41:51 +01:00
nicm
f8d3d247d8
Merge cmd_list_parse into cmd-parse.y so it can use the new alias
...
processing code.
2019-05-25 07:18:20 +00:00
nicm
930245d7ff
Make cmd_log_argv take a printf-like format for the prefix.
2019-05-25 06:58:10 +00:00
Thomas Adam
43431e7e84
Merge branch 'obsd-master'
2019-05-23 17:02:25 +01:00
nicm
27bfb56ad5
Break the argument escaping code into a separate function and use it to
...
escape key bindings in list-keys. Also escape ~ and ; and $ properly.
2019-05-23 14:03:44 +00:00
Thomas Adam
75aeb733f2
Merge branch 'obsd-master'
2019-05-23 13:02:27 +01:00
nicm
723010ba72
Replace the split parser code (cfg.c and cmd-string.c) with a single
...
parser using yacc(1). This is a major change but is clearer and simpler
and allows some edge cases to be made more consistent, as well as
tidying up how aliases are handled. It will also allow some further
improvements later.
Entirely the same parser is now used for parsing the configuration file
and for string commands. This means that constructs previously only
available in .tmux.conf, such as %if, can now be used in string commands
(for example, those given to if-shell - not commands invoked from the
shell, they are still parsed by the shell itself).
The only syntax change I am aware of is that #{} outside quotes or a
comment is now considered a format and not a comment, so #{ is now a
syntax error (notably, if it is at the start of a line).
This also adds two new sections to the man page documenting the syntax
and outlining how parsing and command execution works.
Thanks to everyone who sent me test configs (they still all parse
without errors - but this doesn't mean they still work as intended!).
Thanks to Avi Halachmi for testing and man page improvements, also to
jmc@ for reviewing the man page changes.
2019-05-23 11:13:30 +00:00
Thomas Adam
98ee93bde3
Merge branch 'obsd-master'
2019-05-20 15:02:40 +01:00
nicm
87d82170a6
Fix ordering of source-file with multiple files and add flags to load_cfg.
2019-05-20 13:23:32 +00:00
nicm
e128c7fcd8
Replace the various identical error callbacks with a single one in cmd-queue.c.
2019-05-20 11:46:06 +00:00
Thomas Adam
54da493476
Merge branch 'obsd-master'
2019-05-18 23:02:36 +01:00
nicm
82ebd98c5f
Move the single command flag (CMD_CONTROL) into the shared flags.
2019-05-18 21:14:10 +00:00
Thomas Adam
1eefbd28e8
Merge branch 'obsd-master'
2019-05-13 23:02:26 +01:00
nicm
1ee944a19d
Add support for overline (SGR 53), from Ricardo Banffy.
2019-05-13 20:10:23 +00:00
Thomas Adam
180bbab1fc
Merge branch 'obsd-master'
2019-05-12 11:02:25 +01:00
nicm
a131655235
Add simple menus to tree, client, buffer modes.
2019-05-12 08:58:09 +00:00
Thomas Adam
677bb168a9
Merge branch 'obsd-master'
2019-05-12 09:02:28 +01:00
nicm
c91323e4d6
Remove menu_create_from_items, I thought I would use it for some later
...
work but I don't need it.
2019-05-12 07:27:08 +00:00
Thomas Adam
aa13bd4016
Merge branch 'obsd-master'
2019-05-10 22:10:38 +01:00
nicm
6dcca5fda4
Add support for simple menus usable with mouse or keyboard. New command
...
display-menu shows a menu (bound to the mouse on status line by default)
and a couple of extra formats for the default menus.
2019-05-10 18:04:06 +00:00
Thomas Adam
c5f6ea5c0d
Merge branch 'obsd-master'
2019-05-10 17:02:27 +01:00
nicm
004a9b52f0
Add a function to draw a simple menu onto a screen.
2019-05-10 14:12:47 +00:00
Thomas Adam
e5f06d2cf6
Merge branch 'obsd-master'
2019-05-09 17:02:25 +01:00
nicm
cb10bfb8ef
Save mouse buttons as well as position.
2019-05-09 14:09:32 +00:00
Thomas Adam
2e00d775e4
Merge branch 'obsd-master'
2019-05-09 15:02:26 +01:00
nicm
21d9750450
send-keys also needs to insert key commands in the right order.
2019-05-09 13:12:59 +00:00
Thomas Adam
4bc45fc95a
Merge branch 'obsd-master'
2019-05-08 21:02:25 +01:00
nicm
f9682d2e55
Add a flag to redraw only the overlay, and remove the overlay on resize.
2019-05-08 18:07:12 +00:00
Thomas Adam
b24d7d9c95
Merge branch 'obsd-master'
2019-05-07 23:02:30 +01:00
nicm
89db309e10
Move around the display-panes identify code to make it a bit more
...
generic and hide the display-panes specific bits into
cmd-display-panes.c.
2019-05-07 20:01:41 +00:00
Thomas Adam
d9767b8112
Merge branch 'obsd-master'
2019-05-07 13:02:27 +01:00
nicm
85a9c2f52b
Treat keys in identify mode (display-panes) specially and handle them
...
immediately rather than queuing them (the command can block the queue
which means they were not being seen until it finished which was too
late). Reported by denis@ and solene@, ok solene@.
2019-05-07 11:24:03 +00:00
nicm
69440d19b7
Do not use evbuffer_add_buffer because it is destructive and doesn't
...
work in newer libevent.
2019-05-07 10:25:15 +00:00
Thomas Adam
d4177e954c
Merge branch 'obsd-master'
2019-05-03 23:02:28 +01:00
nicm
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
Thomas Adam
fff85d854e
Merge branch 'obsd-master'
2019-05-03 17:04:11 +01:00
nicm
cf6075fb29
Correct ordering when adding after an existing item.
2019-05-03 15:43:01 +00:00
nicm
33298d6df6
Instead of processing keys all together, put them up on the client
...
command queue so they are ordered correctly with the commands that they
execute.
2019-05-03 14:51:30 +00:00
Thomas Adam
3ab229da70
Merge branch 'obsd-master'
2019-04-28 23:02:30 +01:00
nicm
c4b0da5513
Support multiple occurances of the same argument. Use this for a new
...
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-28 20:05:50 +00:00
Thomas Adam
5489796737
Merge branch 'obsd-master'
2019-04-27 20:09:07 +01:00
nicm
dfb7bb6830
Merge hooks into options and make each one an array option. This allows
...
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-26 11:38:51 +00:00
Thomas Adam
7c4a2253e8
Merge branch 'obsd-master'
2019-04-25 21:02:43 +01:00
nicm
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
Thomas Adam
c869366133
Merge branch 'obsd-master'
2019-04-23 23:02:42 +01:00
nicm
772b3b7a06
Indicate an array option with a flag rather than a special type so that
...
in future will not have to be strings.
2019-04-23 20:36:55 +00:00
nicm
78287e27c8
Break new window and pane creation common code from various commands and
...
window.c into a separate file spawn.c.
2019-04-17 14:37:48 +00:00
Nicholas Marriott
5ece386cdf
Break new window and pane creation common code from various commands and
...
window.c into a separate file spawn.c.
2019-04-07 13:01:03 +01:00
Thomas Adam
bfc1f0ca62
Merge branch 'obsd-master'
2019-04-02 11:02:44 +01:00
nicm
7bcc0d16f2
Add an argument to copy commands to set the prefix for the buffer name,
...
allows buffers for different sessions to be named separately.
2019-04-02 09:03:39 +00:00
nicm
ffa4d48967
Store and restore cursor across reflow by working out a position based
...
on unwrapped lines, rather than a grid offset. Fixes problems reported
by Thomas Sattler and Paul de Weerd.
2019-04-02 08:45:32 +00:00
Thomas Adam
6ac84585e6
Merge branch 'obsd-master'
2019-03-25 20:02:38 +00:00
nicm
d21f8ecc13
Add StatusDefault binding for the mouse on any otherwise unassigned
...
parts of the status line, from Avi Halachmi.
2019-03-25 18:59:55 +00:00
Thomas Adam
0292243b29
Merge branch 'obsd-master'
2019-03-20 20:02:37 +00:00
nicm
9ee1a8f701
Improve cursor positioning after reflow by storing the position as an
...
offset into the entire history before reflow and restoring it aftewards.
2019-03-20 19:19:11 +00:00
Thomas Adam
073d439965
Merge branch 'obsd-master'
2019-03-19 00:02:39 +00:00
nicm
f34ebfed76
The individual -fg, -bg and -attr options have been deprecated (in
...
favour of -style), undocumented and hidden from show-options since
2014. Remove them, except for status-fg and status-bg.
2019-03-18 21:46:01 +00:00
Thomas Adam
962f255ee8
Merge branch 'obsd-master'
2019-03-18 21:24:49 +00:00
nicm
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
Thomas Adam
4cbf596dc5
Merge branch 'obsd-master'
2019-03-18 15:30:55 +00:00
Thomas Adam
acb2413852
Merge branch 'obsd-master'
2019-03-18 15:07:51 +00:00
nicm
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
nicm
ce6be7afd4
Make array options a sparse tree instead of an array of char * and
...
remove the size limit.
2019-03-18 11:58:40 +00:00
nicm
b588b1729a
Use a pointer for the active screen in the status line instead of
...
copying them around all the time.
2019-03-16 19:12:13 +00:00
nicm
b4f5b99e4b
Tidy and rename some bits of status line code.
2019-03-16 17:14:07 +00:00
nicm
e8b33af780
Add a way to set individual defaults for an array option.
2019-03-15 21:54:47 +00:00
nicm
85044a634b
Move status line free into its own function.
2019-03-15 14:46:58 +00:00
nicm
2d71bef0ca
Remove unused member of struct client.
2019-03-15 10:48:05 +00:00
nicm
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
nicm
10d60faba5
Store the time in the format tree rather than passing it around.
2019-03-14 23:14:27 +00:00
Thomas Adam
0b32fa81b6
Merge branch 'obsd-master'
2019-03-14 12:02:41 +00:00
nicm
13f9a061ac
Add a wrapper (struct style) around styles rather than using the
...
grid_cell directly. There will be some non-cell members soon.
2019-03-14 09:53:52 +00:00
Thomas Adam
b03f58b977
Merge branch 'obsd-master'
2019-03-13 00:02:38 +00:00
nicm
b2bc34af12
Set a flag on cells are genuinely empty (cleared and never written to)
...
and use tty_clear_line (which will choose the best escape sequence) to
clear any batches of cells with that flag when redrawing a line from the
stored screen.
2019-03-12 23:21:45 +00:00
Thomas Adam
400529eea0
Merge branch 'obsd-master'
2019-03-12 22:02:42 +00:00
nicm
938156d73b
DECRC and DECSC apparently need to preserve origin mode as well, based
...
on a fix from Marc Reisner.
2019-03-12 20:02:47 +00:00
Thomas Adam
ba4a884d75
Merge branch 'obsd-master'
2019-03-12 20:02:38 +00:00
nicm
2796ae81d0
Fix HPA in origin mode.
2019-03-12 18:30:08 +00:00
Thomas Adam
162d3cb1f4
Merge branch 'obsd-master'
2019-03-12 16:02:37 +00:00
nicm
028f9d1d87
Fix resizing of control clients, should be ignored until SIZECHANGED flag set.
2019-03-12 13:56:30 +00:00
Thomas Adam
3ec05e9405
Merge branch 'obsd-master'
2019-03-12 12:02:42 +00:00
nicm
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
Thomas Adam
95d340cc4f
Merge branch 'obsd-master'
2019-03-12 10:02:39 +00:00
nicm
ff4c80d53d
Add support for origin mode (DECOM, SM/RM ?6), from Marc Reisner.
2019-03-12 07:39:27 +00:00
Thomas Adam
bc72cf2f52
Merge branch 'obsd-master'
2019-03-08 12:02:39 +00:00
nicm
de730f68a4
Make the mode used to view command output (a variant of copy mode) use
...
its own mode definition struct with a different init function rather
than calling special setup functions.
2019-03-08 10:34:20 +00:00
Thomas Adam
349aeb806a
Merge branch 'obsd-master'
2019-03-07 22:02:42 +00:00
nicm
f98c66ece8
Add a separate mode struct for the active window mode if any.
2019-03-07 20:24:21 +00:00