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
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
10c38436aa
Similarly for MSG_COMMAND - allow full imsg limit not arbitrary 2048.
2013-10-10 12:13:56 +00:00
6c093010e0
Remove CMD_SENDENVIRON.
2013-10-10 12:09:34 +00:00
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
f884fff869
Implement s, S, C mode switch commands in vi(1) mode, from Ben Boeckel.
2013-07-05 14:38:23 +00:00
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
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
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
e323101ede
Rename global configuration define.
2013-04-24 10:01:32 +00:00
3d2b7d5bce
When using choose-tree -u, start with the current window
...
highlighted. From Thomas Adam.
2013-04-22 22:17:29 +00:00
982354765b
Remove tmux's (already minimal) 88 colour support. Such terminals are
...
few and unnecessary.
2013-03-27 11:17:12 +00:00
43fb9835fa
Add -P and -F to new-session.
2013-03-25 11:44:00 +00:00
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
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
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
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
a60687f9ba
Handle focus events from the terminal, from Aaron Jensen.
2013-03-24 09:28:59 +00:00
eaaeb28cda
Add session_set_current helper function, extracted from a diff from
...
Aaron Jensen.
2013-03-22 16:00:26 +00:00
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
db66d85176
Fix double space in sessions template.
2013-03-22 10:38:13 +00:00
f0efa576e0
Add resize-pane -x and -y for absolute pane size (much requested).
2013-03-22 10:37:39 +00:00
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
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
3665be7c44
Tidy by splitting default key tables into two.
2013-03-21 16:50:22 +00:00
c982279950
Fix constness of cmd_template_replace, window_choose_add_item and
...
window_choose_add_window.
2013-03-21 16:19:25 +00:00
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
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
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
e33ba57c13
Remove the layout undo/redo code which never really worked.
2013-01-17 00:11:22 +00:00
44f8e1caff
Implement ECH (erase character, CSI X). Reported by Christian Neukirchen.
2013-01-15 23:18:55 +00:00
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
a2c8af97e9
Add missing function prototype.
2012-12-24 12:33:05 +00:00
8264e92b37
Fix return value of load_cfg, from Thomas Adam.
2012-11-27 22:59:34 +00:00
47c097cb51
Support middle-click paste, based on a diff from Ailin Nemui.
2012-11-27 20:22:12 +00:00
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
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
260419f48e
Put helper function back, will be needed in a bit.
2012-11-22 14:41:11 +00:00
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
c68efec6c0
Show last client activity time in default choose-client list.
2012-11-05 13:13:04 +00:00
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
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
17bbf90393
Add notification for input from a pane, from George Nachman.
2012-09-25 07:41:22 +00:00
84612a8196
Add control_write_buffer, from George Nachman.
2012-09-24 13:39:10 +00:00
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
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
7263fa36eb
add cmd-choose-list to allow arbitrary options to be selected. From
...
Thomas Adam.
2012-09-03 09:57:57 +00:00
9247c90d69
Send notifications to control clients. Also don't redraw client when
...
suspended.
2012-09-03 09:32:38 +00:00
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
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