Tell me more ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Is is possible to open a new-window with its working directory set to the one I am currently in. I am using zsh, if it matters.

share|improve this question

1 Answer

up vote 19 down vote accepted

A relevant feature landed in the tmux SVN trunk in early February 2012. In tmux builds that include this code, tmux key bindings that invoke new-window will create new a window with the same current working directory as the current pane’s active processes (as long as the default-path session option is empty; it is by default). The same is true for the pane created by the split-window command when it is invoked via a binding.

This uses special platform-specific code, so only certain OSes are supported at this time: Darwin (OS X), FreeBSD, Linux, OpenBSD, and Solaris.

This should be available in the next release of tmux (1.7?).


With tmux 1.4, I usually just use

tmux neww

in a shell that already has the desired current working directory.

If, however, I anticipate needing to create many windows with the same current working directory (or I want to be able to start them with the usual <prefix>c key binding), then I set the default-path session option via

tmux set-option default-path "$PWD"

in a shell that already has the desired current working directory (though you could obviously do it from any directory and just specify the value instead).

If default-path is set to a non-empty value, its value will be used instead of “inheriting” the current working directory from command-line invocations of tmux neww.

The tmux FAQ has an entry titled “How can I open a new window in the same directory as the current window?” that describes another approach; it is a bit convoluted though.

share|improve this answer
Is there a way I can map <prefix>c to read the working directory of the underlying shell instance (if any) and set the default-path prior to executing new-window. Or is that too much to ask of tmux :) – Shrikant Sharat Apr 27 '11 at 5:34
On another note, is it even possible to read the underlying shell's working directory? I'd kill to have it displayed in my status bar. – Shrikant Sharat Apr 27 '11 at 5:34
2  
There is no portable way to extract the cwd of another process (though it is possible on some platforms (e.g. /proc/PID/cwd on Linux)). There is a possible partial solution in an entry of the tmux FAQ (it has the shell record its cwd when it prints a prompt, then binds a key that starts a new shell in the recorded directory). – Chris Johnsen Apr 27 '11 at 7:14
ok, this is a bit out of scope for my knowledge and doesn't feel very reliable. Something tells me I may be better off without all this.. thanks anyway. – Shrikant Sharat Apr 27 '11 at 8:57
1  
@paradroid: Anything done via a binding will (by default) use the cwd of the tmux server or the value of the default-path session option (if that is set). The tmux FAQ has an entry that describes a way to bind a key that starts a new window with the cwd of the shell running in the current window (“How can I open a new window in the same directory as the current window?”), but the method is quite convoluted. The same could probably be done for split-window and new-session (instead of neww). – Chris Johnsen Aug 23 '11 at 1:53
show 3 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.