| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Each window now has a tree of layout cells associated with it. In this tree,
each node is either a horizontal or vertical cell containing a list of other
cells running from left-to-right or top-to-bottom, or a leaf cell which is
associated with a pane.
The major functional changes are:
- panes may now be split arbitrarily both horizontally (splitw -h, C-b %) and
vertically (splitw -v, C-b ");
- panes may be resized both horizontally and vertically (resizep -L/-R/-U/-D,
bound to C-b left/right/up/down and C-b M-left/right/up/down);
- layouts are now applied and then may be modified by resizing or splitting
panes, rather than being fixed and reapplied when the window is resized or
panes are added;
- manual-vertical layout is no longer necessary, and active-only layout is gone
(but may return in future);
- the main-pane layouts now reduce the size of the main pane to fit all panes
if possible.
Thanks to all who tested.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
status line (bound to "i" and displays the current window and time by
default). The same substitutions are applied as for status-left/right.
- Add support for including the window index (#I), pane index (#P) and window
name (#W) in the message, and status-left or status-right.
- Bump protocol version.
From Tiago Cunha, thanks!
|
| |
| |
| |
| |
| |
| |
| | |
from any sessions. In fact the implementation only affected the current
session, making it the same as unlink-window but destroying the window if it
was linked into only one session (unlinkw gives an error). Change the behaviour
to match what it documented and was originally intended.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
decision for whether or not a pane should be drawn out of the layout code and
into the redraw code.
This is needed for the new layout design, getting it in now to make that easier
to work on.
|
| |
| |
| |
| |
| |
| |
| | |
screen interactive programs to preserve the screen contents. When activated, it
saves a copy of the visible grid and disables scrolling into and resizing out
of the history; when deactivated the visible data is restored and the history
reenabled.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
and some people may use shells which do not support it. Instead, make an empty
default-command option mean a login shell, and fork it with a - in argv[0]
which is the method used by login(1).
Also fix the automatic-rename code to handle this correctly and to strip a
leading - if present.
|
| |
| |
| |
| |
| | |
clear. No functional change, getting this out of the way to make later options
changes easier.
|
| |
| |
| |
| | |
duplicate. Found by lint.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
compatibility, *s are implicitly added at the start and end of the pattern.
Also display the line number and the entire line in the results, and lose the
nasty section_string function and the now empty util.c file.
Initially from Tiago Cunha.
|
| |
| |
| |
| | |
simplify the search window function.
|
| |
| |
| |
| | |
mouse input for it (otherwise they are processed after respawn).
|
| |
| |
| |
| |
| |
| | |
freed and in the other const strings.
looks sane to millert, ok ray
|
|
|
|
|
|
|
| |
terminal to be switched between several different windows and programs
displayed on one terminal be detached from one terminal and moved to another.
ok deraadt pirofti
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
xfree is not particularly helpful, remove it. From Thomas Adam.
|
|
|
|
|
| |
Clear flags across all sessions, from Thomas Adam.
|
|
|
|
|
|
| |
Use default-shell not _PATH_BSHELL to spawn commands, pointed out by
Dennis G?nnewig and Thomas Adam.
|
|
|
|
|
|
| |
Do not fire name timer when automatic-rename is off, from Tim Ruehsen a
while ago.
|
|
|
|
|
| |
Minor style nits - return ().
|
|
|
|
|
|
| |
Add a layout history which can be stepped through with select-layout -u
and -U commands (bound to 'u' and 'U' by default).
|
|
|
|
|
| |
Check changes_timer with event_initialized before event_del.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|