| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| | |
from George Nachman.
|
| |
| |
| |
| |
| | |
-b flag to join-pane and move-pane to place the pane to the left or
above. From George Nachman.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Originally, tmux commands were parsed in the client process into a
struct with the command data which was then serialised and sent to the
server to be executed. The parsing was later moved into the server (an
argv was sent from the client), but the parse step and intermediate
struct was kept.
This change removes that struct and the separate parse step. Argument
parsing and printing is now common to all commands (in arguments.c) with
each command left with just an optional check function (to validate the
arguments at parse time), the exec function and a function to set up any
key bindings (renamed from the old init function).
This is overall more simple and consistent.
There should be no changes to any commands behaviour or syntax although
as this touches every command please watch for any unexpected changes.
|
| |
| |
| |
| | |
or pane index in target form (useful to pass it into other commands).
|
| |
| |
| |
| |
| | |
option to default to empty and make that mean that the stored session CWD is
used.
|
| |
| |
| |
| | |
splitw then movep, or the reverse of breakp).
|
| | |
|
| |
| |
| |
| | |
renaming the command would be annoying).
|
| |
| |
| |
| |
| | |
time now I've configured emacs to make them displayed in really annoying
colours...
|
| |
| |
| |
| | |
the width instead of the height.
|
| |
| |
| |
| | |
command entry structs and a couple of functions to check/set the flags.
|
| | |
|
| |
| |
| |
| |
| | |
forkpty do it and then alter the bits that should be changed after fork. A
little neater and more portable.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
to be used as a login shell inside tmux, so add a default-shell session option.
This sets the shell invoked as a login shell when the default-command option is
empty.
The default option value is whichever of $SHELL, getpwuid(getuid())'s pw_shell
or /bin/sh is valid first.
Based on a diff from martynas@, changed by me to be a session option rather
than a window option.
|
| | |
|
| |
| |
| |
| |
| | |
terminal, copy the termios(4) special characters and use them for new windows
created in the new session. Suggested by Theo.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
within tmux.
There is a global environment, copied from the external environment when the
server is started and each sesssion has an (initially empty) session
environment which overrides it.
New commands set-environment and show-environment manipulate or display the
environments.
A new session option, update-environment, is a space-separated list of
variables which are updated from the external environment into the session
environment every time a new session is created - the default is DISPLAY.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is the first of two changes to make the protocol more resilient and less
sensitive to other changes in the code, particularly with commands. The client
now packs argv into a buffer and sends it to the server for parsing, rather
than doing it itself and sending the parsed command data.
As a side-effect this also removes a lot of now-unused command marshalling
code.
Mixing a server without this change and a client with or vice versa will cause
tmux to hang or crash, please ensure that tmux is entirely killed before
upgrading.
|
| |
| |
| |
| | |
bother to check for a NULL return.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
maintain and is only going to get worse as more are used. So instead, add a new
uint64_t member to cmd_entry which is a bitmask of upper and lowercase options
accepted by the command.
This means new single character options can be used without the need to add it
explicitly to the list.
|
| |
| |
| |
| | |
is required here as well, doh.
|
| | |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Use a separate define for each default format template and strip clutter
from the choose-tree defaults.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
xfree is not particularly helpful, remove it. From Thomas Adam.
|
|
|
|
|
|
| |
Switch all of the various choose- and list- commands over to the format
infrastructure, from Thomas Adam.
|
|
|
|
|
|
| |
Add notify hooks for various events, the functions are currently empty
stubs but will be filled in for control mode later. From George Nachman.
|
|
|
|
|
| |
free -> xfree.
|
|
|
|
|
|
| |
Add -F format to new-window and split-window to use with the -P flag,
from George Nachman.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Add some const and fix a warning.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Make window_pane_index work the same as window_index, from Ben Boeckel.
|
|
|
|
|
| |
Plug memory leak, from Tiago Cunha.
|
| |
|
|
|
|
|
| |
Size on split-window is -l not -s. Doh.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clean up and simplify tmux command argument parsing.
Originally, tmux commands were parsed in the client process into a
struct with the command data which was then serialised and sent to the
server to be executed. The parsing was later moved into the server (an
argv was sent from the client), but the parse step and intermediate
struct was kept.
This change removes that struct and the separate parse step. Argument
parsing and printing is now common to all commands (in arguments.c) with
each command left with just an optional check function (to validate the
arguments at parse time), the exec function and a function to set up any
key bindings (renamed from the old init function).
This is overall more simple and consistent.
There should be no changes to any commands behaviour or syntax although
as this touches every command please watch for any unexpected changes.
|
|
|
|
|
|
| |
Add a -P option to new-window and split-window to print the new window
or pane index in target form (useful to pass it into other commands).
|
|
|
|
|
|
|
| |
Store the current working directory in the session, change the default-path
option to default to empty and make that mean that the stored session CWD is
used.
|
|
|
|
|
|
| |
New command, join-pane, to split and move an existing pane into the space (like
splitw then movep, or the reverse of breakp).
|
|
|
|
|
| |
Use the specified pane for size calculations. Doh.
|