Nicholas Marriott
013d857ef8
Wrap all lines in customize mode, not just the description.
2020-05-09 15:29:14 +01:00
Nicholas Marriott
a61cbf1c33
Add a customize mode where options may be browsed and changed, includes adding
...
a brief description of each option. Bound to "C" by default.
2020-05-08 19:10:09 +01:00
Nicholas Marriott
7a95e9bf7e
Change message log to be per server rather than per client and include every
...
command that is run.
2020-05-06 13:43:22 +01:00
Nicholas Marriott
2f89d2e7d8
Change the existing client flags for control mode to apply for any client, use
...
the same mechanism for the read-only flag and add an ignore-size flag.
refresh-client -F has become -f (-F stays for backwards compatibility) and
attach-session and switch-client now have -f flags also. A new format
"client_flags" lists the flags and is shown by list-clients by default.
This separates the read-only flag from "ignore size" behaviour (new
ignore-size) flag - both behaviours are useful in different circumstances.
attach -r and switchc -r remain and set or toggle both flags together.
2020-05-05 15:42:20 +01:00
Nicholas Marriott
e810f15272
Store and restore cursor position when copy mode is resized, from Anindya
...
Mukherjee.
2020-05-05 10:20:57 +01:00
Nicholas Marriott
9991a14e81
Add formats for after hook command arguments.
2020-05-05 06:19:29 +01:00
Nicholas Marriott
af69289e0e
Clamping to area needs to use the offset without the status line, since that is
...
where the window offsets are based.
2020-05-02 16:17:44 +01:00
Nicholas Marriott
3f1fc9cde3
Get the whole overlay screen not just the mode so cursor changes are included.
2020-05-01 17:30:28 +01:00
Nicholas Marriott
8110c7a25f
Do not hoke into struct window_pane from the tty code and instead set
...
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-05-01 17:01:36 +01:00
Nicholas Marriott
93dca5ab3f
Move size to tty_ctx.
2020-05-01 13:19:05 +01:00
Nicholas Marriott
5ce194f15d
Rename some tty_ctx members.
2020-05-01 13:01:55 +01:00
Nicholas Marriott
cc19203be2
Add 'e' key in buffer mode to open the buffer in an editor.
2020-05-01 09:02:44 +01:00
Nicholas Marriott
25487757bc
Add -W and -T flags to command-prompt to only complete a window and a target.
2020-04-30 12:02:21 +01:00
Nicholas Marriott
6f700904a9
Copy mode search improvements:
...
- Add styles for the search marking styles (copy-mode-match-style and
copy-mode-current-match-style).
- Show the current match (the one with the cursor on it) in a different style.
- Copying without a selection will copy the current match if there is one.
2020-04-29 18:08:21 +01:00
Nicholas Marriott
b06235c345
Improve command prompt completion:
...
- Show a menu with completions if there are multiple.
- Don't complete argument stuff (options, layouts) at start of text.
- For -t and -s, if there is no : then complete sessions but if there is a :,
show a menu of all windows in the session rather than trying to complete the
window name which is a bit useless if there are duplicates.
Lots of scope for being more sophisticated left here.
2020-04-29 13:56:10 +01:00
Nicholas Marriott
24316bed49
Apply a format when redrawing pane borders.
2020-04-29 08:21:29 +01:00
Nicholas Marriott
1f8256fc50
Drop having a separate type for style options and make them all strings, which
...
allows formats to be expanded. Any styles without a '#{' are still validated
when they are set but any with a '#{' are not. Formats are not expanded
usefully in many cases yet, that will be changed later.
To make this work, a few other changes:
- set-option -a with a style option automatically appends a ",".
- OSC 10 and 11 don't set the window-style option anymore, instead the fg and
bg are stored in the pane struct and act as the defaults that can be
overridden by window-style.
- status-fg and -bg now override status-style instead of trying to keep them in
sync.
2020-04-28 13:50:07 +01:00
Nicholas Marriott
79b4d83952
Use a grid cell not a style for the pane style.
2020-04-27 15:15:12 +01:00
Nicholas Marriott
c30e765c7b
Add some additional format helper functions.
2020-04-27 14:33:17 +01:00
Nicholas Marriott
9b571dacee
Instead of forbidding invalid session names, sanitize them.
2020-04-24 16:40:10 +01:00
Nicholas Marriott
527f66ed23
Instead of having a default set of terminals in terminal-overrides that get XT
...
added and using that as a marker for xterm(1)-like, assume that if the
terminfo(5) entry already has XT or the clear capability starts with CSI then
the terminal is VT100-like and it should be safe to send DA requests. The DA
responses trigger additional features being added.
This is all to detect extensions if terminfo(5) is wrong or inadequate. If it
fails, tmux will just fall back to using the capabilities in the terminfo(5)
entry alone.
2020-04-24 15:52:44 +01:00
Nicholas Marriott
61550ac2e0
Add feature and capabilities for focus reporting. Also document AX and XT even
...
though they aren't tmux's.
2020-04-24 07:37:11 +01:00
Nicholas Marriott
5d69b9c4a7
Add a feature for bracketed paste.
2020-04-24 07:13:02 +01:00
Nicholas Marriott
8650f44340
Move terminal features into a single file.
2020-04-24 06:40:51 +01:00
Nicholas Marriott
d53e1fedd5
Add TMUX_SOCK like TMUX_PATH for the socket directory.
2020-04-23 18:15:02 +01:00
Nicholas Marriott
0d3fdae7b6
Build list of paths and weed out duplicates before loading configs.
2020-04-23 17:56:45 +01:00
Nicholas Marriott
ac91635f82
Add extension terminfo(5) capabilities for margins.
2020-04-23 12:12:02 +01:00
Nicholas Marriott
c74572da92
Remove support for iTerm2's DSR 1337 extension and use the CSI > q extension
...
now supported by a few different terminals.
2020-04-23 10:29:03 +01:00
Thomas Adam
cf5f93b2b3
Merge branch 'obsd-master'
2020-04-23 02:01:33 +01:00
nicm
899b3d2436
Indicate the marked pane in choose mode in reverse and add key to set
...
and clear it (m and M) and a key to jump to the starting pane (H).
2020-04-22 21:01:28 +00:00
Thomas Adam
8ae3915cc2
Merge branch 'obsd-master'
2020-04-22 12:01:38 +01:00
nicm
de5163a634
Change so main-pane-width and height can be given as a percentage.
2020-04-22 06:57:13 +00:00
Thomas Adam
32c3fe40eb
Merge branch 'obsd-master'
2020-04-20 17:43:20 +01:00
Thomas Adam
c706aadf52
Merge branch 'obsd-master'
2020-04-20 17:42:29 +01:00
nicm
117ec1b2e6
Apply terminal-overrides after terminal detection, it always takes
...
precedence.
2020-04-20 15:37:32 +00:00
nicm
2083a6ea20
Change how sync works to always send the end sequence after all output
...
is done when we are returning to the event loop (since we always move
the cursor at that point). Also a man fix from jmc.
2020-04-20 14:59:31 +00:00
nicm
c91b4b2e14
Tidy up the terminal detection and feature code and add named sets of
...
terminal features, each of which are defined in one place and map to a
builtin set of terminfo(5) capabilities. Features can be specified based
on TERM with a new terminal-features option or with the -T flag when
running tmux. tmux will also detect a few common terminals from the DA
and DSR responses.
This is intended to make it easier to configure tmux's use of
terminfo(5) even in the presence of outdated ncurses(3) or terminfo(5)
databases or for features which do not yet have a terminfo(5) entry.
Instead of having to grok terminfo(5) capability names and what they
should be set to in the terminal-overrides option, the user can
hopefully just give tmux a feature name and let it do the right thing.
The terminal-overrides option remains both for backwards compatibility
and to allow tweaks of individual capabilities.
tmux already did much of this already, this makes it tidier and simpler
to configure.
2020-04-20 13:25:36 +00:00
Thomas Adam
8c9bbc3749
Merge branch 'obsd-master'
2020-04-19 00:01:31 +01:00
nicm
62ff5e4b01
The PANE_REDRAW flag bit might be needed by other panes so we can't
...
clear it on the first redraw, and it can't be set when we are finished
or they would be redrawn again, so if the redraw is deferred for a
client, copy the redraw flag into a separate set of bits just for that
client.
2020-04-18 21:35:32 +00:00
Thomas Adam
7da5418758
Merge branch 'obsd-master'
2020-04-18 20:01:29 +01:00
nicm
100db552d1
A resize can realloc so cannot cache the value of the list pointer.
2020-04-18 17:20:25 +00:00
Thomas Adam
2b83ee5557
Merge branch 'obsd-master'
2020-04-18 18:01:28 +01:00
nicm
ea5fdd5331
There is no point in keeping a bunch of different text buffers for each
...
line when writing, we only need one as big as the line width - there
can't be any more text than that since newer will overwrite older.
2020-04-18 15:12:28 +00:00
Thomas Adam
2ccf15e5d8
Merge branch 'obsd-master'
2020-04-18 16:01:34 +01:00
nicm
4a93294152
Use size_t not u_int for the bytes counters and fix a const missing.
2020-04-18 14:21:39 +00:00
Thomas Adam
e1799ed7c8
Merge branch 'obsd-master'
2020-04-18 10:01:31 +01:00
nicm
b0a37e7514
Bring back previons fix to only redraw panes that need it after a redraw
...
is deferred, but clear the pane flags when they are actually redrawn
rather than every time.
2020-04-18 07:32:53 +00:00
nicm
e153b928ff
Add formats for pane written/skipped bytes for debugging.
2020-04-18 07:19:28 +00:00
Thomas Adam
349617a818
Merge branch 'obsd-master'
2020-04-18 08:01:37 +01:00
nicm
1d2bd864f2
Add a flag to protect against nested syncs and add some extra logging to
...
redrawing.
2020-04-18 06:20:50 +00:00
nicm
d94bdf7420
Revert previous, there is still a problem.
2020-04-18 06:15:07 +00:00
nicm
5289d4ed13
When a redraw is deferred because the terminal hasn't finished reading
...
the data from the last one, other panes could update while waiting, so
we set the flag to redraw them all when the new redraw actually
happened. But this means a lot of redrawing panes unnecessarily if they
haven't changed - so instead set a flag to say "at least one pane needs
to be redrawed" then look at the invidual pane flags to see which ones
need it.
2020-04-18 06:10:15 +00:00
Thomas Adam
7a21e911e1
Merge branch 'obsd-master'
2020-04-17 16:01:33 +01:00
nicm
282a7a8d96
Make sure the cursor position is still on screen after we have trimmed
...
empty lines. Also improve some log messages.
2020-04-17 14:06:42 +00:00
Thomas Adam
21eb2ba419
Merge branch 'obsd-master'
2020-04-16 18:01:32 +01:00
nicm
2e347d6a38
Only start and stop sync for operations like clear and scroll where
...
there is a better chance more data will be on the way.
2020-04-16 16:13:56 +00:00
nicm
363d950ac0
Send secondary device attributes instead of primary which gives us a bit
...
more useful information on some terminals.
2020-04-16 15:14:25 +00:00
Thomas Adam
5e38d26257
Merge branch 'obsd-master'
2020-04-16 16:01:35 +01:00
nicm
5ec80bd249
Move the UTF-8 flag to terminal flags.
2020-04-16 14:25:35 +00:00
nicm
4744aa43af
Add a helper function to get the terminal flags.
2020-04-16 14:03:51 +00:00
nicm
b2443aa2f9
Add support for the iTerm2 sychronized updates escape sequence which
...
drastically reduces flickering.
2020-04-16 13:35:24 +00:00
Thomas Adam
dd66ede38b
Merge branch 'obsd-master'
2020-04-16 10:01:33 +01:00
nicm
a2e47b5279
Show signal name when process exits rather than number.
2020-04-16 07:28:36 +00:00
Thomas Adam
6d6309014e
Merge branch 'obsd-master'
2020-04-15 20:01:27 +01:00
nicm
53a29a2ffa
Instead of fixing with the cursor position when the copied screen is
...
created, resize it and let the resize/reflow code fix it up and return
it. Solves various problems with cursor position and resizing when in
copy mode. With Anindya Mukherjee.
2020-04-15 17:50:02 +00:00
Thomas Adam
ebeb457385
Merge branch 'obsd-master'
2020-04-15 18:01:27 +01:00
nicm
1e72f5ea43
Use mode-style for selected items, like choose modes. GitHub issue 2166.
2020-04-15 16:11:23 +00:00
Thomas Adam
fe1778e377
Merge branch 'obsd-master'
2020-04-15 16:01:27 +01:00
nicm
c7883d5c87
Use grid_empty_line rather than memset when adding new lines on resize.
...
Also remove some old test code.
2020-04-15 12:59:20 +00:00
Thomas Adam
6d9b3704f5
Merge branch 'obsd-master'
2020-04-14 08:01:33 +01:00
nicm
63ec791854
Provide an accessor for the running queue item and use it to not let
...
hooks recurse.
2020-04-14 06:00:52 +00:00
Thomas Adam
653a159225
Merge branch 'obsd-master'
2020-04-14 00:01:41 +01:00
Thomas Adam
2159ff3256
Merge branch 'obsd-master'
2020-04-13 22:01:30 +01:00
nicm
3f7f9a0e20
Make client -c and -t handling common in cmd-queue.c and try to be
...
clearer about whether the client is the target client (must have a
session) or not.
2020-04-13 20:51:57 +00:00
nicm
187277eaad
Add helpers for the simple case of parse string and add to command queue.
2020-04-13 18:59:41 +00:00
Thomas Adam
acc00cd13a
Merge branch 'obsd-master'
2020-04-13 18:01:43 +01:00
nicm
34804f2709
When parsing strings, put all commands in one group even if there are
...
newlines. This means that for example bind q { a \n b } and bind q "a ;
b" are the same. Also log commands in different groups separated by ;;
rather than ; (a command list like this should never be user visible).
2020-04-13 16:19:37 +00:00
nicm
3f86d6d460
When adding a list of commands to the queue, instead of automatically
...
creating a new state for each group of commands, require the caller to
create one and use it for all the commands in the list. This means the
current target works even with list with multiple groups (which can
happen if they are defined with newlines).
2020-04-13 15:55:51 +00:00
Thomas Adam
0a11f1607b
Merge branch 'obsd-master'
2020-04-13 16:01:46 +01:00
nicm
adb76fd1ce
Move cmdq_state into cmd-queue.c.
2020-04-13 14:46:04 +00:00
nicm
9a65102bfc
Rename cmdq_shared to cmdq_state which will better reflect what it is
...
(going to be) used for.
2020-04-13 14:04:25 +00:00
nicm
77d5b0cc53
Store a key event not a mouse event in the shared data.
2020-04-13 13:42:35 +00:00
nicm
53d6b94e8a
Move the NOHOOKS flag into the shared flags.
2020-04-13 13:32:09 +00:00
Thomas Adam
8f2b5d714a
Merge branch 'obsd-master'
2020-04-13 14:01:45 +01:00
nicm
04cdd03525
Also move cmdq_item and cmdq_list into cmd-queue.c (this is to make its
...
use more clearly defined and preparation for some future work).
2020-04-13 10:59:58 +00:00
Thomas Adam
b117c3b812
Merge branch 'obsd-master'
2020-04-13 10:30:00 +01:00
nicm
c20eb0c0ae
Make struct cmd local to cmd.c and move it out of tmux.h.
2020-04-13 08:26:27 +00:00
nicm
1c433f1354
Remove unused define, also a man fix from jmc.
2020-04-10 20:53:54 +00:00
nicm
c0602f357d
Now that copy mode copies the pane content rather than keeping a
...
reference to it, it isn't necessary that the pane in copy mode is the
same as the one copying from. Add a -s flag to copy-mode to specify a
different pane for the source content. This means it is possible to view
two places in a pane's history at the same time in different panes, or
copy from a pane's history into an editor or shell in the same pane.
From Anindya Mukherjee.
2020-04-10 07:44:26 +00:00
Thomas Adam
52e3d960e7
Merge branch 'obsd-master'
2020-04-09 16:01:45 +01:00
nicm
e9e5facb0e
Some minor style nits.
2020-04-09 14:23:34 +00:00
Thomas Adam
916c3787d7
Merge branch 'obsd-master'
2020-04-09 14:01:32 +01:00
nicm
0e8710f507
Wait until the initial command sequence is done before sending a device
...
attributes request and other bits that prompt a reply from the terminal.
This means that stray relies are not left on the terminal if the command
has attached and then immediately detached and tmux will not be around
to receive them. Prompted by a problem report from espie@.
2020-04-09 12:16:16 +00:00
nicm
5d0eb619f1
Restore pane_current_path format from portable tmux, it is no longer
...
used by default and is very useful.
2020-04-08 11:26:07 +00:00
Thomas Adam
6a2f32b4fd
Merge branch 'obsd-master'
2020-04-07 16:01:29 +01:00
nicm
1c8f7c1f7a
Do not restore history flag if it was never set.
2020-04-07 13:55:24 +00:00
Thomas Adam
8fa0b0cd26
Merge branch 'obsd-master'
2020-04-06 20:01:33 +01:00
nicm
77b827f879
Change copy mode to make copy of the pane history so it does not need to
...
freeze updates (which does not play nicely with some applications, a
longstanding problem) and will allow some other changes later. From
Anindya Mukherjee.
2020-04-06 17:51:34 +00:00
Thomas Adam
66db12db31
Merge branch 'obsd-master'
2020-04-01 12:01:27 +01:00
nicm
dd2fdcda79
Support mouse in popups.
2020-04-01 09:05:27 +00:00
Thomas Adam
dfd29977e0
Merge branch 'obsd-master'
2020-03-31 20:01:34 +01:00
nicm
38f1546a66
Add a way to mark environment variables as "hidden" so they can be used
...
by tmux but are not passed into the environment of new panes.
2020-03-31 17:14:40 +00:00
nicm
cc8b41f294
Add a way to mark environment variables as "hidden" so they can be used
...
by tmux but are not passed into the environment of new panes.
2020-03-31 17:14:40 +00:00
nicm
e6d1b6770c
Add non-regex search variants to avoid the performance cost for people
...
with large histories or long lines.
2020-03-31 16:53:23 +00:00
nicm
2624edde46
Add non-regex search variants to avoid the performance cost for people
...
with large histories or long lines.
2020-03-31 16:53:23 +00:00
Thomas Adam
0bb1a50b88
Merge branch 'obsd-master'
2020-03-31 16:01:29 +01:00
nicm
01b3bb8e2c
Add a "second click" key type which is fired for the second click of a
...
double click, even if the timer hasn't expired to confirm it isn't
actually a triple click. Provides a way for people who don't care about
triple clicks or can make their commands have no side effects to avoid
the double click timer delay.
2020-03-31 11:38:35 +00:00
Thomas Adam
c9cd8f9b5d
Merge branch 'obsd-master'
2020-03-31 10:01:29 +01:00
nicm
3bbd66c013
Move alternate screen into the screen rather than the pane.
2020-03-31 07:00:34 +00:00
Thomas Adam
588865152a
Merge branch 'obsd-master'
2020-03-30 18:01:28 +01:00
nicm
1fb504d0d5
Tweak key numbers to avoid some special keys crossing over with modifier bits.
2020-03-30 16:16:48 +00:00
Thomas Adam
374f5ea60c
Merge branch 'obsd-master'
2020-03-28 14:01:28 +00:00
Thomas Adam
88ca500546
Merge branch 'obsd-master'
2020-03-28 10:01:27 +00:00
nicm
593fddf84b
Make two -E only close popup automatically if the command exited with 0.
2020-03-28 09:51:12 +00:00
nicm
4346098e97
Fix how popup height is calculated to take embedded newlines into account.
2020-03-28 09:39:44 +00:00
Thomas Adam
8a57d14f4b
Merge branch 'obsd-master'
2020-03-26 11:11:37 +00:00
nicm
8a838b0372
Add support for overlay popup boxes to show text or output temporarily
...
above the normal layout. These work similarly to menus and are created
with the display-popup command.
2020-03-24 08:09:43 +00:00
Thomas Adam
5123bb7db4
Merge branch 'obsd-master'
2020-03-21 14:01:27 +00:00
nicm
8828b958f0
Break code to convert an argument as a percentage into a common function.
2020-03-21 13:16:15 +00:00
Thomas Adam
e4efd59fe0
Merge branch 'obsd-master'
2020-03-20 20:01:34 +00:00
nicm
06c3079d66
Make the mouse_word and mouse_line formats work in copy mode and enable
...
the default pane menu in copy mode.
2020-03-20 17:59:39 +00:00
Thomas Adam
35c4897d8f
Merge branch 'obsd-master'
2020-03-19 16:01:29 +00:00
nicm
de34436d4c
Change input path so it doesn't require a pane.
2020-03-19 14:03:48 +00:00
Thomas Adam
17e4f2394a
Merge branch 'obsd-master'
2020-03-19 14:01:31 +00:00
nicm
e8273a993e
Add a flag to run a background process in a pty as well, not used for
...
anything yet.
2020-03-19 13:43:18 +00:00
Thomas Adam
0610f66fa9
Merge branch 'obsd-master'
2020-03-17 12:01:28 +00:00
nicm
115bb33257
Ignore default-shell (and use /bin/sh) if it invalid not just if it is
...
tmux itself, also refuse to set the option to something invalid in the
first place. GitHub issue 2120.
2020-03-17 11:10:12 +00:00
Thomas Adam
f584fe1b00
Merge branch 'obsd-master'
2020-03-16 08:01:27 +00:00
nicm
d162ff48f3
Send mouse down event immediately rather than waiting for double click
...
to finish which would now mean it was out of order. Reported by Mark
Kelly.
2020-03-16 06:12:42 +00:00
Thomas Adam
6385bd1e08
Merge branch 'obsd-master'
2020-03-12 14:01:29 +00:00
nicm
f7bc753442
Change how double and triple clicks works so that one or the other is
...
fired - a double click is no longer triggered on the way to a triple
click.
2020-03-12 13:16:16 +00:00
Thomas Adam
1a2e66f345
Merge branch 'obsd-master'
2020-03-12 10:01:25 +00:00
nicm
2a5702a936
When the server socket is given by the user with -S, create it with
...
umask 177 instead of 117 because it may not be in a safe directory like
the default directory in /tmp. The user can chmod it more open after it
is created if they want.
2020-03-12 09:26:34 +00:00
Thomas Adam
e512a3642a
Merge branch 'obsd-master'
...
Also add a check for -lm via AC_SEARCH_LIBS in configure.ac for
portablility fixes.
2020-03-11 17:23:38 +00:00
nicm
c820585dd0
Add some number operators for formats, from Tyler Culp.
2020-03-11 14:17:55 +00:00
Thomas Adam
19d5f4a0bd
Merge branch 'obsd-master'
2020-02-03 14:01:25 +00:00
nicm
265164d251
Instead of passing titles through vis() which doubles backslashes, just
...
ignore any containing control characters or invalid UTF-8. GitHub issue 2070.
2020-02-03 13:46:27 +00:00
Thomas Adam
7eada28f96
Merge branch 'obsd-master'
2020-01-28 14:01:25 +00:00
nicm
b905c5d455
If ALL clients are readonly, allow them to affect the size, suggested by Thomas Sattler.
2020-01-28 13:23:24 +00:00
Thomas Adam
60ab714451
Merge branch 'obsd-master'
2020-01-28 12:01:28 +00:00
nicm
a6129e9974
If we can identify the terminal as iTerm2 or as tmux, we can be sure
...
they support 256 and RGB colours, so set those flags too.
2020-01-28 11:39:51 +00:00
Thomas Adam
ee3d3db364
Merge branch 'obsd-master'
2020-01-28 11:17:08 +00:00
nicm
f165221dc4
Reduce a difference with portable tmux by adding the -V flag and
...
#{version} format; on OpenBSD these just report the OpenBSD version.
2020-01-28 10:44:30 +00:00
Thomas Adam
7cdf5ee9bc
Merge branch 'obsd-master'
2020-01-28 10:01:25 +00:00
nicm
24350879cd
Add a define for flags meaning a client is not attached, and fix
...
unattached counter, reported by Thomas Sattler.
2020-01-28 08:06:11 +00:00
Thomas Adam
f3ea318a04
Merge branch 'obsd-master'
2020-01-27 10:01:27 +00:00
nicm
d0b8d036be
Add support for adding a note to a key binding (with bind-key -N) and
...
use this to add descriptions to the default key bindings. A new -N flag
to list-keys shows key bindings with notes rather than the default
bind-key command used to create them. Change the default ? binding to
use this to show a readable summary of keys.
Also extend command-prompt to return the name of the key pressed and add
a default binding (/) to show the note for the next key pressed
Suggested by Alex Tremblay in GitHub issue 2000.
2020-01-27 08:53:13 +00:00
Thomas Adam
a01c9ffc6c
Merge branch 'obsd-master'
2020-01-13 14:01:25 +00:00
nicm
da515570dc
Stop handling DA and DSR after a second (they should be the first thing
...
sent) so this should be plenty.
2020-01-13 11:59:21 +00:00
Thomas Adam
8457f54edc
Merge branch 'obsd-master'
2020-01-13 10:01:27 +00:00
nicm
835a6c0cf0
Be more specific in the DSR we are looking for so it doesn't get
...
confused with mouse sequences. Also set a flag and don't bother checking
for it if we have already seen it (same for DA), and don't check if we
never asked for it.
2020-01-13 08:12:53 +00:00
nicm
04eee2410d
Treat plausible but invalid keys (like C-BSpace) as literal like any
...
other unrecognised string passed to send-keys. Reported by Anthony
Sottile in GitHub issue 2049.
2020-01-13 07:51:54 +00:00
Thomas Adam
e9b1294331
Merge branch 'obsd-master'
2020-01-12 22:01:26 +00:00
nicm
193e637de0
The terminal type was never as much use as I expected so remove it in
...
favour of a couple of flags for the features used (DECSLRM and DECFRA).
Also rename the flag for no xenl to be more obvious while here.
2020-01-12 21:07:07 +00:00
Thomas Adam
566ab9aa28
Merge branch 'obsd-master'
2019-12-30 22:01:25 +00:00
nicm
206d878127
Do not let readonly clients limit the size, suggested by Max Barraclough
...
in GitHub issue 2042.
2019-12-30 21:24:55 +00:00
Thomas Adam
b931bbb319
Merge branch 'obsd-master'
2019-12-26 12:01:26 +00:00
nicm
817d199cbb
Add a number of new formats to inspect what sessions and clients a
...
window is present or active in. From Tyler Culp in GitHub issue 2034.
2019-12-26 11:04:58 +00:00
Thomas Adam
745233d6a1
Merge branch 'obsd-master'
2019-12-19 10:01:26 +00:00
nicm
1764f66b7d
When adding a list with multiple commands to the queue, the next item to
...
insert after needs to be the last one added, not the first. Reported by
Jason Kim in GitHub issue 2023.
2019-12-19 09:22:33 +00:00
Thomas Adam
52b6ca5706
Merge branch 'obsd-master'
2019-12-16 18:01:31 +00:00
nicm
1bdd4828bd
If /dev/fd/X is a symlink and realpath() expands symlinks, /dev/fd/X
...
ends up pointing to the wrong place before it is passed to the client.
The path is only used internally so there is no real need for
realpath(), remove it and move the get_path function to file.c where all
the callers are.
2019-12-16 16:39:03 +00:00
nicm
eaa58d28dc
Instead of using large buffers in imsgs, add the data or path onto the end.
2019-12-16 15:48:50 +00:00
Thomas Adam
7922f4ee7b
Merge branch 'obsd-master'
2019-12-12 14:33:47 +00:00
nicm
5134666702
Change source-file to use new file code which allows it to read from
...
stdin.
2019-12-12 12:49:36 +00:00
nicm
c284ebe0ad
Rewrite the code for reading and writing files. Now, if the client is
...
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-12-12 11:39:56 +00:00
Thomas Adam
5b2048fbb9
Merge branch 'obsd-master'
2019-12-10 16:01:25 +00:00
nicm
55eb3e4773
Make TMUX_CONF a list of files and expand leading $FOO or ~.
2019-12-10 14:22:15 +00:00
Thomas Adam
5f5f029e3b
Merge branch 'obsd-master'
2019-11-28 12:18:41 +00:00
nicm
bc5881c4d2
Long lines and spacing fixes.
2019-11-28 09:56:25 +00:00
nicm
2349b1dbef
Make a best effort to set xpixel and ypixel for each pane and add
...
formats for them.
2019-11-28 09:45:15 +00:00
nicm
067604bf8c
Store xpixel/ypixel from TIOCGWINSZ and add formats.
2019-11-28 09:05:34 +00:00
Thomas Adam
daa93b3fdc
Merge branch 'obsd-master'
2019-11-25 16:01:27 +00:00
nicm
1ebd8c1234
Add p format modifier for padding to width.
2019-11-25 15:04:15 +00:00
Thomas Adam
dbdff241b2
Merge branch 'obsd-master'
2019-11-15 12:01:27 +00:00
nicm
f3dc38dcae
Handle OSC 7 (a VTE extension) and put the result in a new format (pane_path).
2019-11-15 11:16:53 +00:00
Thomas Adam
b67fd8f472
Merge branch 'obsd-master'
2019-11-14 16:01:25 +00:00
nicm
16b7719418
Fix parsing of DA with only one argument in the response and add 65 for VT520.
2019-11-14 15:37:19 +00:00
Thomas Adam
b5de0a20d8
Merge branch 'obsd-master'
2019-10-23 10:01:27 +01:00
nicm
f7fb5df543
Use the existing code in format.c to add foramts for word and line at
...
cursor position in copy mode, from Anindya Mukherjee.
2019-10-23 07:42:05 +00:00
Thomas Adam
dd254b90d7
Merge branch 'obsd-master'
2019-09-23 18:01:24 +01:00
nicm
77deef733b
Use the correct size for new windows when window-size is latest,
...
reported by Vamsi Krishna Avula in GitHub issue 1917.
2019-09-23 15:41:11 +00:00
Thomas Adam
24ab1bc714
Merge branch 'obsd-master'
2019-09-19 12:01:30 +01:00
nicm
647887b794
Add a "latest" window-size option which tries to size windows based on
...
the most recently used client. From Tommie Gannert in GitHub issue 1869
based on earlier changes from me.
2019-09-19 09:02:30 +00:00
Thomas Adam
d346d692eb
Merge branch 'obsd-master'
2019-09-16 00:01:25 +01:00
nicm
63e07b245f
Add push-default and pop-default in styles to change the default colours
...
and attributes and use them to restore the previous behaviour of
window-status-style being the default for window-status-format in the
status line. From John Drouhard in GitHub issue 1912.
2019-09-15 21:42:57 +00:00
Thomas Adam
4fa1f961f3
Merge branch 'obsd-master'
2019-08-28 20:02:24 +01:00
nicm
df0334d3b3
The resize event was never deciding to actually resize the pane if there
...
was output in the pane faster than the timer would fire, so change how
it works to only defer the timer again if the pane was actually resized
within the last timer period. Reported by James Tai in GitHub issue
1880.
2019-08-28 07:34:32 +00:00
Thomas Adam
2db9a18362
Merge branch 'obsd-master'
2019-08-16 17:02:29 +01:00
nicm
37583f0a69
Add a flag to reverse sort in the various choose modes, from Benjamin
...
Poirier in GitHub issue 1875.
2019-08-16 11:49:12 +00:00
Thomas Adam
ed0f2831b4
Merge branch 'obsd-master'
2019-08-15 11:02:48 +01:00
nicm
0f243f0388
Add -Z flag to rotate-window, select-pane, swap-pane, switch-client to
...
preserve zoomed state. GitHub issue 1839.
2019-08-14 09:58:31 +00:00
Thomas Adam
9b3fefc435
Merge branch 'obsd-master'
2019-08-06 07:02:33 +01:00
nicm
45f4ff5485
Add support for the SD (scroll down) escape sequence, GitHub issue 1861.
2019-08-05 06:42:02 +00:00
Thomas Adam
a786a59176
Merge branch 'obsd-master'
2019-07-15 21:02:26 +01:00
nicm
6ceeceab7a
Make layout_fix_offsets take a window like layout_fix_panes.
2019-07-15 18:25:07 +00:00
Thomas Adam
9cbbdb90bf
Merge branch 'obsd-master'
2019-07-10 13:02:26 +01:00
nicm
f4d858e7a0
Add -F to refresh-client to specify flags for control clients - one flag
...
at the moment, no-output which turns off forwarding pane output. From
Thomas Adam. GitHub issue 1834.
2019-07-10 11:20:10 +00:00
Thomas Adam
98ef369b27
Merge branch 'obsd-master'
2019-07-09 17:02:26 +01:00
nicm
fc2016dbb6
Add a -H flag to send-keys to send literal keys given as hex numbers
...
(needed for control clients to send mouse sequences). Also add some
format flags for UTF-8 and SGR mouse mode. Requested by Bradley Smith in
GitHub issues 1832 and 1833.
2019-07-09 14:03:12 +00:00
Thomas Adam
3a4cf62aa9
Merge branch 'obsd-master'
2019-07-06 23:02:26 +01:00
nicm
3635b3cd6c
Correctly clear underscore colour in grid_get_cell1, also fix struct
...
grid_cell to avoid padding. Fixes increased memory use reported by Suraj
N Kurapati.
2019-07-06 20:37:29 +00:00
Thomas Adam
b9fbf02ad5
Merge branch 'obsd-master'
2019-07-01 09:02:25 +01:00
nicm
2da050413c
Add a "fill" style attribute to clear the entire format drawing area in
...
a colour, GitHub issue 1815.
2019-07-01 06:56:00 +00:00
Thomas Adam
abcd4bd246
Merge branch 'obsd-master'
2019-06-30 21:02:26 +01:00
nicm
cf30e0f935
Do not double free window if pane fails to start.
2019-06-30 19:21:53 +00:00
Thomas Adam
e483ce138f
Merge branch 'obsd-master'
2019-06-27 17:02:26 +01:00
nicm
dae2868d12
Add support for underscore colours with Setulc capability, mostly from
...
Kai Moschcau.
2019-06-27 15:17:41 +00:00
Thomas Adam
f797ac9ff6
Merge branch 'obsd-master'
2019-06-26 15:02:26 +01:00
nicm
d83f356218
Add #define for the pane status line option position numbers.
2019-06-26 13:03:47 +00:00
Thomas Adam
f8ad72b2ee
Merge branch 'obsd-master'
2019-06-20 15:02:26 +01:00
nicm
5f92f92908
Add a per-pane option set. Pane options inherit from window options (so
...
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-06-20 11:59:59 +00:00
Thomas Adam
adca856806
Merge branch 'obsd-master'
2019-06-20 11:02:28 +01:00
nicm
c1ede507d9
Add a helper function to work out option table from name.
2019-06-20 07:41:29 +00:00
Thomas Adam
ee9bc355f5
Merge branch 'obsd-master'
2019-06-18 13:02:28 +01:00
nicm
9272fe36e2
Add a cmdq_continue function rather than twiddling the flag directly.
2019-06-18 11:08:42 +00:00
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