| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Add notify hooks for various events, the functions are currently empty
stubs but will be filled in for control mode later. From George Nachman.
|
|
|
|
|
|
| |
Check event_initialized before event_del if event may not have been set
up; libevent2 complains about this. Reported by Moriyoshi Koizumi.
|
|
|
|
|
|
| |
Move window name changes into wrapper function window_set_name, from
George Nachman.
|
|
|
|
|
|
| |
Give each window a unique id, like panes but prefixed with @. Based on
work from George Nachman.
|
|
|
|
|
|
|
| |
Call bufferevent_free before closing file descriptor associated with it
or bugs in $EventMechanism on $OtherOS makes libevent get it's knickers
in a twist. From Dylan Alex Simon.
|
| |
|
|
|
|
|
| |
Make window_pane_index work the same as window_index, from Ben Boeckel.
|
|
|
|
|
| |
Reject $SHELL if it is not a full path.
|
|
|
|
|
| |
Add pane-base-index option, from Ben Barbour.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Date: 2011/06/05 11:53:05
Author: nicm
Branch: HEAD
Tag: (none)
Log:
Get rid of the layout string code which tries to walk through the layout
hierarchy and instead just look at what panes are actually in the window.
|
|
|
|
|
|
|
|
|
|
|
| |
|Date: 2011/04/18 21:57:16
|Author: nicm
|Branch: HEAD
|Tag: (none)
|Log:
|The mouse should only work in copy mode if mode-mouse is set, not just
|mouse-select-pane.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Date: 2011/03/27 21:27:26
Author: nicm
Branch: HEAD
Tag: (none)
Log:
Give each pane created in a tmux server a unique id (starting from 0),
put it in the TMUX_PANE environment variable and accept it as a
target. Suggested by and with testing and tweaks from Ben Boeckel.
|
|
|
|
|
|
| |
Check if the index is in use and fail before creating the child process,
rather than leaving a stray child on failure.
|
|
|
|
|
|
|
| |
Move all calls to fcntl(...O_NONBLOCK) into a function and clear the
flag on the stdio file descriptors before closing them (fixes things
like "tmux ls && cat").
|
|
|
|
|
|
| |
Add a function to create window flags rather than doing the same thing
in two places. From Thomas Adam.
|
|
|
|
|
| |
window. From Thomas Adam.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Date: 2010/11/14 08:58:25
Author: nicm
Branch: HEAD
Tag: (none)
Log:
Don't allow last and active window to become the same - a very bad move
when the active window is closed and freed. Reported by sthen@.
Members:
window.c:1.58->1.59
|
|
|
|
|
|
| |
Add a last-pane command (bound to ; by default). Requested ages ago by
somebody whose name I have forgotten.
|
|
|
|
|
|
| |
When removing a pane, don't change the active pane unless the active
pane is actually the one being removed.
|
|
|
|
|
|
| |
Trying to set FD_CLOEXEC on every fd is a lost cause, just use
closefrom() before exec.
|
|
|
|
|
| |
recently Timothy Larson.
|
|
|
|
|
|
| |
When destroying a pane, reset any mode (which reenables pane
bufferevent) before freeing the bufferevent.
|
|
|
|
|
|
|
| |
Do not call event_del() for signals after fork(), just use sigaction()
directly instead - calling libevent functions after fork() w/o
event_reinit() is a bad idea, even if in this case it was harmless.
|
|
|
|
|
|
| |
Make pane/window wrapping more logical (so with 10 windows, +10 from
window 5 stays in the same place), and tidy the code. From Tiago Cunha.
|
|
|
|
|
|
| |
Extend the -t:+ and -t:- window targets for next and previous window to
accept an offset such as -t:+2. From Tiago Cunha.
|
|
|
|
|
| |
We were only ever using the client to find the session anyway.
|
|
|
|
|
|
|
| |
Make signal handler setup/teardown two common functions instead of six,
and reset SIGCHLD after fork to fix problems with some shells. From
Romain Francoise.
|
|
|
|
|
|
| |
modified with setenv -g) rather than with the environment tmux started
with.
|
|
|
|
|
| |
callback function.
|
|
|
|
|
|
|
|
| |
select-pane.
Also remove up- and down-pane: equivalent behaviour is now available
using -t :.+ and -t :.-.
|
| |
|
|
|
|
|
|
|
| |
Instead of bailing out on the first configuration file error, carry on,
collecting all the errors, then start with the active window in more mode
displaying them.
|
|
|
|
|
|
|
| |
Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last
time now I've configured emacs to make them displayed in really annoying
colours...
|
|
|
|
|
|
| |
Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to
the rest to reduce lint output.
|
|
|
|
|
|
|
| |
Change status line drawing to create the window list in a separate screen and
then copy it into the status line screen. This allows UTF-8 in window names and
fixes some problems with #[] in window-status-format.
|
|
|
|
|
| |
Destroy panes immediately rather than checking them all every loop.
|
|
|
|
|
|
| |
Change window name change to use a timer event rather than a gettimeofday()
check every loop.
|
|
|
|
|
|
|
|
| |
Convert the window pane (pty master side) fd over to use a bufferevent.
The evbuffer API is very similar to the existing tmux buffer API so this was
remarkably painless. Not many possible ways to do it, I suppose.
|
|
|
|
|
| |
Switch window pane pipe redirect fd over to a bufferevent.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initial changes to move tmux to libevent.
This moves the client-side loops are pretty much fully over to event-based only
(tmux.c and client.c) but server-side (server.c and friends) treats libevent as
a sort of clever poll, waking up after every event to run various things.
Moving the server stuff over to bufferevents and timers and so on will come
later.
|
|
|
|
|
| |
Only redraw the pane when changing mode, not the entire window.
|
|
|
|
|
|
| |
Stop updating the screen when not in output mode, stops copy mode getting
confused.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a pipe-pane command to allow a pane to be piped to a shell command, for
example:
pipe-pane 'cat >~/out'
No arguments stops outputing and closes the pipe; the -o flag toggles a pipe
and on and off (useful for key bindings).
Suggested by espie@.
|
|
|
|
|
|
|
|
|
| |
Clean up by introducing a wrapper struct for mouse clicks rather than passing
three u_chars around.
As a side-effect this fixes incorrectly rejecting high cursor positions
(because it was comparing them as signed char), reported by Tom Doherty.
|
|
|
|
|
| |
Accept key and mouse input for keys in zombified windows if they are in a mode..
|
|
|
|
|
|
|
|
| |
New option, mouse-select-pane. If on, the mouse may be used to select the
current pane.
Suggested by sthen@ and also by someone else ages ago who I have forgotten.
|
|
|
|
|
|
|
|
|
|
| |
Add "grouped sessions" which have independent name, options, current window and
so on but where the linked windows are synchronized (ie creating, killing
windows and so on are mirrored between the sessions). A grouped session may be
created by passing -t to new-session.
Had this around for a while, tested by a couple of people.
|
|
|
|
|
|
|
| |
Add a simple synchronize-panes window option: when set, all input to any pane
that is part of the window is also sent to all other panes in the same
window. Suggested by several, most recently Tomasz Pajor.
|
| |
|