I am new to tmux and I am trying to edit my tmux.conf file to have the left side of the status bar reflect:
[SessionName] [CurrentPane] [CurrentWorkingDirectory]
There is a variable for that, which doesn't seem to be in the manpage but is mentioned in the development version. For me, it works in the 1.8 release of tmux.
set -g status-left "#{pane_current_path}"
Note that it also works when you put it in the window-status. Each window status will mention respective working directories.
setw -g window-status-format "#{pane_current_path}".
I'm not sure how to do this in bash, but in zsh, there's a hook that gets run before every command. In your .zshrc:
precmd () {
tmux set -qg status-left "#S #P $(pwd)"
}
This will run that tmux
command everytime you run a command. Hope this helps. Since bash
doesn't have a precmd
, I'm not sure how to do this.
Unfortunately, the proposed solution does not work for version 1.7 - "official version" for OpenSuse 12.3, but I managed to find a solution:
In /etc/tmux.conf
:
setw -g window-status-current-format "#T(#I:#W#F)"
setw -g window-status-format "#T(#I:#W#F)"
Here #T - tells to display current pane title, which can be set with some escape sequence. For doing this at each shell command, put
somewhere in .bashrc
:
[[ -n "$TMUX" ]] && PROMPT_COMMAND='echo -n -e "\e]2;${PWD/${HOME}/~}\e\\"'
This works for me on OpenSuse 12.3, tmux 1.7, bash 4.2.53.