Thomas Adam
4909a70174
Merge branch 'obsd-master'
2015-12-11 13:24:45 +00:00
nicm
01831da5f5
Add cmdq as an argument to format_create and add a format for the
...
command name (will also be used for more later).
2015-12-11 12:27:36 +00:00
Thomas Adam
af8134a6ff
Merge branch 'obsd-master'
2015-12-08 10:01:16 +00:00
nicm
e0f26dcda3
Remove format_create_flags and just pass flags to format_create.
2015-12-08 08:34:18 +00:00
nicm
8f671d3eef
Spacing nits.
2015-12-08 08:14:04 +00:00
Thomas Adam
5862f59ed7
Conflicts:
...
Makefile
2015-12-08 07:11:09 +00:00
nicm
d2fb0efcd1
Add hooks infrastructure, basic commands (set-hook, show-hooks) and a
...
couple of not very useful client hooks. This will eventually let
commands be run at various points and on notifications. Joint work with
Thomas Adam.
2015-12-08 01:10:31 +00:00
Thomas Adam
bac8c72381
Merge branch 'obsd-master'
2015-12-07 10:01:09 +00:00
nicm
b9563340b7
Fix bell indicators across detach, reported by Torbjorn Lonnemark, diff
...
from Thomas Adam.
2015-12-07 09:47:41 +00:00
Thomas Adam
9fe8b28746
Merge branch 'obsd-master'
2015-11-27 15:41:28 +00:00
nicm
6a2ca34216
Do not set a limit on the length of commands when printing them.
2015-11-27 15:06:43 +00:00
Thomas Adam
890d8da2e3
Merge branch 'obsd-master'
...
Conflicts:
log.c
proc.c
tmux.c
2015-11-25 16:37:30 +00:00
nicm
62d3af17f9
Make environ_set va_args and use it to tidy up some calls. Also add a
...
missing word in manpage (from jmc).
2015-11-24 23:46:15 +00:00
nicm
3ff46b2e43
Shell command from -c doesn't have to be global, pass it as an argument.
2015-11-24 23:22:51 +00:00
nicm
c913fb99b6
Tidy the code that works out the socket path, and just use the full path
...
in the global socket_path rather than copying it.
2015-11-24 22:27:22 +00:00
nicm
1e2df2d464
Remove the -I part of show-messages which isn't really that useful; the
...
server start time can now be accessed with a new start_time format (use:
tmux display -p '#{t:start_time}')
2015-11-24 21:52:06 +00:00
nicm
9cccb8c115
Make the log stuff a bit tidier with some helper functions.
2015-11-24 21:19:46 +00:00
Thomas Adam
534f9e3ab1
Merge branch 'obsd-master'
2015-11-24 10:01:13 +00:00
nicm
b32ce34cf2
Don't allow options in table without scope set.
2015-11-24 09:34:55 +00:00
Thomas Adam
3f47ff6ecd
Merge branch 'obsd-master'
2015-11-24 00:01:16 +00:00
nicm
2adf3f42ee
Partly revert previous, it is harmless to keep support for UTF-8 mouse
...
mode inside tmux, just no longer support it for tmux itself.
2015-11-23 23:47:57 +00:00
Thomas Adam
b642b3c8e3
Merge branch 'obsd-master'
2015-11-23 21:21:12 +00:00
nicm
32e510bd70
Remove support for the UTF-8 mouse extension. This was a briefly used,
...
poor idea that was fairly quickly replaced by SGR mouse input (which is
now widespread). It is impossible to tell the difference between UTF-8
and non-UTF-8 mouse input; since the mouse-utf8 option was removed tmux
has not handled it correctly in any case; and it is ridiculous to have
three different forms of mouse input.
2015-11-23 20:53:09 +00:00
Thomas Adam
78a00c845c
Merge branch 'obsd-master'
...
Conflicts:
tmux.h
2015-11-21 14:24:33 +00:00
nicm
fce56c56ef
Instead of separate tables for different types of options, give each
...
option a scope type (server, session, window) in one table.
2015-11-20 12:01:19 +00:00
nicm
374e273df5
Only assume pasting with at least two characters, reduces problems for
...
people who can type ^B c very fast, or who are using tmux inside
something else that buffers.
2015-11-19 22:46:46 +00:00
Thomas Adam
7fe8edc396
Merge branch 'obsd-master'
2015-11-18 16:01:23 +00:00
nicm
577c0e3e5a
Use __unused rather than rolling our own.
2015-11-18 14:27:44 +00:00
Thomas Adam
8fa822b521
Merge branch 'obsd-master'
2015-11-18 14:01:12 +00:00
nicm
64571368dc
Sync the entire xmalloc.[ch] with the other users, but with the addition
...
of xrealloc, xvasprintf, xvsnprintf.
2015-11-18 13:06:54 +00:00
Thomas Adam
1686a15fb6
Merge branch 'obsd-master'
2015-11-16 00:01:10 +00:00
nicm
661d0dfac9
Make key_code unsigned long long not uint64_t which is more portable for
...
printf formats, and move UTF8_SIZE define down to near the rest of the
UTF-8 bits.
2015-11-15 22:50:38 +00:00
Thomas Adam
f12d7f0d4b
Merge branch 'obsd-master'
2015-11-14 12:01:09 +00:00
nicm
205d15e82d
All these return values from utf8_* are confusing, use an enum.
2015-11-14 11:45:43 +00:00
Thomas Adam
7b4b78b419
Merge branch 'obsd-master'
2015-11-14 11:38:52 +00:00
Thomas Adam
7b749eff35
Merge branch 'obsd-master'
...
Conflicts:
server.c
tmux.c
2015-11-14 11:38:30 +00:00
nicm
64333e3ef8
Be more strict about invalid UTF-8.
2015-11-14 10:56:31 +00:00
nicm
c56b81a2ce
Push stdout and stderr to clients more aggressively, and add an event to
...
continue if the send fails.
2015-11-14 09:41:06 +00:00
Thomas Adam
3df4959f51
Merge branch 'obsd-master'
...
Conflicts:
Makefile
2015-11-13 10:42:45 +00:00
nicm
c5689a5a40
Long overdue change to the way we store cells in the grid: now, instead
...
of storing a full grid_cell with UTF-8 data and everything, store a new
type grid_cell_entry. This can either be the cell itself (for ASCII
cells), or an offset into an extended array (per line) for UTF-8
data.
This avoid a large (8 byte) overhead on non-UTF-8 cells (by far the
majority for most users) without the complexity of the shadow array we
had before. Grid memory without any UTF-8 is about half.
The disadvantage that cells can no longer be modified in place and need
to be copied out of the grid and back but it turned out to be lot less
complicated than I expected.
2015-11-13 08:09:28 +00:00
Thomas Adam
4f88344df3
Merge branch 'obsd-master'
2015-11-12 14:01:14 +00:00
nicm
a209ea3953
Add utf8_padcstr and use it to align columns in list-keys.
2015-11-12 12:43:36 +00:00
nicm
d6daf37df4
Tidy utf8.c a little: build table on first use, and make utf8_width take
...
a u_int rather than splitting and then combining again in utf8_split.
2015-11-12 12:19:57 +00:00
Thomas Adam
5f483499f3
Merge branch 'obsd-master'
2015-11-12 12:01:17 +00:00
nicm
c41673f3fa
If we know the terminal outside tmux is not UTF-8, replace UTF-8 in
...
error messages and whatnot with underscores the same as we do when we
draw UTF-8 characters as part of the screen.
2015-11-12 11:10:50 +00:00
nicm
1b86f520ea
Nuke the utf8 and status-utf8 options and make tmux only a UTF-8
...
terminal. We still support non-UTF-8 terminals outside tmux, but inside
it is always UTF-8 (as when the utf8 and status-utf8 options were on).
2015-11-12 11:09:11 +00:00
nicm
69e0b8326a
Support UTF-8 key bindings by expanding the key type from int to
...
uint64_t and converting UTF-8 to Unicode on input and the reverse on
output. (This allows key bindings, there are still omissions - the
largest being that the various prompts do not accept UTF-8.)
2015-11-12 11:05:34 +00:00
Thomas Adam
c975de2e07
Merge branch 'obsd-master'
...
Conflicts:
server.c
2015-10-31 23:56:35 +00:00
nicm
abb4e9e2fa
The output log is only useful once and it means creating a file, so open
...
it once at startup instead of in every call to tty_open.
2015-10-31 13:12:03 +00:00
Thomas Adam
17f6c3be8e
Merge branch 'obsd-master'
2015-10-31 10:01:12 +00:00
nicm
01defc9f49
Because pledge(2) does not allow us to pass directory file descriptors
...
around, we can't use file descriptors for the working directory because
we will be unable to pass it to a privileged process to tell it where to
read or write files or spawn children. So move tmux back to using
strings for the current working directory. We try to check it exists
with access() when it is set but ultimately fall back to ~ if it fails
at time of use (or / if that fails too).
2015-10-31 08:13:58 +00:00
Thomas Adam
a5e4d3a2d8
Merge branch 'obsd-master'
2015-10-28 12:01:11 +00:00
nicm
bf9c933cae
Like options, move the environ struct into environ.c.
2015-10-28 09:51:55 +00:00
Thomas Adam
da1f6fc2c8
Merge branch 'obsd-master'
...
Conflicts:
Makefile
client.c
server-client.c
server.c
tmux.c
tmux.h
2015-10-27 23:27:26 +00:00
nicm
44657bf932
Move struct options into options.c.
2015-10-27 15:58:42 +00:00
nicm
07b0ea03c3
Break the common process set up, event loop and imsg dispatch code
...
between server and client out into a separate internal API. This will
make it easier to add another process.
2015-10-27 13:23:24 +00:00
Thomas Adam
ca29903c82
Merge branch 'obsd-master'
2015-10-26 00:01:10 +00:00
nicm
e65306d8e7
Extend the modifiers allowed before formats: as well as the existing
...
#{=10:...} length limit, add #{t:...} to convert a time_t format to a
string, #{b:...} for basename and #{d:...} for dirname. Remove all the
foo_string time formats as they can now be replaced by "t:", for example
#{window_activity_string} becomes #{t:window_activity}.
2015-10-25 22:29:17 +00:00
Thomas Adam
4acc8d0ff5
Merge branch 'obsd-master'
...
Conflicts:
cmd-find.c
2015-10-25 09:21:37 +00:00
nicm
14da999408
Format for scroll position, from Jorge Morante.
2015-10-23 16:02:21 +00:00
Thomas Adam
bbdc08780c
Merge branch 'obsd-master'
2015-10-18 22:01:08 +01:00
nicm
174a2ad731
Pass current directory as a string rather than a file descriptor because
...
pledge doesn't let us pass directory file descriptors.
2015-10-18 20:42:42 +00:00
Thomas Adam
20c3adca41
Merge branch 'obsd-master'
2015-09-25 18:01:09 +01:00
nicm
28f23f18e9
Free the history when it is cleared, based on a diff from Carlo Cannas.
2015-09-25 15:53:07 +00:00
Thomas Adam
a3bce7a322
Merge branch 'obsd-master'
2015-09-17 00:01:08 +01:00
nicm
a4b4b29987
Rename cmd_q dead flag to a general flags bitmask (will be more flags later).
2015-09-16 22:24:54 +00:00
Thomas Adam
4afe26fa82
Merge branch 'obsd-master'
2015-09-14 14:01:09 +01:00
nicm
8da6de3e66
Style nit, int for flags not u_int.
2015-09-14 11:57:22 +00:00
Thomas Adam
74b958ecbe
Merge branch 'obsd-master'
...
Conflicts:
Makefile
2015-09-14 12:42:19 +01:00
nicm
af16ce6ad9
When the active pane changes, redraw panes if the style has
...
changed. From Cam Hutchison.
2015-09-14 11:34:50 +00:00
nicm
16efa84838
Make refresh-client force update of jobs, from Sina Siadat.
2015-09-14 10:25:52 +00:00
nicm
901c2eb20a
Add copy-mode -e to exit copy mode when scrolling off the bottom, useful
...
for quick view of history, from Cam Hutchison.
2015-09-13 13:31:40 +00:00
nicm
a3de5dbab1
Merge delete-buffer into cmd-set-buffer.c and change the paste buffer
...
API so it has one paste_free() rather than free_top and free_name
(everywhere that uses it already has the right pointer).
2015-09-11 14:41:50 +00:00
Nicholas Marriott
66c4ed98d6
Fix bad merge.
2015-09-10 14:59:16 +01:00
Thomas Adam
1fd756066c
Merge branch 'obsd-master'
2015-09-10 12:01:08 +01:00
nicm
cfabe30bec
Add session_last_attached time and format, from Sina Siadat.
2015-09-10 08:58:14 +00:00
Thomas Adam
76688d2040
Merge branch 'obsd-master'
...
Conflicts:
cfg.c
tmux.c
2015-09-06 20:47:50 +01:00
nicm
38e3baab2a
A one line helper function is a little silly.
2015-09-02 17:43:25 +00:00
nicm
8121127606
We no longer need the terminal service class, so don't bother asking for it.
2015-09-02 17:37:54 +00:00
nicm
69a2d46ee5
Remove dead_clients which is no longer used.
2015-09-01 11:13:39 +00:00
nicm
952ba84611
Work out config file when needed not at startup.
2015-09-01 10:10:59 +00:00
nicm
83157c02d6
Move initial conf load into cfg.c.
2015-09-01 10:01:56 +00:00
nicm
2a836bc306
All the cmd_*_entry declarations do not need to be in tmux.h.
2015-09-01 09:48:34 +00:00
nicm
6a539c00df
Path from $TMUX does not need to be global anymore.
2015-08-30 22:56:36 +00:00
nicm
c6e9160c67
Login shell can be a client flag, and move the exec code into client.c.
2015-08-30 22:40:25 +00:00
nicm
dd92b6e83d
Event base does not need to be global.
2015-08-30 22:19:07 +00:00
Thomas Adam
cb89f2f2a1
Merge branch 'obsd-master'
...
Conflicts:
Makefile
format.c
2015-08-30 21:44:01 +01:00
nicm
5047670693
Remove some old prototypes and unused functions.
2015-08-29 23:55:55 +00:00
nicm
52bbac506c
struct args_entry can go into arguments.c.
2015-08-29 23:19:52 +00:00
nicm
373ef850e0
paste_send_pane can be merged into cmd-paste-buffer.c now.
2015-08-29 09:36:46 +00:00
nicm
b569585000
Move struct paste_buffer out of tmux.h.
2015-08-29 09:25:00 +00:00
nicm
b5aaefc727
Move alerts onto events rather than checking every loop.
2015-08-29 08:30:54 +00:00
nicm
b7861f34ba
Better take on reducing the name timer. Again check for name changes in
...
the main loop after events that may have changed the pane, but do so at
most once every 500 millis. If the pane changed too soon, use a timer to
ensure that a check happens later.
2015-08-29 00:29:15 +00:00
nicm
55b8d74561
Revert previous; we do need a timer, until I have a better idea. We
...
can't do the name check every loop, because that is too expensive, and
we can't make sure it only happens infrequently because we have no idea
when the next change will happen.
2015-08-28 16:10:46 +00:00
nicm
e2100c5f5f
We now only checking for name changes when the active pane has changed,
...
but that can only happen when we have already been woken up by a read
event, so there is no need for a timer, we can just check the changed
flag on the end of that read event (we already loop over the windows to
check for bells etc anyway).
2015-08-28 15:51:48 +00:00
Thomas Adam
486421ceff
Merge branch 'obsd-master'
2015-08-28 16:01:09 +01:00
nicm
f6a0f8730e
Per-session timers for locking, and remove the global one-second timer.
2015-08-28 13:12:20 +00:00
Thomas Adam
84eabb2658
Merge branch 'obsd-master'
2015-08-28 14:01:11 +01:00
nicm
57cc4d45d5
Make session_update_activity more useful and use it in more places.
2015-08-28 13:01:03 +00:00
nicm
6419f66523
Give clock mode its own timer.
2015-08-28 12:25:42 +00:00
nicm
75d10058a4
Run status update on a per-client timer at status-interval.
2015-08-28 12:16:28 +00:00
nicm
b6618b631b
Move format job cleanup onto its own timer.
2015-08-28 11:38:27 +00:00
Thomas Adam
031d7ce840
Merge branch 'obsd-master'
2015-08-28 10:01:08 +01:00
nicm
fc58e44f89
Only do the automatic-rename dance if the pane has changed (seen output,
...
or new active pane).
2015-08-28 07:49:24 +00:00
Thomas Adam
73b4d098ce
Merge branch 'obsd-master'
2015-07-29 14:01:09 +01:00
nicm
5ec3621101
status_out and associated data structures are no longer used.
2015-07-29 11:56:02 +00:00
Thomas Adam
a568aaa0c0
Merge branch 'obsd-master'
2015-07-28 18:01:08 +01:00
nicm
b254115acd
Tidy up the way terminals are described and move some structs out of tmux.h.
2015-07-28 15:18:10 +00:00
Thomas Adam
18a64ad52d
Merge branch 'obsd-master'
2015-07-20 18:01:10 +01:00
nicm
92af3766ec
Add an option (history-file) for a file to save/restore command prompt
...
history, from Olof-Joachim Frahm.
2015-07-20 15:50:04 +00:00
Thomas Adam
07aef38591
Merge branch 'obsd-master'
2015-07-13 18:01:09 +01:00
nicm
e45d624df2
Fix line endings.
2015-07-13 15:51:31 +00:00
nicm
c7374c31c4
Initialize cwd fd to -1 so that we don't close fd 0 if the client is
...
destroyed before it is changed. Also allow ttyname() to fail. Fixes
problems when running out of file descriptors reported by Bruno Sutic.
2015-07-13 15:49:31 +00:00
Thomas Adam
21a2ccc5f1
Merge branch 'obsd-master'
2015-06-17 20:01:12 +01:00
Thomas Adam
a584e11d6b
Merge branch 'obsd-master'
2015-06-17 18:01:07 +01:00
nicm
0ff335961e
Move the shuffle code from new-window -a into a function and add a -a
...
flag for move-window too. From Thomas Adam.
2015-06-17 16:50:28 +00:00
nicm
021cdbe1c0
Use an explicit job state instead of avoid closing our side of the
...
socketpair and setting it to -1 to mark when the other side is
closed. This avoids closing it while the libevent bufferevent still has
it (it could try to add it to the polled set which some mechanisms don't
like). Fixes part a problem reported by Bruno Sutic.
2015-06-17 16:44:49 +00:00
Thomas Adam
9fdc3a069a
Merge branch 'obsd-master'
2015-06-15 14:01:09 +01:00
nicm
d96ab34019
Add window_activity format, from Thomas Adam based on a diff originally
...
from propos6 at gmail dot com.
2015-06-15 10:58:01 +00:00
Thomas Adam
37005d04a9
Merge branch 'obsd-master'
2015-06-14 12:01:10 +01:00
nicm
29c29e7717
Add a format for client PID (client_pid) and server PID (pid). Diff for
...
client_pid from Thomas Adam.
2015-06-14 10:07:44 +00:00
Thomas Adam
7acc4addb5
Merge branch 'obsd-master'
...
Conflicts:
client.c
tmux.1
tmux.c
2015-06-07 23:42:25 +01:00
nicm
c4e811e519
Add -E flag when attaching or switching client to bypass
...
update-environment, from Steven Lu.
2015-06-07 21:39:39 +00:00
nicm
55b96a5bd5
Handle the RGB colour escape sequence (\033[38;2;<r>;<g>;<b>m and 48;2)
...
like xterm(1) does, by mapping to the nearest in the 256 colour palette.
2015-06-05 22:33:39 +00:00
nicm
641a9cd3f5
Similarly, for sessions use a callback to free rather than checking
...
every loop.
2015-06-05 18:18:32 +00:00
nicm
10e90ae01f
Change deref to the more sensible unref, and add a couple I missed before.
2015-06-05 18:06:30 +00:00
nicm
8c93b768e4
Instead of putting dead clients on a list and checking it every loop,
...
use event_once to queue a callback to deal with them. Also dead clients
with references would never actually be freed because the wrap-up
functions (the callback for stdin, or status_prompt_clear) would never
be called. So call them in server_client_lost.
2015-06-05 18:01:12 +00:00
nicm
6b2129696f
Move the nested check from client to server and compare the client tty
...
name to all the pane pty names instead of comparing socket paths. This
means that "new -d" will work without unsetting $TMUX.
2015-06-04 23:27:51 +00:00
Thomas Adam
02e348c069
Merge branch 'obsd-master'
2015-06-04 12:59:41 +01:00
nicm
a863834574
Add support for a single "marked pane". There is one marked pane in the
...
server at a time; it may be toggled or cleared with select-pane -m and
-M (the border is highlighted). A new target '~' or '{marked}' specifies
the marked pane to commands and it is the default target for the
swap-pane and join-pane -s flag (this makes them much simpler to use -
mark the source pane and then change to the target pane to run swapp or
joinp).
2015-06-04 11:43:51 +00:00
Thomas Adam
beffdf6575
Merge branch 'obsd-master'
2015-05-27 16:01:22 +01:00
nicm
379400cfa6
Move the jobs output cache into the formats code so that #() work more
...
generally (for example, again working in set-titles-string).
2015-05-27 13:28:04 +00:00
Thomas Adam
00471dc783
Merge branch 'obsd-master'
2015-05-13 09:44:11 +01:00
nicm
3f4ee98162
To replace c0-*, add a high watermark to the pty event, and also backoff
...
when the any of the ttys the pane is going to write to has buffered
enough data.
2015-05-12 22:40:38 +00:00
nicm
e958db09a7
Add bell-action "other" to pass through bells in all windows except the
...
current, suggested by Jan ONDREJ.
2015-05-12 15:27:46 +00:00
nicm
44364d7112
Remove the c0-* options which never really worked satisfactorily. Going
...
to try something else...
2015-05-11 10:10:16 +00:00
Thomas Adam
504b97b6a4
Merge branch 'obsd-master'
...
Conflicts:
tmux.h
2015-05-09 12:52:38 +01:00
nicm
92faa2eaeb
Put the tty structs together, and tabify.
2015-05-08 16:48:12 +00:00
nicm
592cb73a69
grid_marker_cell is no longer used.
2015-05-08 16:44:03 +00:00
nicm
74b2c40b1b
mode_key_entry can go into mode-key.c; also a few spaces->tabs.
2015-05-08 16:33:29 +00:00
nicm
a538141a72
window_choose_mode_item can move into window-choose.c.
2015-05-08 16:23:34 +00:00
nicm
c4a4bd6ac5
Move input parser structs into input.c (removing fairly useless
...
saved_cursor_[xy] formats as a side-effect).
2015-05-08 16:18:04 +00:00
nicm
1282bb81fe
array.h can be local to window-choose.c now.
2015-05-07 08:08:54 +00:00
nicm
0b39e6427f
Remove ARRAY_* from history and expand completion to complete a) layout
...
names and b) targets beginning with -t or -s.
2015-05-06 23:56:46 +00:00
Thomas Adam
f10d3675f8
Merge branch 'obsd-master'
2015-05-06 10:03:52 +01:00
nicm
31b1ab4852
Add a format window_linked which is 1 if a window has been linked
...
multiple times, also remove the default space in window_flags and use a
conditional to add it in window-status-format (this means additional
flags can be added in the option without extra spaces). From Thomas Adam
with tweaks by me.
2015-05-06 08:35:39 +00:00
Thomas Adam
dc2adc6bc1
Merge branch 'obsd-master'
2015-04-28 14:57:15 +01:00
nicm
771744426e
Add select-layout -o to undo the last layout change (apply the previously
...
set layout).
2015-04-28 10:43:13 +00:00
Thomas Adam
94a8ef1cae
Merge branch 'obsd-master'
...
Conflicts:
Makefile
tmux.1
2015-04-27 21:21:55 +01:00
nicm
95195f5258
Rewrite of the target resolution internals to be simpler and more
...
consistent but with much less duplication, but keeping the same internal
API. Also adds more readable aliases for some of the special tokens used
in targets (eg "{start}" instead of "^"). Some behaviours may have
changed, for example prefix matches now happen before fnmatch.
2015-04-27 16:25:57 +00:00
Thomas Adam
72e9ebf2ec
Merge branch 'obsd-master'
2015-04-25 20:45:02 +00:00
nicm
07dfdb974d
Make message log a TAILQ.
2015-04-25 18:33:59 +00:00
nicm
6dbd63ba4f
Move the functions to convert ids from strings into session.c and window.c.
2015-04-25 18:09:28 +00:00
Thomas Adam
56e1132db4
Merge branch 'obsd-master'
2015-04-25 10:02:46 +00:00
nicm
aeedb464a6
Convert clients list into a TAILQ.
2015-04-24 23:17:11 +00:00
nicm
583b4ab72b
Set working directory for run-shell and if-shell.
2015-04-24 22:19:36 +00:00
nicm
9a453dd354
Make session_has return a flag, returning the first winlink found is a
...
recipe for errors.
2015-04-22 15:32:33 +00:00
nicm
8d66f4fba4
Change the windows array into an RB tree and fix some places where we
...
were only looking at the first winlink for a window in a session.
2015-04-22 15:30:11 +00:00
nicm
89e80cabd5
window_index is only used in one place (window_destroy) so inline it there.
2015-04-22 15:05:03 +00:00
Thomas Adam
0a88377086
Merge branch 'obsd-master'
2015-04-22 10:05:54 +01:00
nicm
69f292a90e
Always format real layout even when zoomed.
2015-04-21 22:38:49 +00:00
nicm
bded743706
Support for multiple key tables to commands to be bound to sequences of
...
keys. The default key bindings become the "prefix" table and -n the
"root" table. Keys may be bound in new tables with bind -T and
switch-client -T used to specify the table in which the next key should
be looked up. Based on a diff from Keith Amling.
2015-04-20 15:34:56 +00:00
Thomas Adam
b25dc423b0
Merge branch 'obsd-master'
2015-04-20 15:44:27 +01:00
nicm
bf635e7741
Rewrite of tmux mouse support which was a mess. Instead of having
...
options for "mouse-this" and "mouse-that", mouse events may be bound as
keys and there is one option "mouse" that turns on mouse support
entirely (set -g mouse on).
See the new MOUSE SUPPORT section of the man page for description of the
key names and new flags (-t= to specify the pane or window under mouse
as a target, and send-keys -M to pass through a mouse event).
The default builtin bindings for the mouse are:
bind -n MouseDown1Pane select-pane -t=; send-keys -M
bind -n MouseDown1Status select-window -t=
bind -n MouseDrag1Pane copy-mode -M
bind -n MouseDrag1Border resize-pane -M
To get the effect of turning mode-mouse off, do:
unbind -n MouseDrag1Pane
unbind -temacs-copy MouseDrag1Pane
The old mouse options are now gone, set-option -q may be used to
suppress warnings if mixing configuration files.
2015-04-19 21:34:21 +00:00
nicm
ee123c2489
Support setting the default window and pane background colours (window
...
and active pane via window-style and window-active-style options, an
individual pane by a new select-pane -P flag). From J Raynor.
2015-04-19 21:05:27 +00:00
Thomas Adam
833fe5bdee
Merge branch 'obsd-master'
...
Conflicts:
cmd-pipe-pane.c
2015-02-06 19:07:43 +00:00
nicm
313f2263f8
status_replace can now become local to status.c and it no longer needs
...
the jobsflag argument. While here there is no need to repeat work that
format_defaults already does.
2015-02-06 17:21:08 +00:00
nicm
03758a50dc
Add format_expand_time and use it instead of status_replace where
...
command execution is not needed.
2015-02-06 17:11:39 +00:00
nicm
4946f74253
Wrap all the individual format_* calls in a single format_defaults
...
functions.
2015-02-05 10:29:43 +00:00
nicm
e5d9ceff18
There is no need to save the guard state because the function checks it
...
again anyway.
2015-02-05 10:26:29 +00:00
nicm
c9642ee213
Remove two unused arguments from status_replace.
2015-02-01 23:43:23 +00:00
nicm
16bdd970dc
Support blinking cursor mode, both the xterm CSI ?12 h/l and (the
...
backwards) screen CSI 34 h/l. From Guanpeng Xu.
2015-01-20 08:18:04 +00:00
Thomas Adam
5f8138faf5
Merge branch 'obsd-master'
...
Conflicts:
format.c
2014-12-19 19:22:19 +00:00
nicm
7a0c94b28a
Add pane_dead_status for exit status of dead panes.
2014-12-09 19:23:35 +00:00
Thomas Adam
ccbe2545d9
Merge branch 'obsd-master'
2014-12-03 08:41:08 +00:00
nicm
575fd1e322
Permit option values to be used in formats.
2014-12-02 23:19:45 +00:00
nicm
c403bfc894
Remove dead code, from Thomas Adam.
2014-11-30 08:03:29 +00:00
Thomas Adam
3e8efcc555
Merge branch 'obsd-master'
2014-11-19 09:22:03 +00:00
nicm
e0929262db
Label windows which are smaller than expected with a reason.
2014-11-14 02:19:47 +00:00
Thomas Adam
fc05bf255a
Merge branch 'obsd-master'
2014-11-09 00:15:51 +00:00
Nicholas Marriott
747cab4281
No need for $Id$ now.
2014-11-08 12:27:43 +00:00
nicm
e4bf1e5128
Add V for select line with vi(1) keys. From Juho Pohjala.
2014-11-06 09:17:25 +00:00
Thomas Adam
35ffd093d7
Merge branch 'obsd-master'
...
Conflicts:
Makefile
cmd-link-window.c
cmd-unlink-window.c
2014-10-29 12:51:21 +00:00
nicm
b496b1fe11
Move cfg_causes local into cfg.c and remove struct causelist.
2014-10-27 22:23:47 +00:00
nicm
68cb1c0e6b
Merge unlink-window into kill-window.
2014-10-22 23:11:41 +00:00
nicm
a02c2e55c0
Only redraw pane when it has actually changed.
2014-10-21 22:22:04 +00:00
Thomas Adam
562af864bd
Merge branch 'obsd-master'
...
Conflicts:
Makefile
cmd-list-commands.c
cmd-suspend-client.c
job.c
tmux.h
xmalloc.c
2014-10-21 07:11:44 +01:00
nicm
0a1a88d63c
Better format for printf format attributes.
2014-10-20 23:57:13 +00:00
nicm
4c42381410
Move template defines back into .c files.
2014-10-20 23:35:28 +00:00
nicm
900f6fc17e
Tidy up some includes.
2014-10-20 23:27:14 +00:00
nicm
45dfc5a074
Instead of setting up the default keys by building the key struct
...
directly with a helper function in the cmd_entry, include a table of
bind-key commands and pass them through the command parser and a
temporary cmd_q.
As well as being smaller, this will allow default bindings to be command
sequences which will probably be needed soon.
2014-10-20 22:29:25 +00:00
nicm
a27ba6e380
Add xreallocarray and remove nmemb argument from xrealloc.
2014-10-08 17:35:58 +00:00
Thomas Adam
2874a431c0
Merge branch 'obsd-master'
2014-09-25 11:29:54 +01:00
nicm
733cea8847
Wake up any clients waiting with the wait-for command when the server
...
exits.
2014-09-01 21:58:41 +00:00
nicm
4e956d545a
Various minor style and spacing nits.
2014-09-01 21:50:18 +00:00
nicm
29d20a55b6
Fix two copy mode problems:
...
1. In vi mode the selection doesn't include the last character if you
moved the cursor up or left.
2. In emacs mode the selection includes the last character if you moved
the cursor to the left.
From Balazs Kezes.
2014-08-11 22:18:16 +00:00
nicm
f518a077b1
Add flags to selectp to enable and disable input to a pane, from Anish
...
Athalye.
2014-08-11 22:14:30 +00:00
Thomas Adam
a131b82e95
Merge branch 'obsd-master'
...
Conflicts:
client.c
2014-08-09 20:31:36 +01:00
nicm
1ac96200a7
Remove support for the continuous reporting "any" mouse mode which never
...
really worked properly and is rarely used.
2014-08-09 07:33:37 +00:00
nicm
2056a9ef9e
Drop explicit support for F13-F20 and change to match the xterm terminfo
...
entry:
F13-F24 are S-F1 to S-F12
F25-F36 are C-F1 to C-F12
F37-F48 are C-S-F1 to C-S-F12
F49-F60 are M-F1 to M-F12
and F61-F63 are M-S-F1 to M-S-F3
This should be no difference for applications inside tmux, but means
that any key binding for F13 will need to be replaced by S-F1 and so on.
2014-07-21 10:25:48 +00:00
Thomas Adam
814e40522c
Merge branch 'obsd-master'
2014-06-20 12:59:43 +01:00
nicm
21ade85f24
Properly track switching G0 and G1 modes between US-ASCII and VT100 line
...
drawing rather than just treating them as SO and SI.
2014-06-06 13:21:41 +00:00
nicm
53cbae544f
Now that cmdlists are reference counted, there is no need for two-step
...
deletion via the dead_key_bindings tree. From Keith Amling.
2014-05-14 06:21:19 +00:00
Thomas Adam
bae95844d7
Merge branch 'obsd-master'
...
Conflicts:
format.c
window.c
2014-05-13 21:58:48 +01:00
nicm
b3e8d440ed
If multiple arguments are given to new-session, new-window,
...
split-window, respawn-window or respawn-pane, pass them directly to
execvp() to help avoid quoting problems. One argument still goes to "sh
-c" like before. Requested by many over the years. Patch from J Raynor.
2014-05-13 08:08:32 +00:00
nicm
b1a06ef22e
Add a copy mode key binding to copy to a named buffer. From J Raynor.
2014-05-13 07:54:20 +00:00
nicm
3dbacbb62b
Add support for named buffers. If you don't name a buffer, things work
...
much as before - buffers are automatically named "buffer0000",
"buffer0001" and so on and ordered as a stack. Buffers can be named
explicitly when creating ("loadb -b foo" etc) or renamed ("setb -b
buffer0000 -n foo"). If buffers are named explicitly, they are not
deleted when buffer-limit is reached. Diff from J Raynor.
2014-05-13 07:34:35 +00:00
nicm
f4ffaf5a7f
Just use char ** for argv like normal people, not char *const *.
2014-05-09 09:11:24 +00:00
nicm
94ccc6aeaa
Instead of forcing mouse scroll to 1 in choose mode, scale it down
...
instead. Means modifier keys still increase the line count, just not as
much. Based on a diff from Marcel Partap.
2014-05-08 07:54:47 +00:00
nicm
540f0b3e45
Both the two previous ways of navigating panes by direction have
...
irritating flaws:
a) The old way of always using the top or left if the choice is
ambiguous is annoying when the layout is unbalanced.
b) The new way of remembering the last used pane is annoying if the
layout is balanced and the leftmost is obvious to the user (because
clearly if we go right from the top-left in a tiled set of four we want
to end up in top-right, even if we were last using the bottom-right).
So instead, use a combination of both: if there is only one possible
pane alongside the current pane, move to it, otherwise choose the most
recently used of the choice.
2014-05-08 06:03:30 +00:00
Thomas Adam
3f54c9292f
Merge branch 'obsd-master'
2014-04-24 12:59:00 +01:00
nicm
bec6c807cd
There is no longer a need for a paste_stack struct or for global_buffers
...
to be global. Move to paste.c.
2014-04-24 09:14:43 +00:00
Thomas Adam
953c3ef47a
Merge branch 'obsd-master'
...
Conflicts:
Makefile
tmux.1
window.c
2014-04-23 11:26:11 +01:00
nicm
806520f025
Add some UTF-8 utility functions and use them to prevent the width limit
...
on formats from splitting UTF-8 characters improperly.
2014-04-17 15:37:55 +00:00
nicm
3e27be353d
Set PATH explicitly, either from client or session
...
environment. Previously it came from the session environment. From J
Raynor.
2014-04-17 13:02:59 +00:00
nicm
ada75af199
Don't limit the DCS buffer to 256 bytes, expand it as needed. Requested
...
by Suraj Kurapati.
2014-04-17 12:43:38 +00:00
nicm
2e98c9057d
Correct the dance to fix the active pane in join-pane by pulling the
...
(right) code from break-pane and window_remove_pane into a helper
function.
2014-04-17 09:13:13 +00:00
nicm
2740490e27
Remove the "info" message mechanism, this was only used for about five
...
mostly useless and annoying messages. Change those commands to silence
on success like all the others. Still accept the -q command line flag
and "quiet" server option for now.
2014-04-17 07:55:43 +00:00
nicm
992ef70fb6
Remove the monitor-content option and associated bits and bobs. It's
...
never worked very well. If there is a big demand for it to return, will
consider better ways to do it.
2014-04-17 07:36:45 +00:00
nicm
871b83cbab
Remove a leftover prototype and fix some spacing.
2014-04-16 21:16:19 +00:00
nicm
14a96df9ee
Remove the choose-list command to prepare for some later choose-* work.
2014-04-16 21:02:41 +00:00
Thomas Adam
0c99c7dbff
Merge branch 'obsd-master'
...
Conflicts:
Makefile
tty-keys.c
2014-04-05 12:36:14 +01:00
nicm
acef311fe3
Work out mouse scroll wheel effect when the mouse is first detected and
...
store it in struct mouse_event, reduce the scroll size the 3 but allow
shift to reduce it to 1 and meta and ctrl to multiply by 3 if the
terminal supports them, also support wheel in choose mode. From Marcel
Partap.
2014-04-03 08:20:29 +00:00
nicm
252a7373d6
Support UTF-8 with choose-buffer, from Kosuke ASAMI. Also make
...
buffer_sample bigger to let it trim at window right edge.
2014-04-02 18:12:18 +00:00
deraadt
d9960b2d4d
missed commit matching log.c
2014-04-01 05:50:30 +00:00
nicm
7bdb675469
GRID_DEBUG is no longer needed.
2014-03-31 21:42:27 +00:00
nicm
f155316be7
Remove unused log functions.
2014-03-31 21:42:05 +00:00
nicm
46593e7aa2
Add names for mouse button bits rather than using magic numbers, from
...
Marcel Partap.
2014-03-31 21:40:21 +00:00
nicm
fcdae6925a
Use hex constants rather than shifts for mouse events and flags, pointed
...
out by Marcel Partap.
2014-03-31 21:39:59 +00:00
nicm
0e4d1d8493
Add setb -a to append and a copy mode append command, from J Raynor with
...
minor changes.
2014-03-31 21:39:31 +00:00
nicm
b11de5adc7
Make session_attached a count and add session_many_attached flag.
2014-03-31 21:37:55 +00:00
nicm
9368914ee7
Add start-of-list, end-of-list, top-line and bottom-line in choice mode,
...
from madmaverick9 at roxxmail dot eu, similar diff a few days later from
Marcel Partap.
2014-03-31 21:36:43 +00:00
nicm
175f215187
Having three *clock* files is ridiculous, remove clock.c.
2014-03-31 21:34:08 +00:00
Nicholas Marriott
b1a87b2ee4
Remove log_debug2 as well and simplify log.c.
2014-03-07 16:05:29 +00:00
Nicholas Marriott
c5a30513ed
GRID_DEBUG is no longer needed.
2014-03-07 15:51:27 +00:00
Nicholas Marriott
ebe7bd7c8b
Remove unused log functions.
2014-03-07 15:49:09 +00:00
Nicholas Marriott
23e944c91d
Add names for mouse button bits rather than using magic numbers, from Marcel
...
Partap.
2014-03-06 12:00:30 +00:00
Nicholas Marriott
f15fcb6a1d
Use hex constants rather than shifts for mouse events and flags, pointed out by
...
Marcel Partap.
2014-03-06 11:53:46 +00:00
Nicholas Marriott
8c0edcbfa3
Add setb -a to append and a copy mode append command, from J Raynor with minor
...
changes.
2014-03-06 11:50:07 +00:00
Nicholas Marriott
b7f6356053
Make session_attached a count and add session_many_attached flag.
2014-03-06 11:25:27 +00:00
Nicholas Marriott
9134e4de1e
Add start-of-list, end-of-list, top-line and bottom-line in choice mode, from
...
madmaverick9 at roxxmail dot eu, similar diff a few days earlier from Marcel
Partap.
2014-02-26 22:22:07 +00:00
Nicholas Marriott
582c2671dd
Having three *clock* files is ridiculous, remove clock.c.
2014-02-26 21:59:33 +00:00
Nicholas Marriott
4273c1b80e
Use utempter to update utmp if it's around for configure, from madmaverick9 at
...
roxxmail dot eu.
2014-02-24 23:07:22 +00:00
nicm
f1828921df
Change terminal-overrides to a server option (now that we have them), it
...
doesn't make much sense as a session option.
2014-02-23 00:53:06 +00:00
Thomas Adam
d50e47fc4a
Merge branch 'obsd-master'
...
Conflicts:
Makefile
cmd-server-info.c
cmd-start-server.c
2014-01-31 21:39:56 +00:00
nicm
9f02feb9d0
Break up and simplify screen_redraw_screen.
2014-01-31 14:19:24 +00:00
nicm
945339b443
Allow replacing each of the many sets of separate foo-{fg,bg,attr}
...
options with a single foo-style option. For example:
set -g status-fg yellow
set -g status-bg red
set -g status-attr blink
Becomes:
set -g status-style fg=yellow,bg=red,blink
The -a flag to set can be used to add to rather than replace a style. So:
set -g status-bg red
Becomes:
set -ag status-style bg=red
Currently this is fully backwards compatible (all *-{fg,bg,attr} options
remain) but the plan is to deprecate them over time.
From Tiago Cunha.
2014-01-28 23:07:09 +00:00
nicm
c930fd5ff6
Remember the last active pane in the top-bottom or left-right cell so
...
that it can be restored when moving back to that cell with selectp
-L/-R/etc. From Suraj N Kurapati.
2014-01-28 22:19:17 +00:00
nicm
1a0d3cd5d3
Allow attach-session -t to accept a window and pane to select them on
...
attach. Based on a diff from J Raynor.
2014-01-09 14:20:55 +00:00
Thomas Adam
3e498cdb49
Merge branch 'obsd-master'
2013-11-14 07:51:26 +00:00
nicm
7fa55b0419
Key to swap to other end of selection (bound to o with vi keys), from J
...
Raynor.
2013-10-23 11:31:03 +00:00
nicm
bf35441608
Do not run any command line command from the client which starts the
...
server until after the configuration file completes. This prevents it
racing against run-shell or if-shell in .tmux.conf that run in the
background.
2013-10-20 17:28:43 +00:00
nicm
d0566a474a
Remove the KERN_PROC_CWD the proc_current_path format (which is the only
...
thing that uses it now).
2013-10-10 12:39:24 +00:00
nicm
c1ccefc62d
We accidentally haven't been using $TMUX to work out the session for a
...
while and in fact it is less useful that using the client ttyname. So
don't bother and don't pass it from the client. If we need it in future
it is in c->environ.
2013-10-10 12:29:35 +00:00
nicm
282c5f9644
Alter how tmux handles the working directory to internally use file
...
descriptors rather than strings.
- Each session still has a current working directory.
- New sessions still get their working directory from the client that
created them or its attached session if any.
- New windows are created by default in the session working directory.
- The -c flag to new, neww, splitw allows the working directory to be
overridden.
- The -c flag to attach let's the session working directory be changed.
- The default-path option has been removed.
To get the equivalent to default-path '.', do:
bind c neww -c $PWD
To get the equivalent of default-path '~', do:
bind c neww -c ~
This also changes the client identify protocol to be a set of messages rather
than one as well as some other changes that should make it easier to make
backwards-compatible protocol changes in future.
2013-10-10 12:26:34 +00:00
nicm
10c38436aa
Similarly for MSG_COMMAND - allow full imsg limit not arbitrary 2048.
2013-10-10 12:13:56 +00:00
nicm
6c093010e0
Remove CMD_SENDENVIRON.
2013-10-10 12:09:34 +00:00
nicm
4c9f41f1ad
Pass flags into cmdq_guard as an argument since sometimes cmdq->cmd can
...
be NULL. Avoids crash when a command in a command client can't be
parsed.
2013-10-10 11:45:28 +00:00
Nicholas Marriott
e9b09faab2
We accidentally haven't been using $TMUX to work out the session for a while
...
and in fact it is less useful that using the client ttyname. So don't bother
and don't pass it from the client. If we need it in future it is in c->environ.
2013-10-06 22:38:33 +01:00
Nicholas Marriott
4538c269d0
Alter how tmux handles the working directory to internally use file descriptors
...
rather than strings.
- Each session still has a current working directory.
- New sessions still get their working directory from the client that created
them or its attached session if any.
- New windows are created by default in the session working directory.
- The -c flag to new, neww, splitw allows the working directory to be
overridden.
- The -c flag to attach let's the session working directory be changed.
- The default-path option has been removed.
To get the equivalent to default-path '.', do:
bind c neww -c $PWD
To get the equivalent of default-path '', do:
bind c neww -c '#{pane_current_path}'
The equivalent of default-path '~' is left as an exercise for the reader.
This also changes the client identify protocol to be a set of messages rather
than one as well as some other changes that should make it easier to make
backwards-compatible protocol changes in future.
2013-10-06 21:02:23 +01:00
Nicholas Marriott
fa1375c09f
Similarly for MSG_COMMAND - allow full imsg limit not arbitrary 2048.
2013-10-06 00:48:24 +01:00
Nicholas Marriott
f141e9b37a
Instead of fixed size buffers for some messages, send only the string length.
2013-10-06 00:28:35 +01:00
Nicholas Marriott
3fba377ddd
retcode -> retval for exit message.
2013-10-06 00:18:00 +01:00
Nicholas Marriott
01a4752503
Merge IDENTIFY_* flags with CLIENT_* flags.
2013-10-06 00:10:40 +01:00
Nicholas Marriott
d66cbf20f7
Bump protocol version and add new message types.
2013-10-06 00:06:01 +01:00
Nicholas Marriott
7e4314eccb
Remove CMD_SENDENVIRON.
2013-10-06 00:02:52 +01:00
Nicholas Marriott
9389cfbec9
Support -c for new-session, based on code from J Raynor.
2013-10-01 23:48:03 +01:00
Nicholas Marriott
06d101657f
No space in lsw -a targets.
2013-08-28 12:59:13 +01:00
Nicholas Marriott
b2fe9bff3f
Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code
2013-08-21 18:03:07 +01:00
Nicholas Marriott
a36da3a878
Remove the barely-used and unnecessary command check() function.
2013-08-21 18:01:40 +01:00
Thomas
c103f2fbcb
Clear window->flags when clearing winlinks
...
When clearing WINLINK_ALERTFLAGS for all sessions, we must also, for that
window, clear the window->flags as well, otherwise sessions may well still
see flags for winlinks long since cleared.
This therfore introduces WINDOW_ALERTFLAGS to help with this.
2013-08-20 13:03:53 +01:00
Nicholas Marriott
23519fc0b4
Add automatic-rename-format option allowing automatic rename to use something
...
other than pane_current_command.
2013-08-19 22:16:11 +01:00
Nicholas Marriott
1c271852fc
Pass flags into cmdq_guard as an argument since sometimes cmdq->cmd can be
...
NULL. Avoids crash when a command in a command client can't be parsed.
2013-08-01 23:35:03 +01:00
Nicholas Marriott
e8567098a4
Add support for Cgywin, apparently it is enough just to open the tty again in
...
the server and fd passing is not necessary. Needs some ifdefs unfortunately but
no way around that and some of them can go next time we're willing to do a
protocol bump. Patch from J Raynor jxraynor at gmail dot com.
2013-07-12 22:21:42 +01:00
Thomas Adam
bdea2f9eda
Merge branch 'obsd-master'
2013-07-06 11:18:49 +01:00
Nicholas Marriott
f884fff869
Implement s, S, C mode switch commands in vi(1) mode, from Ben Boeckel.
2013-07-05 14:38:23 +00:00
Nicholas Marriott
c7a121cfc0
Focus events can cause trouble if left on and they can't be turned off
...
during idle periods (like the other states are) because we'd miss
events. So add a server option to control them. Defaults to off.
2013-06-28 20:55:16 +01:00
Nicholas Marriott
828145456c
Don't set TMUX_CONF in tmux.h.
2013-06-25 09:48:09 +01:00
Nicholas Marriott
3977dba761
Focus events can cause trouble if left on and they can't be turned off
...
during idle periods (like the other states are) because we'd miss
events. So add a server option to control them. Defaults to off.
2013-06-23 13:10:46 +00:00
Thomas Adam
06b5805479
Merge branch 'obsd-master'
2013-06-13 18:12:49 +01:00
Nicholas Marriott
13441e8cb8
The actual terminfo entries we ended up with for cursor changes are Cs,
...
Ce, Ss and Se (not Cc, Ce, Cs, Csr). So use and document these instead
of the ones we were using earlier.
2013-06-02 07:52:15 +00:00
Thomas Adam
399d7380a5
Merge branch 'obsd-master'
2013-05-31 21:44:42 +01:00
Nicholas Marriott
a0cf65db77
Instead of eating 1024 bytes or so for the arguments of each command,
...
save memory by using an RB tree. From Tiago Cunha.
2013-05-31 12:19:34 +00:00
Thomas Adam
76cb088d16
Merge branch 'obsd-master'
...
Conflicts:
tmux.h
2013-05-25 11:48:12 +01:00
Nicholas Marriott
e323101ede
Rename global configuration define.
2013-04-24 10:01:32 +00:00
Nicholas Marriott
ce52e45d44
Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code
2013-04-24 11:00:32 +01:00
Nicholas Marriott
4f3c31a6b6
Use sysconfdir for the location of global tmux.conf (but default it to /etc),
...
based on changes from Dagobert Michelsen.
2013-04-24 10:57:03 +01:00
Thomas Adam
cd60e57b6a
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2013-04-23 08:26:04 +01:00
Nicholas Marriott
3d2b7d5bce
When using choose-tree -u, start with the current window
...
highlighted. From Thomas Adam.
2013-04-22 22:17:29 +00:00
Thomas Adam
b58bca9a72
Merge branch 'obsd-master'
...
Conflicts:
tmux.c
2013-04-13 17:05:49 +01:00
Nicholas Marriott
982354765b
Remove tmux's (already minimal) 88 colour support. Such terminals are
...
few and unnecessary.
2013-03-27 11:17:12 +00:00
Nicholas Marriott
43fb9835fa
Add -P and -F to new-session.
2013-03-25 11:44:00 +00:00
Nicholas Marriott
6fee3e9e4b
Rename session idx to session id throughout and add $ prefix to targets
...
to use it, extended from a diff from George Nachman.
2013-03-25 10:11:45 +00:00
Nicholas Marriott
410a3abbef
Add a wait-for command which blocks a client on a named channel until it
...
is woken up again (with wait-for -S). From Thiago Padilha.
2013-03-25 10:09:05 +00:00
Nicholas Marriott
14fad6a5cc
Add -A flag to new-session to make it behave like attach-session if the
...
session exists. If -A is used, -D behaves like -d to attach-session.
2013-03-24 09:58:40 +00:00
Nicholas Marriott
20636d956d
Add a command queue to standardize and simplify commands that call other
...
commands and allow a command to block execution of subsequent
commands. This allows run-shell and if-shell to be synchronous which has
been much requested.
Each client has a default command queue and commands are consumed one at
a time from it. A command may suspend execution from the queue by
returning CMD_RETURN_WAIT and then resume it by calling cmd_continue() -
for example run-shell does this from the callback that is fired after
the job is freed.
When the command queue becomes empty, command clients are automatically
exited (unless attaching). A callback is also fired - this is used for
nested commands in, for example, if-shell which can block execution of
the client's cmdq until a new cmdq becomes empty.
Also merge all the old error/info/print functions together and lose the
old curclient/cmdclient distinction - a cmdq is bound to one client (or
none if in the configuration file), this is a command client if
c->session is NULL otherwise an attached client.
2013-03-24 09:54:10 +00:00
Nicholas Marriott
a60687f9ba
Handle focus events from the terminal, from Aaron Jensen.
2013-03-24 09:28:59 +00:00
Nicholas Marriott
7f191c7951
Add -P and -F to new-session.
2013-03-22 17:01:15 +00:00
Nicholas Marriott
eaaeb28cda
Add session_set_current helper function, extracted from a diff from
...
Aaron Jensen.
2013-03-22 16:00:26 +00:00
Nicholas Marriott
8478895eeb
Add -e flag to capture-pane to include embedded ANSI SGR escape
...
sequences, from George Nachman.
2013-03-22 15:51:54 +00:00
Nicholas Marriott
db66d85176
Fix double space in sessions template.
2013-03-22 10:38:13 +00:00
Nicholas Marriott
f0efa576e0
Add resize-pane -x and -y for absolute pane size (much requested).
2013-03-22 10:37:39 +00:00
Nicholas Marriott
67b4d5b609
Support the latest theory for mouse input, this is enabled/disabled with
...
SM/RM 1006 and is similar in style to SGR input: \033[<b;x;yM or
\033[b;x;ym. From Egmont Koblinger.
2013-03-22 10:33:50 +00:00
Nicholas Marriott
10682b9e7e
Instead of loads of little screen_write_*_on and off functions which
...
just change mode flags, just have screen_write_mode_set and
screen_write_mode_clear.
2013-03-21 18:47:56 +00:00
Nicholas Marriott
3665be7c44
Tidy by splitting default key tables into two.
2013-03-21 16:50:22 +00:00
Nicholas Marriott
c982279950
Fix constness of cmd_template_replace, window_choose_add_item and
...
window_choose_add_window.
2013-03-21 16:19:25 +00:00
Nicholas Marriott
180faf73af
Allow choose commands to be used outside tmux, so long as at least one
...
client is attached.
2013-03-21 16:09:59 +00:00
Nicholas Marriott
6ddb06d372
Extend jobs to support writing and use that for copy-pipe instead of popen,
...
from Chris Johnsen.
2013-03-21 14:24:33 +00:00
Nicholas Marriott
c5ad47ee7c
Only send end guard if begin was sent, from George Nachman.
2013-03-13 07:31:36 +00:00
Nicholas Marriott
c41d92d27a
Add time and a command count to control mode guards, based on code from George
...
Nachman.
2013-03-11 09:35:44 +00:00
Nicholas Marriott
f47a063841
Rename session idx to session id throughout and add $ prefix to targets to use
...
it, extended from a diff from George Nachman.
2013-03-07 10:07:22 +00:00
Nicholas Marriott
7fd4d49d56
Add a wait-for command which blocks a client on a named channel until it is
...
wokrn up again (with wait-for -S). From Thiago Padilha.
2013-03-06 09:57:26 +00:00
Nicholas Marriott
aaeee34c32
Preserve trailing spaces with capture-pane -J, from George Nachman.
2013-03-04 11:03:03 +00:00
Nicholas Marriott
f339cfd315
Add -A flag to new-session to make it behave like attach-session if the session
...
exists. If -A is used, -D behaves like -d to attach-session.
2013-02-24 00:43:28 +00:00
Nicholas Marriott
c5239c5984
Add resize-pane -Z to temporary zoom the active pane to occupy the full window
...
or unzoom (restored to the normal layout) if it already zoomed, bound to C-b z
by default. The pane is unzoomed on pretty much any excuse whatsoever.
We considered making this a new layout but the requirements are quite different
from layouts so decided it is better as a special case. Each current layout
cell is saved, a temporary one-cell layout generated and all except the active
pane set to NULL.
Prompted by suggestions and scripts from several. Thanks to Aaron Jensen and
Thiago Padilha for testing an earlier version.
2013-02-24 00:25:03 +00:00
Nicholas Marriott
3964309c67
Add a command queue to standardize and simplify commands that call other
...
commands and allow a command to block execution of subsequent commands. This
allows run-shell and if-shell to be synchronous which has been much requested.
Each client has a default command queue and commands are consumed one at a time
from it. A command may suspend execution from the queue by returning
CMD_RETURN_WAIT and then resume it by calling cmd_continue() - for example
run-shell does this from the callback that is fired after the job is freed.
When the command queue becomes empty, command clients are automatically exited
(unless attaching). A callback is also fired - this is used for nested commands
in, for example, if-shell which can block execution of the client's cmdq until
a new cmdq becomes empty.
Also merge all the old error/info/print functions together and lose the old
curclient/cmdclient distinction - a cmdq is bound to one client (or none if in
the configuration file), this is a command client if c->session is NULL
otherwise an attached client.
2013-02-23 22:25:58 +00:00
Nicholas Marriott
ee0f8adfac
Handle focus events from the terminal, from Aaron Jensen.
2013-02-23 10:01:34 +00:00
Nicholas Marriott
3a2e9d805a
Fix error reporting for client commands by adding a flag to cmd_find_client to
...
tell it whether or not to show errors, sometimes it's needed and sometimes not.
2013-02-22 23:04:53 +00:00
Nicholas Marriott
1994ae4640
Missing PANE_RESIZE define.
2013-02-22 21:47:34 +00:00
Nicholas Marriott
4c9f9438ff
Add support for focus notifications when tmux pane changes, based on work by
...
Aaron Jensen.
2013-02-22 07:23:11 +00:00
Nicholas Marriott
8c50f625b0
Add session_set_current helper function, extracted from a diff from Aaron
...
Jensen.
2013-02-21 16:54:13 +00:00
Nicholas Marriott
b8b5631d9d
Add -C and -J to capture pane to escape control sequences and to join wrapped
...
line, based on a diff from George Nachman.
2013-02-21 09:35:01 +00:00
Nicholas Marriott
afd5e978cf
Need to set clients in context before changing their reference count.
2013-02-20 10:25:15 +00:00
Nicholas Marriott
c3859d1df1
Add copy-pipe mode command to copy selection and also pipe to a command.
2013-02-19 17:49:53 +00:00
Nicholas Marriott
4d1d4d6e8e
Add -e flag to capture-pane to include embedded ANSI SGR escape sequences, from
...
George Nachman.
2013-02-19 09:55:02 +00:00
Nicholas Marriott
293e331d69
Add functions to allocate and free command contexts rather than doing it all on
...
the stack.
2013-02-18 23:20:21 +00:00
Nicholas Marriott
44452823b7
Fix double space in sessions template.
2013-02-18 17:12:58 +00:00
Nicholas Marriott
e4bb87032e
Add resize-pane -x and -y for absolute pane size.
2013-02-18 17:00:35 +00:00
Nicholas Marriott
e5eee7de0c
Support the latest theory for mouse input, this is enabled/disabled with SM/RM
...
1006 and is similar in style to SGR input: \033[<b;x;yM or \033[b;x;ym. From
Egmont Koblinger.
2013-02-18 14:52:27 +00:00
Nicholas Marriott
cf2c0237f4
Instead of loads of little screen_write_*_on and off functions which just
...
change mode flags, just have screen_write_mode_set and screen_write_mode_clear.
2013-02-17 10:43:35 +00:00
Nicholas Marriott
10db7ec51b
Include the \033 in the key tree and adjust key matching for this change.
2013-02-16 13:21:14 +00:00
Nicholas Marriott
82355d2f2d
Tidy by splitting default key tables into two.
2013-02-15 02:16:41 +00:00
Nicholas Marriott
68e370574a
Fix constness of window_choose_add_item and _window.
2013-02-13 10:25:37 +00:00
Nicholas Marriott
544c80d715
Fix constness of cmd_template_replace.
2013-02-13 10:19:43 +00:00
Nicholas Marriott
102cb77435
Add -v to set and setw to show only option value.
2013-02-12 20:12:10 +00:00
Nicholas Marriott
99cc0015f8
Rework reflow code so it does not do so much allocation which should be faster
...
with large histories.
2013-02-10 18:15:30 +00:00
Nicholas Marriott
f1ce95915c
Allow choose commands to be used outside tmux, so long as at least one client
...
is attached.
2013-02-10 17:52:51 +00:00
Nicholas Marriott
aadc87f5a7
Remove free callback for window_choose_data objects.
2013-02-10 17:36:58 +00:00
Nicholas Marriott
4d382ae8e6
Miscellaneous tidying of choose API, including:
...
- rename client and session to start_client and start_session in
window_choose_data struct. also add TREE_OTHER define and reorder the
struct
- rename window_choose_ctx to window_choose_data_run
- don't pass a cmd_ctx into window_choose_create (will let it use a
different client later). instead take type, session, client
- add window_choose_data_free and use it to dispose of wcd rather than
each cmd-*.c doing it individually
- change so ref counting is done by wcd_add and wcd_free rather than
callers. this means 1 ref for each item but what of it :-)
- also add a ref to tree_session - not sure if this is needed?
- all the callbacks except choose-client and find-window are the same so
remove them and add window_choose_default_callback
- reorder/rename some other bits and pieces for tidyness
2013-02-10 17:32:58 +00:00
Thomas Adam
64da762c15
Merge branch 'obsd-master'
2013-02-07 12:08:55 +00:00
Nicholas Marriott
8903c1f167
Automatically reflow wrapped lines when a pane is resized, requested by
...
many over the years and finally implemented by Richard Woodbury.
2013-02-05 11:08:59 +00:00
Thomas Adam
a3f4eb7b24
Merge branch 'obsd-master'
...
Conflicts:
Makefile
grid-utf8.c
2013-01-30 15:27:19 +00:00
Nicholas Marriott
fdbfc7e349
Rather than having two grids for each pane, one for ASCII and one for
...
UTF-8, collapse the two together. Simplifies the code at the expense of
more memory (which can probably be reduced again later).
2013-01-18 02:16:21 +00:00
Thomas Adam
de194016ec
Merge branch 'obsd-master'
2013-01-17 01:38:21 +00:00
Nicholas Marriott
e33ba57c13
Remove the layout undo/redo code which never really worked.
2013-01-17 00:11:22 +00:00
Nicholas Marriott
44f8e1caff
Implement ECH (erase character, CSI X). Reported by Christian Neukirchen.
2013-01-15 23:18:55 +00:00
Nicholas Marriott
bc2e4a36df
If timing between keys is less than (by default) 1 millisecond, assume
...
the text is being pasted. assume-paste-time option changes the value (0
disables). Based on a diff from Marcin Kulik.
2013-01-15 22:55:29 +00:00
Thomas Adam
675c6b3773
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-12-31 18:50:37 +00:00
Nicholas Marriott
a2c8af97e9
Add missing function prototype.
2012-12-24 12:33:05 +00:00
Thomas Adam
fb83914bd7
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-12-08 20:29:37 +00:00
Nicholas Marriott
8264e92b37
Fix return value of load_cfg, from Thomas Adam.
2012-11-27 22:59:34 +00:00
Thomas Adam
739a76634c
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-11-27 22:24:00 +00:00
Nicholas Marriott
47c097cb51
Support middle-click paste, based on a diff from Ailin Nemui.
2012-11-27 20:22:12 +00:00
Nicholas Marriott
24d7d073ff
Support the 47 and 1047 SM and RM sequences (alternate screen without
...
cursor), requested by I forget who ages ago.
2012-11-27 20:08:42 +00:00
Thomas Adam
39631edb98
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-11-27 18:12:04 +00:00
Nicholas Marriott
9b8998aeec
Correctly aggregate together errors from nested config files (with
...
source-file). Fix by Thomas Adam, reported by Sam Livingstone-Gray
2012-11-27 16:12:29 +00:00
Thomas Adam
1bc910a963
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-11-22 22:19:04 +00:00
Nicholas Marriott
260419f48e
Put helper function back, will be needed in a bit.
2012-11-22 14:41:11 +00:00
Thomas Adam
c04aa90207
Merge branch 'obsd-master'
...
Sync from OpenBSD.
* obsd-master:
Add halfpage commands to mode command string table (missed by accident), from Thomas Adam.
Clarify some points about config files, notably that they are only read at server start. From Thomas Adam.
Use a utility function for common code to show errors in config file, from Thomas Adam.
2012-11-22 13:24:14 +00:00
Nicholas Marriott
827b311c81
Use a utility function for common code to show errors in config file,
...
from Thomas Adam.
2012-11-19 10:38:06 +00:00
Thomas Adam
be10e8eee6
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-11-08 21:27:40 +00:00
Nicholas Marriott
c68efec6c0
Show last client activity time in default choose-client list.
2012-11-05 13:13:04 +00:00
Thomas Adam
47fbf87185
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-10-26 20:28:58 +01:00
Nicholas Marriott
d210d99cce
Make mouse event structure clearer by defining events (up, click, drag)
...
and simplifying how buttons and wheels are represented, from Ailin
Nemui. Should be no functional changes.
2012-10-26 14:35:42 +00:00
Thomas Adam
619ffe1f4f
Merge branch 'obsd-master'
...
Sync from OpenBSD.
* obsd-master:
Allow session tree (C-b s) to expand and collapse sessions with left/right/space keys. From Thomas Adam.
Remove some out of date text from man page, from Thomas Adam.
2012-10-02 10:47:16 +01:00
Nicholas Marriott
9107b0c69a
Allow session tree (C-b s) to expand and collapse sessions with
...
left/right/space keys. From Thomas Adam.
2012-10-02 08:16:28 +00:00
Thomas Adam
48750022c0
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-09-25 17:05:36 +01:00
Nicholas Marriott
17bbf90393
Add notification for input from a pane, from George Nachman.
2012-09-25 07:41:22 +00:00
Nicholas Marriott
149f5bac05
Merge branch 'master' of ssh://tmux.git.sourceforge.net/gitroot/tmux/tmux
...
Conflicts:
cmd.c
format.c
osdep-openbsd.c
2012-09-25 08:07:39 +01:00
Thomas Adam
e342304134
Merge branch 'obsd-master'
...
Conflicts:
cmd.c
format.c
osdep-openbsd.c
tmux.h
2012-09-24 17:55:06 +01:00
Nicholas Marriott
84612a8196
Add control_write_buffer, from George Nachman.
2012-09-24 13:39:10 +00:00
Nicholas Marriott
5d60bc7f7c
Use pgrp of pty fd not pid of immediate child when recovering current working
...
directory (like current process). From Marcel Partap.
2012-09-24 14:05:38 +01:00
Nicholas Marriott
42272dfbd5
Use pgrp of pty fd not pid of immediate child when recovering current
...
working directory (like current process). From Marcel Partap.
2012-09-24 13:05:10 +00:00
Nicholas Marriott
c914fcfacb
When choosing a pane found by find-window, switch to that pane rather
...
than just the window. Also use a helper function for the inner loop.
2012-09-04 22:37:31 +01:00
Nicholas Marriott
28fd3a3835
add cmd-choose-list to allow arbitrary options to be selected. From
...
Thomas Adam.
2012-09-04 22:37:29 +01:00
Nicholas Marriott
41a448193f
Send notifications to control clients. Also don't redraw client when
...
suspended.
2012-09-04 22:36:47 +01:00
Nicholas Marriott
9e7bbc7281
When choosing a pane found by find-window, switch to that pane rather
...
than just the window. Also use a helper function for the inner loop.
2012-09-03 12:20:17 +00:00
Nicholas Marriott
7263fa36eb
add cmd-choose-list to allow arbitrary options to be selected. From
...
Thomas Adam.
2012-09-03 09:57:57 +00:00
Nicholas Marriott
9247c90d69
Send notifications to control clients. Also don't redraw client when
...
suspended.
2012-09-03 09:32:38 +00:00
Tiago Cunha
56e37487a8
Sync OpenBSD patchset 1165:
...
Fix up window reference counting and don't crash if the rename timer
fires while the window is dead but still referenced. Fixes problem
reported by Michael Scholz.
2012-08-31 09:22:08 +00:00
Tiago Cunha
1c608031b5
Sync OpenBSD patchset 1162:
...
Use a separate define for each default format template and strip clutter
from the choose-tree defaults.
2012-08-31 09:18:50 +00:00
Nicholas Marriott
58e8e0eac8
Fix up window reference counting and don't crash if the rename timer
...
fires while the window is dead but still referenced. Fixes problem
reported by Michael Scholz.
2012-08-21 10:00:33 +00:00
Nicholas Marriott
73c6785538
Use a separate define for each default format template and strip clutter
...
from the choose-tree defaults.
2012-08-14 08:51:53 +00:00
Tiago Cunha
200b0e5821
Sync OpenBSD patchset 1156:
...
Instead of numbering choose mode items 0-9a-z and then nothing, number
them all and if there are more than 10 use a prompt when 0-9 is
pressed. From Thomas Adam.
2012-08-12 19:28:20 +00:00
Tiago Cunha
c8849ac990
Sync OpenBSD patchset 1153:
...
Add a queue of notifys and a way to turn them off and on (we do not want
notifys to happen during some commands). Based on code from George
Nachman.
2012-08-12 19:23:01 +00:00
Nicholas Marriott
a3dec6bece
Instead of numbering choose mode items 0-9a-z and then nothing, number
...
them all and if there are more than 10 use a prompt when 0-9 is
pressed. From Thomas Adam.
2012-08-11 06:45:33 +00:00
Nicholas Marriott
5385a9bb34
Add a queue of notifys and a way to turn them off and on (we do not want
...
notifys to happen during some commands). Based on code from George
Nachman.
2012-07-13 06:27:41 +00:00
Tiago Cunha
1f5e6e35d5
Sync OpenBSD patchset 1151:
...
Make command exec functions return an enum rather than -1/0/1 values and
add a new value to mean "leave client running but don't attach" to fix
problems with using some commands in a command sequence. Most of the
work by Thomas Adam, problem reported by "jspenguin" on SF bug 3535531.
2012-07-11 19:37:32 +00:00
Tiago Cunha
a432fcd306
Sync OpenBSD patchset 1150:
...
xfree is not particularly helpful, remove it. From Thomas Adam.
2012-07-11 19:34:16 +00:00
Tiago Cunha
a10143a2d1
Sync OpenBSD patchset 1146:
...
Add choose-tree command to show windows and sessions in the same
list. Change choose-window and -session to use the same code. From
Thomas Adam.
2012-07-11 17:13:55 +00:00
Tiago Cunha
38530de622
Sync OpenBSD patchset 1144:
...
Clear flags across all sessions, from Thomas Adam.
2012-07-11 17:06:11 +00:00
Nicholas Marriott
ede8312d59
Make command exec functions return an enum rather than -1/0/1 values and
...
add a new value to mean "leave client running but don't attach" to fix
problems with using some commands in a command sequence. Most of the
work by Thomas Adam, problem reported by "jspenguin" on SF bug 3535531.
2012-07-11 07:10:15 +00:00
Nicholas Marriott
df912e3540
xfree is not particularly helpful, remove it. From Thomas Adam.
2012-07-10 11:53:01 +00:00
Nicholas Marriott
f20c6fe009
Add choose-tree command to show windows and sessions in the same
...
list. Change choose-window and -session to use the same code. From
Thomas Adam.
2012-07-08 16:04:38 +00:00
Nicholas Marriott
63f5c38023
Clear flags across all sessions, from Thomas Adam.
2012-07-08 07:27:32 +00:00
Tiago Cunha
7e02d2f459
Sync OpenBSD patchset 1143:
...
Provide common helper function for adding windows and sessions to choose
lists and expand %% in command before using it rather than at callback
time. From Thomas Adam.
2012-07-04 11:03:20 +00:00
Tiago Cunha
5761712799
Sync OpenBSD patchset 1142:
...
Clean up and simplify the choose mode code, from Thomas Adam.
2012-07-04 11:01:00 +00:00
Nicholas Marriott
67b926cf3c
Provide common helper function for adding windows and sessions to choose
...
lists and expand %% in command before using it rather than at callback
time. From Thomas Adam.
2012-06-25 14:27:25 +00:00
Nicholas Marriott
5b6f78186c
Clean up and simplify the choose mode code, from Thomas Adam.
2012-06-25 14:08:55 +00:00
Tiago Cunha
0159c74a32
Sync OpenBSD patchset 1138:
...
Add a skeleton mode to tmux (called "control mode") that let's tmux
commands be sent and output received on stdout. This can be used to
integrate with other terminal emulators and should allow some other
things to be made simpler later. More to come so doesn't do much yet and
deliberately not documented.
2012-06-18 15:23:01 +00:00
Nicholas Marriott
2942eca895
Add a skeleton mode to tmux (called "control mode") that let's tmux
...
commands be sent and output received on stdout. This can be used to
integrate with other terminal emulators and should allow some other
things to be made simpler later. More to come so doesn't do much yet and
deliberately not documented.
2012-06-18 13:16:42 +00:00
Tiago Cunha
7c7bd14c61
Sync OpenBSD patchset 1125:
...
Strip layout from choose-windows again (leave in list-windows),
suggested by Romain Francoise, diff from Thomas Adam.
2012-05-30 13:45:16 +00:00
Tiago Cunha
30b23baaf5
Sync OpenBSD patchset 1124:
...
Fix client templates, from Romain Francoise.
2012-05-30 13:44:13 +00:00
Tiago Cunha
169d362945
Sync OpenBSD patchset 1123:
...
Simplify logging and just fprintf(stderr, ...) for early errors.
2012-05-30 13:42:57 +00:00
Tiago Cunha
c6fc8771a9
Sync OpenBSD patchset 1122:
...
Use a predefined structure for not-space cells used to set attributes.
2012-05-30 13:41:58 +00:00
Nicholas Marriott
1845800651
Strip layout from choose-windows again (leave in list-windows),
...
suggested by Romain Francoise, diff from Thomas Adam.
2012-05-28 07:59:07 +00:00
Nicholas Marriott
993f1b96a3
Fix client templates, from Romain Francoise.
2012-05-27 21:43:57 +00:00
Nicholas Marriott
196710e2d3
Simplify logging and just fprintf(stderr, ...) for early errors.
2012-05-25 08:28:10 +00:00
Nicholas Marriott
1f23f6d686
Use a predefined structure for not-space cells used to set attributes.
2012-05-23 19:19:40 +00:00
Tiago Cunha
17da2f7d5f
Sync OpenBSD patchset 1121:
...
Store client in tty struct directly instead of using a callback function
pointer.
2012-05-22 21:05:30 +00:00
Tiago Cunha
fff7c0b276
Sync OpenBSD patchset 1120:
...
Store mouse data in tty structure not on the stack.
2012-05-22 21:04:25 +00:00
Tiago Cunha
5cc4961fd2
Sync OpenBSD patchset 1119:
...
Switch all of the various choose- and list- commands over to the format
infrastructure, from Thomas Adam.
2012-05-22 21:03:25 +00:00
Tiago Cunha
baafc17a1e
Sync OpenBSD patchset 1118:
...
Add a helper function to send ready message.
2012-05-22 20:59:58 +00:00
Tiago Cunha
d9cb07df3b
Sync OpenBSD patchset 1116:
...
If there are any terminals with insert mode but not ich1, they can go
through the slow path. Tidies code slightly.
2012-05-22 20:58:33 +00:00
Tiago Cunha
ffab6dbc9a
Sync OpenBSD patchset 1114:
...
Instead of passing stdin/stdout/stderr file descriptors over imsg and
handling them in the server, handle them in the client and pass buffers
over imsg. This is much tidier for some upcoming changes and the
performance hit isn't critical.
The tty fd is still passed to the server as before.
This bumps the tmux protocol version so new clients and old servers are
incompatible.
2012-05-22 20:56:35 +00:00
Nicholas Marriott
84c708f355
Store client in tty struct directly instead of using a callback function
...
pointer.
2012-05-22 14:32:28 +00:00
Nicholas Marriott
fe4f00834d
Store mouse data in tty structure not on the stack.
2012-05-22 14:11:30 +00:00
Nicholas Marriott
ebf94bc9cb
Switch all of the various choose- and list- commands over to the format
...
infrastructure, from Thomas Adam.
2012-05-22 11:35:37 +00:00
Nicholas Marriott
682884edc5
Add a helper function to send ready message.
2012-05-22 10:56:48 +00:00
Nicholas Marriott
2f93affb98
If there are any terminals with insert mode but not ich1, they can go
...
through the slow path. Tidies code slightly.
2012-05-22 09:36:12 +00:00
Nicholas Marriott
7a4679a17f
Instead of passing stdin/stdout/stderr file descriptors over imsg and
...
handling them in the server, handle them in the client and pass buffers
over imsg. This is much tidier for some upcoming changes and the
performance hit isn't critical.
The tty fd is still passed to the server as before.
This bumps the tmux protocol version so new clients and old servers are
incompatible.
2012-05-21 18:27:42 +00:00
Tiago Cunha
1340c012b0
Sync OpenBSD patchset 1111:
...
Add a helper function to open the terminal for attach-/new-session.
2012-05-12 15:00:19 +00:00
Nicholas Marriott
37f9bb46d8
Add a helper function to open the terminal for attach-/new-session.
2012-05-06 07:38:17 +00:00
Tiago Cunha
b728970c65
Sync OpenBSD patchset 1104:
...
Add a flag to move-window to renumber the windows in a session (closing
any gaps) and add an option to do this automatically each time a window
is killed. From Thomas Adam.
2012-05-03 17:51:04 +00:00
Tiago Cunha
d0907861f9
Sync OpenBSD patchset 1102:
...
Add a buffer with all input from last ground state, will be used for
control mode. From George Nachman.
2012-05-03 16:55:48 +00:00
Nicholas Marriott
a6c22d650b
Add a flag to move-window to renumber the windows in a session (closing
...
any gaps) and add an option to do this automatically each time a window
is killed. From Thomas Adam.
2012-04-29 17:20:01 +00:00
Nicholas Marriott
ff5155f719
Add a buffer with all input from last ground state, will be used for
...
control mode. From George Nachman.
2012-04-25 21:12:49 +00:00
Tiago Cunha
bae2701289
Sync OpenBSD patchset 1092:
...
Stop accepting new clients for 1 second on EMFILE/ENFILE. Based on
ongoing fixes to other daemons by Theo.
2012-04-12 12:43:40 +00:00
Nicholas Marriott
6703ca8d26
Stop accepting new clients for 1 second on EMFILE/ENFILE. Based on
...
ongoing fixes to other daemons by Theo.
2012-04-11 06:16:14 +00:00
Tiago Cunha
14e5cdf02e
Sync OpenBSD patchset 1090:
...
Fix comment for mouse bits.
2012-04-10 09:56:04 +00:00
Tiago Cunha
f99de22808
Sync OpenBSD patchset 1084:
...
Add a layout history which can be stepped through with select-layout -u
and -U commands (bound to 'u' and 'U' by default).
2012-04-10 09:52:45 +00:00
Nicholas Marriott
ed54f01d2f
Fix comment for mouse bits.
2012-04-01 21:45:48 +00:00
Nicholas Marriott
85f5485cb5
Add a layout history which can be stepped through with select-layout -u
...
and -U commands (bound to 'u' and 'U' by default).
2012-04-01 13:18:38 +00:00
Tiago Cunha
f9f6eea444
Sync OpenBSD patchset 1072:
...
Add a simple form of output rate limiting by counting the number of
certain C0 sequences (linefeeds, backspaces, carriage returns) and if it
exceeds a threshold (current default 50/millisecond), start to redraw
the pane every 100 milliseconds instead of making each change as it
comes. Two configuration options - c0-change-trigger and
c0-change-interval.
This makes tmux much more responsive under very fast output (for example
yes(1) or accidentally cat'ing a large file) but may not be perfect on
all terminals and connections - feedback very welcome, particularly
where this change has a negative rather than positive effect (making it
off by default is a possibility).
After much experimentation based originally on a request Robin Lee
Powell (which ended with a completely different solution), this idea
from discussion with Ailin Nemui.
2012-03-29 21:05:16 +00:00
Nicholas Marriott
f59971276a
Add a simple form of output rate limiting by counting the number of
...
certain C0 sequences (linefeeds, backspaces, carriage returns) and if it
exceeds a threshold (current default 50/millisecond), start to redraw
the pane every 100 milliseconds instead of making each change as it
comes. Two configuration options - c0-change-trigger and
c0-change-interval.
This makes tmux much more responsive under very fast output (for example
yes(1) or accidentally cat'ing a large file) but may not be perfect on
all terminals and connections - feedback very welcome, particularly
where this change has a negative rather than positive effect (making it
off by default is a possibility).
After much experimentation based originally on a request Robin Lee
Powell (which ended with a completely different solution), this idea
from discussion with Ailin Nemui.
2012-03-20 11:01:00 +00:00
Tiago Cunha
df31f1dfc9
Sync OpenBSD patchset 1070:
...
On xterm 271 and later, put the terminal into SCL 5 and use DECCRA for
scrolling the region in panes (if the large region check isn't
hit). With help from Ailin Nemui.
2012-03-18 02:25:26 +00:00
Tiago Cunha
f41efd9d89
Sync OpenBSD patchset 1069:
...
Add notify hooks for various events, the functions are currently empty
stubs but will be filled in for control mode later. From George Nachman.
2012-03-18 02:22:09 +00:00
Tiago Cunha
be4d77e60f
Sync OpenBSD patchset 1062:
...
Break out termios initialization into a separate function, from George
Nachman.
2012-03-18 02:03:15 +00:00
Tiago Cunha
070d266aae
Sync OpenBSD patchset 1054:
...
Send secondary DA to terminals with XT in terminfo when starting up and
parse it to work out the xterm version.
2012-03-18 01:55:45 +00:00
Tiago Cunha
166681eee9
Sync OpenBSD patchset 1045:
...
Remove some bits leftover from unused backoff code.
2012-03-18 01:33:56 +00:00
Tiago Cunha
40b1d64ce7
Sync OpenBSD patchset 1043:
...
Use a lock file and flock() to serialize server start, avoids problems
when running a bunch of tmux from cron at the same time. Based on a diff
from Tim Ruehsen.
2012-03-18 01:28:10 +00:00
Nicholas Marriott
d8805af66b
On xterm 271 and later, put the terminal into SCL 5 and use DECCRA for
...
scrolling the region in panes (if the large region check isn't
hit). With help from Ailin Nemui.
2012-03-17 22:56:04 +00:00
Nicholas Marriott
46210344a6
Add notify hooks for various events, the functions are currently empty
...
stubs but will be filled in for control mode later. From George Nachman.
2012-03-17 22:35:09 +00:00
Nicholas Marriott
889fe42e11
Break out termios initialization into a separate function, from George
...
Nachman.
2012-03-17 21:27:51 +00:00
Nicholas Marriott
c8c0d68128
Send secondary DA to terminals with XT in terminfo when starting up and
...
parse it to work out the xterm version.
2012-03-15 10:36:00 +00:00
Nicholas Marriott
799f437eff
Remove some bits leftover from unused backoff code.
2012-03-09 21:42:13 +00:00
Nicholas Marriott
ac9ebc29a2
Use a lock file and flock() to serialize server start, avoids problems
...
when running a bunch of tmux from cron at the same time. Based on a diff
from Tim Ruehsen.
2012-03-09 09:57:40 +00:00
Tiago Cunha
32a6092f71
Sync OpenBSD patchset 1039:
...
Add A and I keys for vi status line editing.
2012-03-07 13:37:44 +00:00
Tiago Cunha
3275e9bd5b
Sync OpenBSD patchset 1037:
...
Support "bracketed paste" mode. This adds a -p flag to paste-buffer - if
this is used and the application has requested bracketed pastes, then
tmux surrounds the pasted text by \033[200~ and \033[201~. Applications
like vim can (apparently) use this to avoid, for example, indenting the
text. From Ailin Nemui.
2012-03-07 13:36:19 +00:00
Tiago Cunha
9d79a56402
Sync OpenBSD patchset 1036:
...
The wlmouse offset should be part of the client, not the server. From
Ailin Nemui.
2012-03-07 13:35:03 +00:00
Nicholas Marriott
30f4c30ca3
Add A and I keys for vi status line editing.
2012-03-04 07:38:11 +00:00
Nicholas Marriott
f4fdddc930
Support "bracketed paste" mode. This adds a -p flag to paste-buffer - if
...
this is used and the application has requested bracketed pastes, then
tmux surrounds the pasted text by \033[200~ and \033[201~. Applications
like vim can (apparently) use this to avoid, for example, indenting the
text. From Ailin Nemui.
2012-03-03 09:43:22 +00:00
Tiago Cunha
e4f1fbd008
Sync OpenBSD patchset 1035:
...
Add move-pane command (like join-pane but allows the same window). Also
-b flag to join-pane and move-pane to place the pane to the left or
above. From George Nachman.
2012-03-03 09:19:40 +00:00
Tiago Cunha
89ab147093
Sync OpenBSD patchset 1034:
...
Add printf attribute to a couple of functions, from Tim Ruehsen.
2012-03-03 09:17:30 +00:00
Tiago Cunha
95f427c34e
Sync OpenBSD patchset 1032:
...
Allow a single option to be specified to show-options to show just that
option.
2012-03-03 09:16:52 +00:00
Nicholas Marriott
4b8bb7770f
The wlmouse offset should be part of the client, not the server. From
...
Ailin Nemui.
2012-03-03 08:55:56 +00:00
Nicholas Marriott
07ac16807f
Add move-pane command (like join-pane but allows the same window). Also
...
-b flag to join-pane and move-pane to place the pane to the left or
above. From George Nachman.
2012-03-03 08:31:18 +00:00
Nicholas Marriott
4d9ccd3229
Add printf attribute to a couple of functions, from Tim Ruehsen.
2012-03-02 11:16:44 +00:00
Nicholas Marriott
4e7de210e4
Allow a single option to be specified to show-options to show just that
...
option.
2012-02-25 12:57:42 +00:00
Tiago Cunha
290636bc86
Sync OpenBSD patchset 1029:
...
Add a wrapper function tty_set_size from George Nachman.
2012-02-15 19:32:12 +00:00
Nicholas Marriott
fddbd44c18
Add a wrapper function tty_set_size from George Nachman.
2012-02-15 17:25:02 +00:00
Tiago Cunha
c82e06804e
Sync OpenBSD patchset 1024:
...
Move window name changes into wrapper function window_set_name, from
George Nachman.
2012-02-02 02:00:12 +00:00
Tiago Cunha
4bb01c1768
Sync OpenBSD patchset 1021:
...
Provide defined ways to set the various default-path possibilities: ~
for home directory, . for server start directory, - for session start
directory and empty for the pane's working directory (the default). All
can also be used as part of a relative path (eg -/foo). Also provide -c
flags to neww and splitw to override default-path setting.
Based on a diff from sthen. ok sthen
2012-02-02 01:55:34 +00:00
Nicholas Marriott
8363d19307
Move window name changes into wrapper function window_set_name, from
...
George Nachman.
2012-02-02 00:10:11 +00:00
Nicholas Marriott
908a22e41c
Provide defined ways to set the various default-path possibilities: ~
...
for home directory, . for server start directory, - for session start
directory and empty for the pane's working directory (the default). All
can also be used as part of a relative path (eg -/foo). Also provide -c
flags to neww and splitw to override default-path setting.
Based on a diff from sthen. ok sthen
2012-01-31 15:52:21 +00:00
Tiago Cunha
2ee0d851d9
Sync OpenBSD patchset 1017:
...
Give each window a unique id, like panes but prefixed with @. Based on
work from George Nachman.
2012-01-31 12:01:43 +00:00
Nicholas Marriott
0e59bc75fd
Give each window a unique id, like panes but prefixed with @. Based on
...
work from George Nachman.
2012-01-30 09:39:34 +00:00
Tiago Cunha
e4a7cefe0c
Sync OpenBSD patchset 1015:
...
Add an option to move the status line to the top of the screen,
requested by many.
2012-01-29 12:57:01 +00:00
Nicholas Marriott
230d0fbc9e
Add an option to move the status line to the top of the screen,
...
requested by many.
2012-01-29 09:37:02 +00:00
Tiago Cunha
a34a72d2d9
Sync OpenBSD patchset 1011:
...
Remove unused backoff code that doesn't do any good.
2012-01-23 12:24:00 +00:00
Nicholas Marriott
678e67437f
Remove unused backoff code that doesn't do any good.
2012-01-21 23:51:34 +00:00
Tiago Cunha
a3c1b730c9
Sync OpenBSD patchset 1008:
...
Use RB trees not SPLAY.
2012-01-21 19:38:26 +00:00
Tiago Cunha
a7b0b30bdd
Sync OpenBSD patchset 1007:
...
Drop the ability to have a list of keys in the prefix in favour of two
separate options, prefix and prefix2. This simplifies the code and gets
rid the data options type which was only used for this one option.
Also add a -2 flag to send-prefix to send the secondary prefix key,
fixing a cause of minor irritation.
People who want three prefix keys are out of luck :-).
2012-01-21 19:36:40 +00:00
Tiago Cunha
4bea559037
Sync OpenBSD patchset 1004:
...
Add a -R flag to send-keys to reset the terminal. Written ages ago and
Suggested by someone, I forget who.
2012-01-21 19:31:59 +00:00
Nicholas Marriott
8ed9124f3f
Use RB trees not SPLAY.
2012-01-21 11:12:13 +00:00
Nicholas Marriott
535286c05a
Drop the ability to have a list of keys in the prefix in favour of two
...
separate options, prefix and prefix2. This simplifies the code and gets
rid the data options type which was only used for this one option.
Also add a -2 flag to send-prefix to send the secondary prefix key,
fixing a cause of minor irritation.
People who want three prefix keys are out of luck :-).
2012-01-21 08:40:09 +00:00
Nicholas Marriott
66f04514cf
Add a -R flag to send-keys to reset the terminal. Written ages ago and
...
Suggested by someone, I forget who.
2012-01-21 08:10:21 +00:00
Tiago Cunha
5434a2759a
Sync OpenBSD patchset 1002:
...
Add some const and fix a warning.
2012-01-20 21:21:32 +00:00
Tiago Cunha
b79189958f
Sync OpenBSD patchset 998:
...
Add space movement keys for vi mode in the status line from Ben Boeckel.
2012-01-20 21:17:18 +00:00
Nicholas Marriott
8332413305
Add some const and fix a warning.
2012-01-20 19:54:07 +00:00
Nicholas Marriott
e6519d3e27
Add space movement keys for vi mode in the status line from Ben Boeckel.
2012-01-20 19:10:29 +00:00
Nicholas Marriott
c1b9948525
Change the way the working directory for new processes is discovered. If
...
default-path isn't empty, it is used. Otherwise:
1) If tmux neww is run from the command line, the working directory of the
client is used.
2) Otherwise use some platform specific code to retrieve the current working
directory of the process in the active pane.
3) If that fails, the directory where the session was created is used.
Idea and support code, Linux, Solaris, FreeBSD bits by Romain Francoise,
OpenBSD bits by me.
2011-12-09 16:37:29 +00:00
Nicholas Marriott
f308ba93aa
Change the way the working directory for new processes is discovered. If
...
default-path isn't empty, it is used. Otherwise:
1) If tmux neww is run from the command line, the working directory of the
client is used.
2) Otherwise sysctl KERN_PROC_CWD is used to retrieve the current
working directory of the process in the active pane.
3) If that fails, the directory where the session was created is used.
Support code by Romain Francois, OpenBSD specific bits by me.
Note this requires a recent userland and kernel with KERN_PROC_CWD.
2011-12-09 16:28:18 +00:00
Tiago Cunha
76862acf3e
Sync OpenBSD patchset 986:
...
Support "jump to" like vi in copy mode using t and T keys. Also add x
and X for delete in edit mode.
From Ben Boeckel, thanks.
2011-12-06 18:50:26 +00:00
Nicholas Marriott
e04d13f6a6
Support "jump to" like vi in copy mode using t and T keys. Also add x
...
and X for delete in edit mode.
From Ben Boeckel, thanks.
2011-12-04 16:18:01 +00:00
Tiago Cunha
774bffb3c6
Sync OpenBSD patchset 982:
...
Add word movement and editing command for command prompt editing, from
Ben Boeckel.
2011-11-25 13:34:20 +00:00
Tiago Cunha
9ec457575d
Sync OpenBSD patchset 979:
...
Make window_pane_index work the same as window_index, from Ben Boeckel.
2011-11-25 13:30:45 +00:00
Nicholas Marriott
fc5f8804ec
Add word movement and editing command for command prompt editing, from
...
Ben Boeckel.
2011-11-15 23:34:12 +00:00
Nicholas Marriott
57df442916
Make window_pane_index work the same as window_index, from Ben Boeckel.
2011-11-15 23:19:51 +00:00
Tiago Cunha
03ee7f7edf
Sync OpenBSD patchset 969:
...
Support for \e[3J to clear the history. Also send the corresponding
terminfo code (E3) before locking.
2011-10-23 15:10:22 +00:00
Tiago Cunha
a8ca1340ad
Sync OpenBSD patchset 968:
...
Try to resolve relative paths for loadb and saveb (first using client
working directory if any then default-path or session wd).
2011-10-23 15:08:58 +00:00
Tiago Cunha
1c1797e4f2
Sync OpenBSD patchset 965:
...
Add client formats, from Ben Boeckel.
2011-10-23 15:03:50 +00:00
Nicholas Marriott
f0aad68aee
Support for \e[3J to clear the history. Also send the corresponding
...
terminfo code (E3) before locking.
2011-10-23 10:16:14 +00:00
Nicholas Marriott
7ff4cf9405
Try to resolve relative paths for loadb and saveb (first using client
...
working directory if any then default-path or session wd).
2011-10-23 08:34:01 +00:00
Nicholas Marriott
16d75a6bf2
Add client formats, from Ben Boeckel.
2011-10-23 01:12:46 +00:00
Tiago Cunha
40af1a854c
Sync OpenBSD patchset 953:
...
Add initial framework for more powerful formatting of command output and
use it for list-{panes,windows,sessions}. This allows more descriptive
replacements (such as #{session_name}) and conditionals.
Later this will be used for status_replace and list-keys and other
places.
2011-09-21 16:31:15 +00:00
Nicholas Marriott
4a5dff3f11
Add initial framework for more powerful formatting of command output and
...
use it for list-{panes,windows,sessions}. This allows more descriptive
replacements (such as #{session_name}) and conditionals.
Later this will be used for status_replace and list-keys and other
places.
2011-08-26 10:53:16 +00:00
Tiago Cunha
c41a93d130
Sync OpenBSD patchset 949:
...
Add a tty_bell wrapper function, from Dylan Alex Simon.
2011-08-25 21:12:52 +00:00
Nicholas Marriott
029c34ce6b
Add a tty_bell wrapper function, from Dylan Alex Simon.
2011-08-24 09:58:44 +00:00
Tiago Cunha
e097f0b4ee
Sync OpenBSD patchset 927:
...
Allow the initial context on prompts to be set with the new -I option to
command-prompt. From Tiago Cunha.
2011-07-03 21:52:50 +00:00