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
Nicholas Marriott
90dc05191c
Merge branch 'master' into sixel
2020-02-20 20:37:32 +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
Nicholas Marriott
3a741aacd1
Merge branch 'sixel-passthrough' into sixel
2020-01-30 09:11:01 +00:00
Nicholas Marriott
92ed9fc0b2
Merge branch 'master' into sixel-passthrough
2020-01-30 09:03:38 +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
Nicholas Marriott
40ad01073d
Merge branch 'master' into sixel
2020-01-12 20:03:41 +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
Nicholas Marriott
5bb075487f
Merge branch 'master' into sixel-passthrough
2019-12-18 20:24:42 +00:00
Nicholas Marriott
dd3c72f132
Merge branch 'master' into sixel
2019-12-18 20:24:26 +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
Nicholas Marriott
1a0e5fe933
Merge branch 'master' into sixel
2019-12-10 16:34:11 +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
Nicholas Marriott
b642eac450
Redraw and scroll images and part of invalidating them.
2019-12-05 09:11:24 +00:00
Nicholas Marriott
86c5098a88
Add helpers to scroll image up and a flag to copy the colours.
2019-12-05 08:32:25 +00:00
Nicholas Marriott
49f2f0a8f1
Store images, currently at most 10.
2019-12-05 00:02:55 +00:00
Nicholas Marriott
a5b1e20941
Add a flag to disable blocking while sending a SIXEL image (turned off when the
...
buffer hits 0 size).
2019-11-30 09:31:29 +00:00
Nicholas Marriott
968382aa6a
Pass through SIXEL DCS sequences (treat similarly to the passthrough escape
...
sequence) if it appears the terminal outside supports them.
2019-11-30 09:30:21 +00:00
Nicholas Marriott
b1904c9b8d
Store SIXELs as a box for the moment.
2019-11-30 09:17:18 +00:00
Nicholas Marriott
d2e3f3c1cc
Add a flag to disable blocking while sending a SIXEL image (turned off when the
...
buffer hits 0 size).
2019-11-28 14:20:22 +00:00
Nicholas Marriott
e01df67ca1
Crop and scale images as needed when drawing them.
2019-11-28 13:21:40 +00:00
Nicholas Marriott
e24acc0b5c
Simple SIXEL parse and modify API.
2019-11-28 12:43:00 +00:00
Nicholas Marriott
b34111b3da
Pass through SIXEL DCS sequences (treat similarly to the passthrough escape
...
sequence) if it appears the terminal outside supports them.
2019-11-28 12:35:18 +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
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
Thomas Adam
a1009e7bd3
Merge branch 'obsd-master'
2019-03-07 20:02:41 +00:00
nicm
7f093fcddc
Make adding mode formats a function pointer as well.
2019-03-07 19:01:21 +00:00
Thomas Adam
fa8294436c
Merge branch 'obsd-master'
2019-02-16 14:02:37 +00:00
nicm
82f0c859a2
Use starting client cwd in config file, GitHub issue 1606.
2019-02-16 11:42:08 +00:00
Thomas Adam
c9d482ab48
Merge branch 'obsd-master'
2018-12-18 14:02:40 +00:00
nicm
bde0224deb
Pass window into mode functions.
2018-12-18 13:20:44 +00:00
Thomas Adam
2977317243
Merge branch 'obsd-master'
2018-11-22 12:02:38 +00:00
nicm
3a7b9d5735
Do not use PWD unless it actually matches the real working directory.
2018-11-22 10:36:40 +00:00
Thomas Adam
e771f10dc6
Merge branch 'obsd-master'
2018-10-25 17:02:42 +01:00
nicm
fc41bf46ac
Add a "terminal" colour which can be used instead of "default" in style
...
options for the terminal default colour, bypassing any inheritance from
other options. Prompted by a discussion with abieber@.
2018-10-25 15:13:38 +00:00
nicm
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
nicm
bc0e527f32
Support for extended underline styles on terminals which offer them,
...
enabled by adding the Smulx capability with terminal-overrides (add
something like ',vte*:Smulx=\E[4\:%p1%dm'). GitHub issue 1492.
2018-10-18 07:57:57 +00:00
Nicholas Marriott
4b9e76aaaa
Support for extended underline styles, enabled by adding the Smulx
...
capability with terminal-overrides (add something like
'vte*:Smulx=\E[4\:%p1%dm'). GitHub issue 1492.
2018-10-08 13:21:37 +01:00
Thomas Adam
c44bb2df17
Merge branch 'obsd-master'
2018-10-03 17:02:38 +01:00
nicm
f7c85f3ed8
Do not move the cursor when the mouse wheel is used, GitHub issue 1493.
2018-10-03 15:27:55 +00:00
Nicholas Marriott
04c6db2d0f
Revert "Add a B flag to mark windows bigger than the client."
...
This reverts commit b4e74f4310
.
2018-09-26 16:42:29 +01:00
Thomas Adam
7cf00d6b72
Merge branch 'obsd-master'
2018-09-25 17:02:41 +01:00
nicm
7d59f82cf9
Allow panes to be 1 line or column by redrawing instead of using the
...
scroll region, from Soeren Tempel in GitHub issue 1487.
2018-09-25 14:27:20 +00:00
Nicholas Marriott
b4e74f4310
Add a B flag to mark windows bigger than the client.
2018-09-25 09:54:47 +01:00
Nicholas Marriott
26d73a7736
Ignore clients that are suspended or exiting.
2018-09-25 09:48:48 +01:00
Nicholas Marriott
a618271e12
Bring back window_pane_visible to stop input going to panes which are
...
hidden by zoom.
2018-09-10 07:19:17 +01:00
Thomas Adam
b29028a914
Merge branch 'obsd-master'
2018-08-29 13:02:38 +01:00
nicm
f57aa143c1
Keep any text killed in the command prompt with C-w and yank it with
...
C-y, only use the top buffer if no text has previously been killed. This
and previous change promped by discussion with kn@.
2018-08-29 09:50:32 +00:00
Nicholas Marriott
7fbd2f5498
Do not draw cells which have no cell (zoomed and they are not active).
2018-08-25 13:55:50 +01:00
Thomas Adam
da5d563375
Merge branch 'obsd-master'
2018-08-23 19:02:40 +01:00
nicm
bceccc6b63
Move job struct into job.c.
2018-08-23 15:45:05 +00:00
Thomas Adam
5b93f0fcd3
Merge branch 'obsd-master'
2018-08-22 23:02:43 +01:00
nicm
55db3623bf
Add StatusLeft and StatusRight mouse key modifiers for the left and
...
right parts of the status line.
2018-08-22 20:06:14 +00:00
Nicholas Marriott
bfc9fb4b3b
Add flags to refresh-client (-U -D -L -R and -c) to pan a window that
...
is larger than the client manually. Bound to S-Up, S-Down, S-Left,
S-Right and Delete manually.
Also add aliases for keys DC = Delete, IC = Insert, and make
refresh-client -C accept XxY as well as X,Y to match default-size.
2018-08-21 09:27:19 +01:00
Thomas Adam
f36d2ecb07
Merge branch 'obsd-master'
2018-08-20 23:02:38 +01:00
nicm
98a478ceb3
Move offset of window list into status struct.
2018-08-20 20:41:58 +00:00
Nicholas Marriott
9f39470b38
Only screen-redraw.c needs to adjust for message or prompt when the
...
status line is off, get rid of tty_status_lines and just pass the
client into status_line_size so it can check the CLIENT_STATUSOFF flag
as well.
2018-08-20 20:05:34 +01:00
Nicholas Marriott
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
Thomas Adam
bf03197e18
Merge branch 'obsd-master'
2018-08-19 21:40:26 +01:00
nicm
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
Thomas Adam
9ecf657703
Merge branch 'obsd-master'
2018-08-19 19:02:40 +01:00
nicm
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
Thomas Adam
e811132b05
Merge branch 'obsd-master'
2018-08-18 23:02:40 +01:00
nicm
bd2896b65e
SESSION_UNATTACHED flag is no longer necessary now we have an attached
...
count instead.
2018-08-18 20:08:52 +00:00
Thomas Adam
522d751eee
Merge branch 'obsd-master'
2018-08-18 19:02:39 +01:00
nicm
3bc08b0dc0
Some tidying and helper functions.
2018-08-18 16:14:03 +00:00
Thomas Adam
a368548645
Merge branch 'obsd-master'
2018-08-10 11:41:07 +01:00
nicm
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
Thomas Adam
33f9b316a3
Merge branch 'obsd-master'
2018-08-02 21:02:25 +01:00
nicm
d6ff630498
Log command arguments.
2018-08-02 18:35:21 +00:00
Thomas Adam
eceaa9a493
Merge branch 'obsd-master'
2018-08-02 15:02:25 +01:00
Thomas Adam
2e19a5ecb9
Merge branch 'obsd-master'
2018-08-02 13:02:26 +01:00
nicm
fb1f0fee5a
session_groups can be static also.
2018-08-02 11:56:12 +00:00
nicm
f12b857415
Minor tidying.
2018-08-02 11:18:34 +00:00
Thomas Adam
79bdca4638
Merge branch 'obsd-master'
2018-08-02 11:02:25 +01:00
nicm
21f8ac2766
Make display-panes block the client until a pane is chosen or it times out.
2018-08-02 07:55:16 +00:00
Thomas Adam
400b807d75
Merge branch 'obsd-master'
2018-07-31 17:02:31 +01:00
nicm
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
Thomas Adam
ed6327c87b
Merge branch 'obsd-master'
2018-07-30 13:02:25 +01:00
nicm
b21a710de7
Remove a leftover unused struct.
2018-07-30 11:24:55 +00:00
Thomas Adam
4f04b2094c
Merge branch 'obsd-master'
2018-07-16 11:02:25 +01:00
nicm
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
Thomas Adam
20154f391e
Merge branch 'obsd-master'
2018-07-04 15:02:25 +01:00
nicm
cc743dc296
Add set-hook -R to run a hook immediately (useful to set multiple hooks
...
to the same thing).
2018-07-04 12:30:52 +00:00
Thomas Adam
850c26dd46
Merge branch 'obsd-master'
2018-07-04 13:02:25 +01:00
nicm
2fae6a5761
Add accessors for grid linedata member, for some future work. From Dan
...
Aloni.
2018-07-04 09:44:07 +00:00
Thomas Adam
4581240ced
Merge branch 'obsd-master'
2018-06-08 23:02:25 +01:00
nicm
f6bad7efd7
Instead of working out which pane to resize with the mouse by walking
...
the panes list, look through the layout cells for the nearest border and
resize that cell. From Dan Aloni in GitHub issue 1374.
2018-06-08 20:54:22 +00:00
Thomas Adam
7448b38327
Merge branch 'obsd-master'
2018-05-24 13:02:29 +01:00
nicm
b9a6162d2f
Make server_client_get_cwd used (almost) everywhere we need to work out
...
the cwd, and do not fall back to "." as it is pretty useless. GitHub
issue 1331.
2018-05-24 09:42:49 +00:00
Thomas Adam
0e1b339c10
Merge branch 'obsd-master'
2018-04-18 17:02:28 +01:00
nicm
3dceddd70e
Change how display-message uses the client. Originally it was only
...
intended as the target client where the message should be displayed but
at some point (perhaps when -p was added), it was used for format
expansion too. This means it can get a bit weird where you have client
formats expanding for a client with a different current session than the
target session.
However, it is nice that display-message can be used to show information
about a specific client. So change so that the -c client will be used if
the session matches the target session (-t or default), otherwise the
best client will be chosen.
2018-04-18 14:35:37 +00:00
Thomas Adam
1bd66b65a3
Merge branch 'obsd-master'
2018-04-10 13:02:28 +01:00
nicm
c6975b3bb4
Add x and X to choose-tree (with a confirmation prompt) to kill an
...
item. Suggested by Matt Zagrabelny.
2018-04-10 10:48:44 +00:00
Thomas Adam
0ca78ee51f
Merge branch 'obsd-master'
2018-03-16 16:02:28 +00:00
nicm
f87d80737e
Insert full size panes at the right position, from KOIE Hidetaka in
...
GitHub issue 1284.
2018-03-16 15:15:39 +00:00
Thomas Adam
9fd9952752
Merge branch 'obsd-master'
2018-03-08 10:02:26 +00:00
nicm
19f3a5c612
Add a missing client-detached hook when the server shuts down, and do
...
not exit until jobs started from run-shell/if-shell have finished (add a
job flags member and a flag to indicate other jobs). GitHub issue 1245.
2018-03-08 08:09:10 +00:00
Thomas Adam
0ca9664ecf
Merge branch 'obsd-master'
2018-02-28 10:02:29 +00:00
nicm
508e2f0b3a
Add -Z flag to choose-tree, choose-client, choose-buffer to
...
automatically zoom the pane when the mode is entered and unzoom when it
exits, assuming the pane is not already zoomed. Add -Z to the default
key bindings.
2018-02-28 08:55:44 +00:00
Thomas Adam
968296bb07
Merge branch 'obsd-master'
2018-02-16 12:02:29 +00:00
nicm
320abba341
Reflowing the grid in-place involved way too much memmove() for a big
...
performance cost with a large history. Instead change back to using a
second grid and copying modified lines over which is much faster (this
doesn't revert to the old code however which didn't support UTF-8
properly). GitHub issue 1249.
2018-02-16 09:51:41 +00:00
Thomas Adam
88711e885e
Merge branch 'obsd-master'
2018-02-05 10:02:31 +00:00
nicm
7f4513ec34
Add struct status_line to hold status line members of struct client, not
...
used yet but will be soon. From Thomas Adam.
2018-02-05 08:21:54 +00:00
Thomas Adam
24abfb72eb
Merge branch 'obsd-master'
2018-02-04 12:02:24 +00:00
nicm
fe7a871a23
Upstream ncurses has introduced terminfo capabilities to specify RGB
...
colour ("true" or "direct" colour). These consist of new entries (such
as "xterm-direct") which have a different setaf/setab implementation,
colors and pairs set to 0x1000000 and 0x10000, and a new RGB flag.
The setaf/setab definitions seem to be geared towards what ncurses (or
emacs maybe) needs, in that the new versions do only ANSI and RGB
colours (they can't be used for the 256 colour palette); they rely on
the silly ISO colon-separated version of SGR; and they use a weird
multiplication scheme so they still only need one argument. The higher
values of colors and pairs require a recent ncurses to parse.
tmux can use the RGB flag to detect RGB colour support (keeping the old
Tc extension for backwards compatibility for now). However, as we still
want to send 256 colour information unchanged when possible, the new
setaf/setab are awkward. So when RGB is present, reserve setaf/setab
only for ANSI colours and use the escape sequences directly for 256 and
RGB colours. (To my knowledge no recent terminal uses unusual escape
sequences for these in any case.)
2018-02-04 10:10:39 +00:00
Thomas Adam
d9e740f86d
Merge branch 'obsd-master'
2018-01-18 08:02:30 +00:00
nicm
c9037fde1c
Remove unused hooks_run function, from Thomas Adam.
2018-01-18 07:10:53 +00:00
Thomas Adam
74ecc866cf
Merge branch 'obsd-master'
2017-12-19 16:01:20 +00:00
nicm
b20a00f93e
Report better error from server when socket create fails, GitHub issue
...
1201.
2017-12-19 15:00:39 +00:00
Thomas Adam
102df8dc80
Merge branch 'obsd-master'
2017-11-15 22:01:22 +00:00
Thomas Adam
e755ca37b3
Merge branch 'obsd-master'
2017-11-15 20:01:22 +00:00
nicm
3b649d2fcd
Add a common function for spreading out cells and use it for the two
...
even layouts and to add a -E flag to select-layout to spread out cells
evenly without changing parent cells.
2017-11-15 19:59:27 +00:00
nicm
533a5719c5
Completely rewrite the reflow code to correctly handle double width
...
characters (previously they were not accounted for).
2017-11-15 19:21:24 +00:00
Thomas Adam
6f3b6c8d92
Merge branch 'obsd-master'
2017-11-03 18:01:21 +00:00
nicm
50a5f84cb4
Support mouse on preview in tree mode.
2017-11-03 17:02:33 +00:00
Thomas Adam
e1606172dd
Merge branch 'obsd-master'
2017-11-03 00:01:20 +00:00
Thomas Adam
c9ec33d0d0
Merge branch 'obsd-master'
2017-11-02 22:01:20 +00:00
nicm
43264dfbf4
Make the mode draw function use the parent screen directly rather than
...
its own to avoid copying twice.
2017-11-02 22:00:42 +00:00
nicm
8d37f699ad
Add a "fast" version of screen_write_copy for tree mode that doesn't do
...
all the checks and selection and marking stuff needed for copy mode.
2017-11-02 21:29:17 +00:00
Thomas Adam
8c29f7413b
Merge branch 'obsd-master'
2017-11-02 20:01:26 +00:00
nicm
c1f62f1fde
Only show the first member of session groups in tree mode (-G flag
...
disables).
2017-11-02 18:27:35 +00:00
Thomas Adam
6b83ca0077
Merge branch 'obsd-master'
2017-10-25 14:01:26 +01:00
nicm
8dd776106d
Add P key to paste tagged in buffer mode, and trim some code that should
...
no longer be necessary.
2017-10-25 11:26:11 +00:00
Thomas Adam
31901e3c07
Merge branch 'obsd-master'
...
Conflicts:
server-fn.c
2017-10-20 12:36:29 +01:00
nicm
2f6935a630
Infrastructure for drawing status lines of more than one line in height,
...
still only one is allowed but this lets tmux draw bigger ones.
2017-10-16 19:30:53 +00:00
nicm
a5fd5782f8
Show exit status and time in the remain-on-exit pane text, mostly from
...
Timo Boettcher in GitHub issue 1103.
2017-10-12 11:32:27 +00:00
Thomas Adam
2be01ab4ec
Merge branch 'obsd-master'
2017-10-06 13:33:32 +01:00
nicm
88517ceebb
Add support for the xterm(1) title stack, from Brad Town, GitHub issue
...
1075.
2017-10-05 13:29:18 +00:00
Thomas Adam
f81e87f1e2
Merge branch 'obsd-master'
2017-08-30 20:01:11 +01:00
nicm
6abfd9b8ff
Instead of overloading the line clear function to mean free if
...
background is default (8), introduce an explicit free function and use
it where a free alone is needed. Likewise, use memmove directly rather
than grid_move_lines where it makes sense. Based on a memory leak fix by
Dan Aloni in GitHub issue 1051.
2017-08-30 18:13:47 +00:00
Thomas Adam
54c5070767
Merge branch 'obsd-master'
2017-08-30 12:01:10 +01:00
nicm
17cf1b21c6
Pass flags into cmd_find_from_* to fix prefer-unattached, reported by
...
Thomas Sattler.
2017-08-30 10:33:57 +00:00
Thomas Adam
7d3bf6453e
Merge branch 'obsd-master'
2017-08-28 14:01:17 +01:00
nicm
fe4467ad2b
Do not forbid targets to specify non-visible panes - the checks for
...
visibility are better where the target is used. GitHub issue 1049.
2017-08-28 12:36:38 +00:00
Thomas Adam
e65cc09276
Merge branch 'obsd-master'
2017-08-27 10:01:15 +01:00
nicm
25cf126de8
Use kind and kri for S-Up/Down as well as kUP and kDN.
2017-08-27 08:33:55 +00:00
Thomas Adam
2103a09430
Merge branch 'obsd-master'
2017-08-16 14:01:15 +01:00
nicm
c6a8ad23a1
Add -d flag to display-panes to specify timeout, and make 0 mean no
...
timeout. From Laurens Post.
2017-08-16 12:12:54 +00:00
nicm
c1ec28a34b
Rename BELL_* values to ALERT_* now they are used by more than bells,
...
based on a diff from Brad Town.
2017-08-16 11:46:08 +00:00
Thomas Adam
e7b1e05bbd
Merge branch 'obsd-master'
2017-08-02 14:01:10 +01:00
nicm
6f9b9655d7
Add selection_present format so commands in copy mode can use it, GitHub
...
issue 1028.
2017-08-02 11:10:48 +00:00
Thomas Adam
58744de3eb
Merge branch 'obsd-master'
2017-07-26 18:01:16 +01:00
nicm
76887b1d27
Make bell, activity and silence alerting more consistent:
...
- remove the bell-on-alert option;
- add activity-action and silence-action options with the same possible
values as the existing bell-action;
- add "both" value for the visual-bell, visual-activity and
visual-silence options to trigger both a bell and a message.
This means all three work the same way. Based on changes from Yvain Thonnart.
2017-07-26 16:14:08 +00:00
Thomas Adam
acbbc93501
Merge branch 'obsd-master'
2017-07-14 22:01:10 +01:00
nicm
932f6cfbfc
Because ignore SIGCHLD early, letting signal_del restore it doesn't work
...
correctly, so set it explicitly back to default (and the others for good
measure).
2017-07-14 18:49:07 +00:00
Thomas Adam
1076a2e26c
Merge branch 'obsd-master'
...
Conflicts:
cmd-pipe-pane.c
proc.c
tmux.c
window.c
2017-07-12 13:43:08 +01:00
nicm
0453ad0146
Move signal code into proc.c.
2017-07-12 09:24:17 +00:00
nicm
ed3cfaafb2
Make shell_command a global like other stuff rather than making it an
...
exception and using callback argument.
2017-07-12 09:21:25 +00:00
nicm
d0d42dc4cb
proc_send_s now seems unnecessary.
2017-07-12 09:07:52 +00:00
Thomas Adam
fbbf5a108b
Merge branch 'obsd-master'
2017-07-10 00:01:15 +01:00
nicm
58b796608f
Some extra logging to show why tmux might exit.
2017-07-09 22:33:09 +00:00
Thomas Adam
5e98770936
Merge branch 'obsd-master'
2017-07-03 16:01:14 +01:00
nicm
6ee0afb579
Change previous to not wait for both process exit and pty close -
...
instead if there is a pipe-pane active, do not exit until all data is
read (including any libevent hasn't seen yet). Fixes problem reported by
Theo Buehler and still seems to solve the original issue.
2017-07-03 12:38:50 +00:00
Thomas Adam
4e01036cb6
Merge branch 'obsd-master'
2017-07-03 10:01:14 +01:00
nicm
28687f2d55
Do not close panes until process has exited and any outstanding data
...
has been written to the pipe-pane event if there is one. GitHub issue 991.
2017-07-03 08:16:03 +00:00